Bilgisayar oyunlarının performansını analiz ederken, kare süreleri (frame times) üzerine yoğunlaşırız ve bunun iyi bir nedeni vardır. Ortalama FPS (kare/saniye) değeri yanıltıcı olabilirken, bir kare süresi grafiği bir oyunun kareleri ne kadar akıcı sunduğunu veya takılmalar, gecikmeler, işlemci/sistem darboğazları veya tutarsız kare zamanlaması gibi sorunlar yaşayıp yaşamadığını anında gösterebilir.
Ancak, kare süreleri ne kadar faydalı olursa olsun, tek başlarına onlara güvenmenin büyük bir sorunu var: Oyuncunun monitörde ne gördüğünü her zaman söylemezler.
Bu durum günümüzde daha da önem kazanıyor çünkü modern PC oyunları artık sadece oyunun bir kareyi işlemesi, sunması ve monitörün bunu hemen göstermesi kadar basit bir işlem değil. Değişken Yenileme Hızı (VRR), Dikey Senkronizasyon (V-Sync), harici kare hızı sınırlayıcıları, monitörün maksimum yenileme hızını aşan sınırsız kare hızları, kenarlıksız sunum yolları, grafik sürücüsü seviyesinde zamanlama ve kare üretim teknolojileri ile oyunun kare çıktısı ile ekranda görünen son görüntü arasındaki ilişki şaşırtıcı derecede karmaşık hale gelebilir ve işte tam da burada görüntülenme süreleri (display times) devreye giriyor.
Kare süreleri, daha spesifik olarak Intel PresentMon'daki MsBetweenPresents terimiyle, iki uygulama Present() çağrısı arasındaki süreyi ölçer. Basitçe söylemek gerekirse, oyunun ne sıklıkla kare sunduğunu bize söylerler. Görüntülenme süreleri, yani MsBetweenDisplayChange, ekranda görünen görüntüdeki gerçek değişiklikler arasındaki süreyi ölçer. Daha da basit bir ifadeyle, oyuncuya gösterilen görüntünün ne sıklıkla değiştiğini bize söylerler.
Her iki metrik de kullanışlıdır, ancak soru şuyse: “Oyun monitörümde ne kadar akıcı görünüyor?”, o zaman görüntülenme süreleri genellikle daha iyi bir metriktir.
Bu, kare sürelerinin işe yaramaz olduğu anlamına gelmez. Kesinlikle hayır. Kare süreleri, oyun motorunun ne yaptığını değerlendirmek için hala inanılmaz derecede değerlidir. Bir oyunun gölgelendirici derleme takılması, işlemci/sistem tarafı duraklamaları, varlık akışı gecikmeleri veya dengesiz simülasyon/işleme zamanlaması varsa, kare süreleri genellikle bu sorunları çok net bir şekilde ortaya çıkarır. Ancak özellikle algılanan akıcılığı - yani ekrana kare teslimatının tutarlılığını - yargılamak istiyorsak, sadece oyunun sunmaya çalıştıklarını değil, monitöre gerçekten neyin ulaştığını önemsememiz gerekir.
Bu makalede, kare süreleri ve görüntülenme süreleri arasındaki farkı, bu ayrımın neden önemli olduğunu ve görüntülenme sürelerinin iki senaryoda algılanan akıcılığın daha doğru bir resmini nasıl verebileceğini açıklayacağız: V-Sync'e karşı harici bir kare hızı sınırlayıcısı ve NVIDIA DLSS Kare Üretimi'nin MsBetweenDisplayChange'e karşı MsBetweenPresents ile kare zamanlaması davranışı.
Kare Süreleri ve Görüntülenme Süreleri: Fark Nedir?
Daha fazla ilerlemeden önce, temel terminolojiyi oluşturalım. Çoğu PC oyuncusu, incelemeci veya performans ölçüm aracı kare sürelerinden bahsettiğinde, genellikle bir oyun tarafından sunulan ardışık kareler arasındaki süreden bahsederler. PresentMon terimleriyle bu, MsBetweenPresents ile temsil edilir.
Daha düşük bir kare süresi (genellikle milisaniye veya ms olarak ölçülür) daha yüksek bir kare hızı (genellikle saniyedeki kare sayısı veya FPS olarak ölçülür) anlamına gelir. Örneğin, 16.67 ms'lik bir kare süresi yaklaşık 60 FPS'ye, 8.33 ms yaklaşık 120 FPS'ye, 4.17 ms yaklaşık 240 FPS'ye karşılık gelir.
İşte bu yüzden kare süresi grafikleri bu kadar kullanışlıdır. Bir oyun 120 FPS'de çalışıyorsa, ideal olarak 8.33 ms civarında seyreden kare süreleri görmek isteriz. Grafik aniden 33 ms, 50 ms veya 100 ms'ye fırlarsa, o anda korkunç bir şeyler olmuş demektir ve oyuncu muhtemelen kötü bir takılma veya gecikme algılamıştır.
Ancak, bir Present() çağrısı kullanıcıların ekranlarında gerçekten gördüklerini temsil etmez. Bir kare oyun tarafından sunulabilir, ardından kuyruğa alınabilir/tamponlanabilir, geciktirilebilir, bir yenileme aralığına senkronize edilebilir, düşürülebilir, değiştirilebilir, yırtık olarak kısmen görüntülenebilir veya monitörün kendi yenileme davranışı tarafından etkilenebilir. İşte bu yüzden MsBetweenDisplayChange mevcuttur. Uygulamanın sunum ritmini ölçmek yerine, ekranda görünen görüntü değişikliklerinin ritmini ölçer. Bu önemli bir ayrımdır çünkü görsel akıcılık Present() çağrısında değil, ekran seviyesinde deneyimlenir.
Basitçe ifade etmek gerekirse, kare süreleri oyunun ne yaptığına daha yakındır. Görüntülenme süreleri ise oyuncunun ne gördüğüne daha yakındır.
Bu Ayrımın PC Oyun Performans Ölçümlerinde Neden Önemli?
Tarihsel olarak, kare süresi analizi zaten ortalama kare hızı raporlamasına göre büyük bir gelişmeydi. Bir oyun 120+ FPS ortalamasına sahip olsa bile, kare teslimatı sürekli olarak dalgalanıyorsa oynaması kötü hissettirebilirdi. İşte bu yüzden %1 düşük ve %0.1 düşük FPS sayıları popüler hale geldi: ortalama FPS'nin tamamen gizlediği performans eğrisinin en kötü kısımlarını yakalamaya çalışırlar.
Ancak PC sunum işlem hatları daha karmaşık hale geldikçe, şimdi biraz farklı bir soru sormamız gerekiyor: Oyunun kareleri ne kadar tutarlı bir şekilde sunduğunu mu ölçüyoruz, yoksa ekranın ne kadar tutarlı bir şekilde değiştiğini mi ölçüyoruz? Bu iki şey genellikle benzerdir, özellikle basit, iyi çalışan, VRR, kare üretimi olmayan, kompozit olmayan bir senaryoda. Ancak her zaman aynı değillerdir ve farklılaştıklarında, fark çok önemli olabilir. Bu yüzden yalnızca kare süresine sahip bir gösterge bazen deneyimden daha kötü veya daha iyi görünebilir. Gösterge raporladığı verilerde “yanlış” olmayabilir. Sadece işlem hattının farklı bir aşamasını raporluyor olabilir.
Bu nedenle, bu makale MsBetweenPresents ve MsBetweenDisplayChange'i doğrudan karşılaştıran CapFrameX/PresentMon yakalamalarına odaklanmaktadır. Amaç “gözlerimize güvenmek” değil, metrik olarak oyunun sunum ritmini mi yoksa ekranın gerçek görünen ritmini mi ölçtüğümüze bağlı olarak verilerin nasıl değiştiğini göstermektir.
Testlerimiz için, VSync'e karşı harici kare hızı sınırlayıcısı çalıştırmaları için 120 FPS/8.33 ms hedef kare hızı/kare süresi ve DLSS Kare Üretimi yakalamamız için sınırsız bir kare hızı hedefi ile uygun bir Resident Evil Requiem test sahnesinde CapFrameX yakalamaları gerçekleştirdik. Ayrıca, yakalamalar aşağıdaki ilgili özelliklere sahip masaüstü test sistemimizde gerçekleştirildi:
- İşlemci: Intel Core i7-14700K
- RAM: 32 GB DDR5-7000 CL34
- Depolama: 2 TB PCIe 4.0 NVMe SSD
- Ekran Kartı: NVIDIA GeForce RTX 4090
- İşletim Sistemi: Windows 11 25H2
- Tüm sistem donanımı, BIOS, işletim sistemi güncellemeleri ve grafik sürücüleri test öncesinde tam olarak güncellendi.
Önemli not: CapFrameX ile görüntülenme sürelerini kaydetmek için, ayarlar/seçenekler bölümünde “MsBetweenDisplayChange metriklerini kullan” seçeneğinin etkinleştirilmesi gerekir:
İlk Senaryo: V-Sync'e Karşı Harici Kare Hızı Sınırlayıcısı
İlk senaryo, V-Sync'e karşı harici bir kare hızı sınırlayıcısıdır - özellikle RTSS (RivaTuner Statistics Server) Asenkron sınırlayıcısı - ve tartışmanın dikkatli bir şekilde ele alınması gereken yer burasıdır.
V-Sync, PC oyuncularının çoğu arasında haklı nedenlerle kötü bir üne sahiptir. Geleneksel V-Sync, özellikle GPU'nun kareleri agresif bir şekilde kuyruğa almasına izin verildiğinde girdi gecikmesini artırabilir. Sistem monitörün yenileme hızını sürdüremezse takılmalara neden olabilir. Sabit bir V-Sync hedefinin altına düşmek, tekrarlanan karelere ve kare kalıcılığında büyük sıçramalara neden olabilir, bu da çok kötü hissettirebilir.
Ancak, bir oyun hedef yenileme hızını doğru bir şekilde sürdürebildiğinde, V-Sync ayrıca son derece temiz görüntü zamanlaması da üretebilir. Neden basit: V-Sync, kare sunumunu monitörün yenileme döngüsüne hizalar. Her şey doğru çalıştığında, bu çok eşit görüntü süreleri üretebilir, bu da V-Sync'in görsel olarak akıcı görünebilmesinin nedenidir, ancak gecikmede hissedilir bir ödün vererek.
Buna karşılık, harici kare hızı sınırlayıcıları genellikle kare süresi grafiğinin ne kadar düz göründüğüne göre yargılanır. RTSS gibi araçlar, PC meraklıları arasında bu kadar popüler olmalarının nedeni olan son derece tutarlı sunum zamanlaması üretebilir. Çoğu durumda, iyi bir harici sınırlayıcı harika olabilir. Ama işte önemli kısım: kusursuz görünen kare süreleri otomatik olarak kusursuz görünen görüntü sürelerini garanti etmez. Kare hızı sınırlayıcısının zamanlaması, monitörün sabit yenileme davranışıyla iyi hizalanmamışsa, özellikle VRR devre dışı bırakıldığında, oyun MsBetweenPresents açısından akıcı görünebilirken, ekran zamanlaması MsBetweenDisplayChange açısından daha az temiz olabilir. Bu RTSS veya diğer FPS sınırlarının kötü olduğu anlamına gelmez. Yanlış sonuç bu olurdu. Doğru sonuç, bir kare hızı sınırlayıcısının yalnızca sunum süresi grafiğinin ne kadar iyi göründüğüne göre yargılanmaması gerektiğidir. Ekranda ne olduğuna göre de yargılanmalıdır.
V-Sync
Öncelikle, V-Sync etkinleştirilmiş aşağıdaki kare süresi grafiğini inceleyelim:
Ardından, V-Sync etkinleştirilmiş görüntü süreleri grafiği:
Yukarıdaki kare süresi grafiğinden, mavi ile gösterilen, MsBetweenPresents verilerinin beklenenden belirgin şekilde daha fazla dalgalı göründüğünü ve izole edildiğinde, V-Sync'in dengesiz veya pek akıcı olmayan bir görsel deneyim sunduğunu yanlış bir şekilde düşündürebileceğini görebiliriz. Ancak, yeşil ile gösterilen görüntü süresi grafiği çok farklı bir hikaye anlatıyor. MsBetweenDisplayChange etkinleştirildiğinde, kare teslimatı çok daha tutarlı hale geliyor ve 8.33 ms hedefinden en büyük sapmalar yalnızca 0.1-0.15 ms aralığına ulaşıyor. Bu tür bir değişkenlik, gerçek oyun deneyiminde, hatta son derece hassas oyuncular için bile algılanamayacak kadar küçüktür. Bu nedenle, bu örnek, modern sunum senaryolarında görüntülenme sürelerinin geleneksel kare sürelerinden neden daha doğru bir akıcılık temsilcisi olabileceğini açıkça göstermektedir.
Harici Kare Hızı Sınırlayıcısı
RTSS Asenkron sınırlayıcısı için, önce kare süresi grafiğini inceleyelim:
Ardından, görüntü süresi grafiği:
RTSS Asenkron kare hızı sınırlayıcısı söz konusu olduğunda, kare süresi grafiği başlangıçta oldukça ikna edici görünüyor. Hala arada sırada bazı sıçramalar var, ancak genel tutarlılık oldukça yüksek kalıyor, çoğu kare süresi 8.33 ms hedefine yakın kalıyor. Ancak, görüntü süresi grafiği çok farklı bir tablo çiziyor. V-Sync AÇIK sonucuna kıyasla, görünen kare teslimatı açıkça daha az tutarlı, bu da test sırasında yaşadığımız deneyimle uyumlu. RTSS Asenkron sınırlayıcısı V-Sync olmadan kullanıldığında, oyun fark edilir derecede titreme ve ekran yırtılması sergiledi, bunların her ikisi de V-Sync yalnızca etkinleştirildiğinde tamamen yoktu. Görüntülenme sürelerinin bu kadar önemli olmasının nedeni tam olarak budur: kare süresi grafiği, sınırlayıcıyı uygulama/sunum düzeyinde makul derecede iyi zamanlanmış gösterebilir, ancak görüntü süresi grafiği, oyuncunun monitörde gerçekten gördüğü dengesiz görsel teslimatı daha doğru bir şekilde yansıtır.
İkinci Senaryo: NVIDIA DLSS Kare Üretimi
İkinci senaryo NVIDIA DLSS Kare Üretimi'dir ve bu muhtemelen MsBetweenPresents'in tek başına artık yeterli olmamasının en net modern örneklerinden biridir. Desteklenen GeForce RTX 40/50 Serisi GPU'larda DLSS Kare Üretimi'nin en son sürümüyle, kare zamanlaması bir oyunun Present() çağrılarından sonra gerçekleşebilir, bu da geleneksel sunum tabanlı kare sürelerinin monitöre teslim edilen son zamanlamayı doğru bir şekilde temsil etmeyebileceği anlamına gelir.
Öncelikle, MsBetweenPresents ile aşağıdaki CapFrameX kare süresi grafiğini inceleyelim:
Yukarıdaki CapFrameX yakalamasından da görebileceğimiz gibi, DLSS Kare Üretimi'ni MsBetweenDisplayChange devre dışı bırakılmış halde test etmek, çalışmayı gerçekte olduğundan çok daha kötü gösteriyor. CapFrameX burada MsBetweenPresents'e dayandığı için, grafik aslında son gösterilen zamanlama yerine uygulamanın sunum zamanlamasını gösteriyor. Sonuç, genellikle bu durumun zorunlu olarak oyuncunun ekranda gördüğü olmayacak olsa da, aşırı derecede kötü kare zamanlaması, korkunç %1 ve %0.1 düşük değerler önerecek karmaşık görünümlü bir kare süresi çizelgesidir.
Şimdi aynı önceki CapFrameX yakalamasını, ancak CapFrameX yakalama ayarlarında MsBetweenDisplayChange etkinleştirilmiş halde inceleyelim:
CapFrameX yakalama ayarlarında MsBetweenDisplayChange etkinleştirilmiş halde aynı kıyaslamayı tekrar çalıştırdığımızda, tablo tamamen değişiyor. Görüntülenme süreleri artık DLSS Kare Üretimi çıktısının ekrana nasıl zamanlandığı dahil olmak üzere, görünen kare değişikliklerinin gerçek zamanlamasını yakalıyor. DLSS FG'yi bozuk veya kötü zamanlanmış göstermek yerine, grafik artık düzgün çalışan bir kare üretim sunum yolu için olması gerektiği gibi kare teslimatını gösteriyor. Bu nedenle, sonucu yalnızca sunum tabanlı kare süreleri aracılığıyla değerlendirmek, deneyimi kağıt üzerinde gerçekte olduğundan çok daha kötü gösterebilir. Bu tür bir sunum yolunda, görüntülenme süreleri yalnızca ikincil bir metrik değildir; oyuncuya teslim edilen son kare zamanlamasını en iyi temsil eden metriktir.
YouTube Videoları Neden Bu Tür Analizler İçin Uygun Değil?
Bu konu temel olarak görsel akıcılıkla ilgili olduğundan, video karşılaştırmalarının bunu göstermenin en iyi yolu olacağı aşikar gelebilir. Ne yazık ki, durum her zaman böyle değildir.
Normal bir YouTube videosu, yüksek yenileme hızlı kare zamanlaması farklılıklarını göstermek için ideal bir ortam değildir. Orijinal oynanış 120+ FPS'de yakalandıysa, ancak son çevrimiçi video 60 FPS'de gösteriliyorsa, analiz etmeye çalıştığımız zamansal bilgilerin çoğu zaten kaybolmuş, yeniden örneklenmiş veya gizlenmiş demektir.
Bu nedenle, bu makalenin amacı için, analiz ettiğimiz CapFrameX yakalamalarından elde edilen önceki grafikler, iddialarımızın tüm kanıtlarını oluşturmaktadır.
Kare Sürelerinin Artıları ve Eksileri
Bu noktada, kare sürelerinin modasının geçtiğini savunuyormuşuz gibi gelebilir. Kesinlikle öyle değil. Kare süreleri, özellikle oyunun veya sisteminizin içinde neler olduğunu teşhis etmeye çalışırken inanılmaz derecede kullanışlıdır. Bir oyunun gölgelendirici derleme takılmaları, varlık akışı gecikmeleri, işlemci tarafı duraklamaları, GPU darboğazları veya başka herhangi bir tutarsız performans davranışı varsa, kare süreleri bu sorunları çok net bir şekilde ortaya çıkarabilir.
Kare süreleri aynı zamanda birçok PC performans analizi biçimi için daha sezgisel metriktir. Bir oyunun 60 FPS, 120 FPS veya 240 FPS'de çalıştığını söylediğimizde, genellikle oyunun ardışık kareleri üretmek için ne kadar zaman harcadığı açısından düşünürüz. Bu, MsBetweenPresents'i klasik performans ölçümleri ve oyun motoru tarafı performans analizi için son derece değerli kılar.
Ancak kare sürelerinin sınırlamaları vardır. Bir oyun tarafından sunulan bir karenin temiz, hemen veya hiç görüntülenmesini garanti etmez. Kare süreleri ayrıca VRR davranışı, sabit yenileme tarama uyuşmazlığı, harici FPS sınırlayıcı davranışı, V-Sync zamanlaması, yırtılma ve kare üretimi kare zamanlaması modlarının etkilerini tam olarak yakalayamayabilir.
Başka bir deyişle, kare süreleri işlem hattının üretim tarafını anlamak için mükemmeldir. İşlem hattının son görüntüleme tarafını yargılamak için her zaman en iyi metrik değillerdir.
Görüntülenme Sürelerinin Artıları ve Eksileri
Buna karşılık, görüntülenme süreleri oyuncunun gerçekte gördüğüne çok daha yakındır. Aslında, görüntü süresi grafiği dengesizse, görünen kare teslimatı dengesizdir. Temizse, başka görsel artefaktlar, gecikme sorunları veya yorumlamayı engelleyen yakalama sınırlamaları olmadığı varsayılarak, son görüntülenen zamanlama muhtemelen temizdir.
Bu, görüntülenme sürelerini algılanan akıcılığı yargılamak için özellikle kullanışlı hale getirir. Ayrıca VRR davranışı, kare üretimi zamanlaması, V-Sync ve diğer FPS sınırlayıcılarının görsel akıcılık üzerindeki etkisini vb. karşılaştırırken çok yardımcı olurlar.
Ancak, görüntülenme süreleri de mükemmel değildir. Etkin olarak, oyun motorunda neden bir şeyin yanlış gittiğini her zaman size söylemezler. Bir görüntülenme süresi sıçraması, bir karenin çok uzun süre görüntülendiğini söyleyebilir, ancak nedeninin işlemci, GPU, varlık akışı, gölgelendirici derleme, kare sunum modu veya tamamen başka bir şey olup olmadığını hemen söylemeyebilir.
Bu yüzden en iyi analiz tek bir metriği körü körüne kullanmamalıdır. Bu nedenle, kare süreleri ve görüntülenme süreleri tamamlayıcı olarak görülmelidir.
Peki, Teknoloji İncelemecileri Hangi Metriği Kullanmalı?
Bu sorunun cevabı basitçe sorulan soruya bağlıdır. Amaç, oyun motorunun takılıp takılmadığını, işlemcinin GPU'yu darboğaz yapıp yapmadığını, gölgelendirici derlemenin takılmalara neden olup olmadığını veya bir grafik ayarının GPU/VRAM kaynaklarını aşırı yükleyip yüklemediğini belirlemekse, geleneksel kare süreleri hala son derece kullanışlıdır. Öte yandan, oyunun monitörde ne kadar akıcı göründüğünü yargılamak amaçsa, görüntülenme süreleri genellikle daha ilgili metriktir. Bizce teknoloji incelemecileri, mümkün olduğunda her ikisini de göstermelidir.
En azından, performans analizi hangi metriğin kullanıldığı konusunda net olmalıdır. Bir grafik MsBetweenPresents'e dayanıyorsa, bu şekilde etiketlenmelidir. Yüzdelik FPS sayıları MsBetweenDisplayChange'e dayanıyorsa, bu da netleştirilmelidir. Bu özellikle önemlidir çünkü iki yakalama, kullanılan metriğe bağlı olarak farklı hikayeler anlatabilir. Bir oyun sunum sürelerinde temiz görünebilir, ancak görüntülenme sürelerinde dengesiz olabilir. Başka bir kurulum, sunum sürelerinde aslında ekranda hissettirdiğinden daha kötü görünebilir. Hiçbir grafik zorunlu olarak “yanıltıcı” değildir. Sadece kare oluşturma ve sunum işlem hattının farklı aşamalarını ölçüyorlar.
Son Sözler
Yıllardır, kare süresi grafikleri PC performans analizi için mevcut en iyi araçlardan biri olmuştur ve bugün de öyledir. Yalnızca ortalama FPS sayılarından çok daha kullanışlıdırlar ve takılmaları, gecikmeleri, donanım darboğazlarını ve tutarsız oyun/motor davranışlarını teşhis etmek için gereklidirler.
Ancak, modern PC oyunları, eski kare süresi grafiğinin tam olarak açıklayabileceğinden daha karmaşık hale geldi. VRR, monitörün oyunu nasıl takip ettiğini değiştirir; kare üretimi teknolojileri genellikle kendi kare zamanlama mekanizmalarını uygular ve harici kare hızı sınırlayıcıları mükemmel sunum zamanlaması üretebilirken yine de ekranla farklı şekillerde etkileşime girebilir. İşte bu yüzden görüntülenme sürelerinin modern PC oyun performansı analizi ve performans ölçümlerinde önemli bir yere sahip olmayı hak ettiğine kuvvetle inanıyoruz.