Bir FPS oyununda ekranın köşesindeki sayaçta 120, hatta 200 FPS gördüğünüzü düşünün. Kareler hızlı üretiliyor gibi görünmesine rağmen fareyi çevirdiğinizde hareketiniz ekrana anında yansımıyor olabilir. Kamera hareketi ağır hissedebilir veya tıklamanızın karşılığını almakta gecikme yaşayabilirsiniz.

İlk bakışta bu durum çelişkili görünür. Yüksek FPS, oyunun akıcı çalışması ve hızlı tepki vermesi gerektiği izlenimini yaratır. Ancak FPS ile Input Lag aynı şeyi ölçmez.

FPS, sistemin saniyede kaç kare ürettiğini ifade eder. Input Lag ise fare hareketi veya tıklama gibi bir girdinin işlenerek ekranda görünür bir sonuca dönüşmesine kadar geçen gecikmeyle ilgilidir.

Bu iki kavram birbiriyle ilişkili olsa da birbirinin yerine kullanılamaz. Bir oyunun yüksek FPS değerine ulaşması, kullanıcının girdisinin ekrana aynı hızla yansıyacağını garanti etmez.

Peki fareden çıkan bir hareket, ekranda gördüğümüz tepkiye dönüşene kadar hangi aşamalardan geçer?

1. Gecikme farede başlar: Polling Rate ne anlama gelir?

Gecikme zincirinin ilk aşaması farenin kendisidir. Farenin sensörü yüzeydeki hareketi algılar ve cihaz bu bilgileri belirli aralıklarla bilgisayara raporlar.

Bu raporlama sıklığı Polling Rate, yani sorgulama hızı olarak adlandırılır.

Örneğin 1000 Hz sorgulama hızına sahip bir fare, nominal olarak saniyede 1000 raporlama aralığına karşılık gelen bir hızda veri sunabilir. Bu, yaklaşık 1 milisaniyelik raporlama aralığı demektir.

Ancak bu değer, fare hareketinin bilgisayar ekranında tam olarak 1 milisaniyede görüneceği anlamına gelmez. Polling Rate, giriş zincirinin yalnızca bir bölümünü açıklar.

Fareden gelen veri, USB denetleyicisi ve ilgili işletim sistemi ile sürücü katmanları üzerinden işlenir. Daha sonra uygulamanın bu veriyi nasıl aldığı ve ne zaman kullandığı da toplam gecikmeyi etkiler.

Windows fare verisini oyuna nasıl iletir?

Windows, fare girdilerini uygulamalara farklı mekanizmalarla sunabilir. Oyunun mimarisine bağlı olarak standart fare mesajları kullanılabilir veya uygulama Raw Input API üzerinden cihaza ait ham girdi verilerini alabilir.

Raw Input, uygulamaya cihazdan gelen ham girdi verilerine erişim sağlayan bir API’dir. Ancak bunu tüm giriş işlemlerini otomatik olarak ortadan kaldıran veya gecikmeyi her koşulda sıfırlayan özel bir yol gibi düşünmemek gerekir.

Bu ilk aşamadaki gecikme; farenin özelliklerine, raporlama sıklığına, sürücü yapısına ve sistemin çalışma koşullarına bağlı olarak değişebilir.

Bununla birlikte, fare hareketinin ağır hissedilmesini yalnızca Polling Rate ile açıklamak çoğu zaman yeterli değildir. Girdinin oyuna ulaştıktan sonra nasıl işlendiğine de bakmak gerekir.

2. Oyun motoru girdiyi ne zaman işliyor?

Fare verisinin bilgisayara ulaşması, oyunun bu veriyi hemen kullanarak yeni bir görüntü oluşturduğu anlamına gelmez.

Oyun motorları genellikle Game Loop, yani oyun döngüsü adı verilen bir çalışma düzeniyle ilerler. Bu döngü içerisinde girdiler alınır, fizik ve oyun durumu güncellenir, render komutları hazırlanır ve ekran kartına gönderilir.

Girdinin bu döngünün hangi noktasında örneklendiği önemlidir.

Örneğin fareyi hareket ettirdiğiniz anda oyun yeni bir kare hazırlama sürecinin ortasındaysa, gelen girdinin hangi aşamada kullanılacağı oyunun mimarisine bağlıdır. Girdi bir sonraki uygun işleme aşamasını beklemek zorunda kalabilir.

Bu nedenle aynı fare hareketinin ekranda görünmesi için geçen süre, yalnızca farenin bilgisayara veri gönderme hızına bağlı değildir. Oyunun girdiyi ne zaman aldığı ve bu girdiyi yeni kareye ne zaman yansıttığı da önemlidir.

CPU sınırı tepki süresini nasıl etkiler?

Oyun motorunun oyun mantığını güncellemesi ve yeni kare için gerekli komutları hazırlaması işlemciye de yük bindirir.

CPU, oyunun kritik iş parçacıklarında veya genel işlem kapasitesinde sınıra ulaştığında yeni kareyi hazırlama süresi uzayabilir. Bu durumda fareden gelen komutun oyun tarafından işlenmesi ve yeni karede görünmesi gecikebilir.

Burada önemli olan yalnızca genel CPU kullanım yüzdesi değildir. Belirli bir iş parçacığının sınırına ulaşması da oyunun kare hazırlama sürecini etkileyebilir.

Bir başka önemli gösterge Frame Time, yani kare süresidir. Bu değer, karelerin oluşturulması için geçen süreyi gösterir.

Ortalama FPS yüksek olsa bile kare sürelerinde anlık sıçramalar yaşanabilir. Böyle dalgalanmalar oyunun tutarlılığını bozabilir ve fare hareketlerinin ağır veya düzensiz hissedilmesine katkıda bulunabilir.

Dolayısıyla oyun performansını değerlendirirken yalnızca ortalama FPS değerine bakmak yerine kare sürelerinin nasıl değiştiğini de incelemek gerekir.

3. GPU Render Queue: Gecikme nerede birikebilir?

CPU, yeni kare için gerekli komutları hazırladıktan sonra bunları ekran kartına iletir. Böylece gecikme zincirinin bir sonraki aşamasına, GPU Render Queue olarak bilinen render kuyruğuna geçilir.

Ekran kartının sürekli iş alabilmesi ve kare akışının kesintiye uğramaması için grafik sürücüleri ve grafik API’leri, bazı koşullarda işlerin önceden sıraya alınmasına izin verir.

Bu yaklaşım GPU’nun verimli çalışmasına yardımcı olabilir. Ancak kuyrukta bekleyen işler arttığında, kullanıcının yeni yaptığı hareketin ekranda görünmesi için daha önce sıraya alınmış işlerin ilerlemesini beklemek gerekebilir.

Özellikle GPU’nun kapasitesine yakın çalıştığı senaryolarda render kuyruğunda birikme yaşanabilir. Bu durumda FPS yüksek görünse bile girdinin ekrana yansıması için geçen süre uzayabilir.

Burada her kuyruk oluşumunun mutlaka sorun anlamına gelmediğini belirtmek gerekir. Önemli olan kuyruğun nasıl yönetildiği, sistemin ne kadar yüklü olduğu ve girdinin hangi aşamada işlendiğidir.

NVIDIA Reflex ve AMD Radeon Anti-Lag ne yapar?

NVIDIA Reflex ve AMD Radeon Anti-Lag, desteklenen oyun ve yapılandırmalarda sistem gecikmesini azaltmaya yardımcı olabilen teknolojilerdir.

Bu teknolojiler, CPU ile GPU arasındaki çalışma zamanlamasını ve karelerin işlenme düzenini iyileştirmeyi hedefler. Amaç, gereksiz beklemeleri ve gecikmeye katkıda bulunabilecek kuyruk birikimlerini azaltmaktır.

Bununla birlikte elde edilen sonuç kullanılan teknolojiye, oyunun desteğine ve sistemin hangi bileşen tarafından sınırlandığına bağlıdır. Bu nedenle her bilgisayarda veya her oyunda aynı ölçüde iyileşme beklenmemelidir.

4. Monitör de gecikme zincirinin bir parçasıdır

GPU kareyi hazırlayıp çizdikten sonra görüntünün monitöre sunulması gerekir. Ancak görüntünün üretilmesi ile kullanıcının onu ekranda görmesi aynı an değildir.

Monitörler, görüntüyü panelin çalışma biçimine göre tarayarak sunar. Bu süreç Scanout olarak adlandırılır. Dolayısıyla görüntünün ekranda görünmesi, GPU’nun kareyi tamamlamasından sonra da belirli bir zaman alabilir.

Monitörün yenileme hızı, karelerin ne zaman sunulabildiği ve senkronizasyon ayarları da deneyimi etkileyebilir.

V-Sync neden gecikmeyi artırabilir?

Geleneksel V-Sync, görüntü yırtılmasını önlemek amacıyla kare sunumunu ekranın yenileme döngüsüyle senkronize eder.

Ancak kare zamanlaması ile ekranın yenileme döngüsü uyuşmadığında, bazı yapılandırmalarda GPU’nun bir sonraki uygun yenileme anını beklemesi gerekebilir. Karelerin tamponlarda beklemesi de gecikmeyi artırabilir.

Bu, V-Sync’in her koşulda aynı miktarda gecikme oluşturduğu anlamına gelmez. Etki; oyun motoruna, tamponlama yöntemine, kare hızına ve kullanılan grafik yapılandırmasına bağlıdır.

G-Sync ve FreeSync ne sağlar?

G-Sync ve FreeSync, desteklenen sistemlerde değişken yenileme hızı (VRR) teknolojilerinden yararlanır. Amaç, ekranın yenileme zamanlamasını GPU’nun kare üretimiyle daha uyumlu hale getirmektir.

Bu teknolojiler, desteklenen çalışma aralığında görüntü yırtılmasını azaltmaya ve kare sunumunu daha tutarlı hale getirmeye yardımcı olabilir. Uygun yapılandırmalarda bazı beklemeleri de azaltabilirler.

Ancak VRR tek başına bütün sistem gecikmesini ortadan kaldırmaz. Fareden başlayan girdi zincirinin önceki aşamaları ve oyunun kendi çalışma düzeni hâlâ önemlidir.

5. Frame Generation FPS’yi artırırken neden Input Lag aynı oranda düşmez?

Modern grafik teknolojilerinde Frame Generation, yani kare oluşturma, performans göstergelerinin yorumlanmasını daha da önemli hale getirir.

Bu teknolojiler, gerçek karelerin arasına ek kareler üreterek ekranda sunulan toplam kare sayısını artırabilir. Böylece FPS sayacı, yalnızca geleneksel kare üretimiyle elde edilen değerden daha yüksek görünebilir.

Ancak üretilen ara kareler, her seferinde yeni bir fare girdisinin alınması ve oyun mantığının bu girdiye göre yeniden çalıştırılmasıyla oluşmaz. Bu kareler, mevcut görüntüler ve kullanılan teknolojinin hesaplamaları temelinde oluşturulur.

Bu nedenle Frame Generation ile yükselen FPS, Input Lag’in aynı oranda azalacağı anlamına gelmez.

Üretilen kareler görsel akıcılığı artırabilir; fakat girdinin alınması, oyun tarafından işlenmesi ve tepkinin ekranda görünmesi arasındaki süreç ayrı bir gecikme zinciridir.

Desteklenen oyunlarda NVIDIA Reflex veya AMD Radeon Anti-Lag gibi gecikme azaltma teknolojileri bu zincirin tepkiselliğini iyileştirmeye yardımcı olabilir. Sonuç yine oyunun ve sistemin yapılandırmasına bağlıdır.

6. Sistem gecikmesini azaltmak için neleri test edebilirsiniz?

Gecikme tek bir bileşenden kaynaklanmadığı için her sistemde işe yarayacak tek bir ayar yoktur. Bunun yerine, hangi aşamanın sınırlayıcı olabileceğini belirlemek ve ayarları kontrollü biçimde test etmek daha sağlıklı bir yaklaşımdır.

1. GPU yükünü ve FPS sınırını değerlendirin. GPU’nun kapasitesine yaklaştığı senaryolarda grafik ayarlarını veya FPS sınırını değiştirerek tepki hissinin nasıl etkilendiğini gözlemleyin. Amaç, kuyruk birikiminin gecikmeye katkıda bulunup bulunmadığını değerlendirmektir.

2. Desteklenen oyunlarda Reflex veya Anti-Lag’i deneyin. Bu teknolojilerin etkisi oyuna ve sistemin darboğazına bağlı olduğundan, değişiklik öncesi ve sonrası deneyimi aynı koşullarda karşılaştırın.

3. Monitör yapılandırmasını kontrol edin. Monitörün desteklediği yenileme hızını, VRR uyumluluğunu ve senkronizasyon ayarlarını kontrol edin. Yüksek yenileme hızlı bir monitör tek başına bütün gecikmeyi çözmez; doğru yapılandırma önemlidir.

4. Ortalama FPS’nin yanında Frame Time değerlerini de inceleyin. Kare sürelerindeki sıçramalar, ortalama FPS değerinin tek başına gösteremediği düzensizlikleri ortaya çıkarabilir.

Bu adımların amacı yalnızca daha yüksek FPS elde etmek değil, sistemin girdilere daha tutarlı ve hızlı tepki vermesine yardımcı olmaktır.

Sonuç: Yüksek FPS, düşük Input Lag garantisi değildir

Fare hareketinin ekranda görünür bir tepkiye dönüşmesi, birden fazla donanım ve yazılım katmanının birlikte çalışmasını gerektirir.

Fare veriyi raporlar; USB ve işletim sistemi katmanları bu girdiyi iletir; oyun motoru girdiyi işler ve yeni kare için komutları hazırlar. CPU’dan gelen işler GPU tarafından çizilir, ardından görüntü monitöre sunulur.

Bu zincirin herhangi bir aşamasındaki bekleme veya gecikme, kullanıcının hissettiği tepki süresini etkileyebilir. Bu yüzden FPS yüksek görünse bile fare hareketleri ağır hissedilebilir.

Yüksek FPS, düşük Input Lag garantisi değildir. Çünkü karelerin hızlı üretilmesi, girdinizin ekrana aynı hızla yansıdığı anlamına gelmez.

Daha iyi bir oyun deneyimi için kare hızını, kare sürelerini, GPU yükünü, render kuyruğunu ve monitörün senkronizasyonunu birlikte değerlendirmek gerekir.

Bir sonraki bölüm: Ping 20 ms ama oyun neden takılıyor?

Sistem kaynaklı gecikmenin nasıl oluşabildiğini gördük. Ancak çevrim içi bir oyunda ping değeri 20 ms görünürken karakterin komutlara geç tepki vermesi veya oyunun anlık olarak takılması da mümkündür.

Bir sonraki bölümde ping değeri, ağ gecikmesi ve paket iletimi arasındaki farkları inceleyeceğiz. Böylece sistem kaynaklı gecikmeyle ağ kaynaklı sorunları birbirinden ayırmaya yaklaşacağız.

By mgm

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir