Çift Ve Üçlü Arabellekleme Nedir?

In Makale by Muhsin Bayram7 Comments

Çift ve Üçlü Arabellekleme arasındaki farklarla, bunların V-Sync ile ilişkisi hakkında bilmek istediklerinizi bu yazıda bulacaksınız.

Bilgisayarınız, monitörde bir görüntü oluşturacağı zaman, öncelikle görüntülenecek görseli çizer ve arabellek (buffer) olarak adlandırabileceğimiz bu çizimi monitöre gönderir. İlk zamanlarda bilgisayar ve monitör arasında sürekli çizilip gönderilen tek tampon vardı. Bu yöntemin kendi avantajları olsa da, titreme gibi ciddi sorunları da mevcuttu.

Bu sorunlarla baş edebilmek için double buffering (çift arabellekleme) yöntemi geliştirildi. Çift arabellek ile birlikte geri arabellek ve ön arabellek olmak üzere buffer sayısı ikiye çıkarıldı. Bu yöntemde bilgisayar geri arabelleği çizerken, ekrana ön arabellek gösteriliyor. Geri arabelleğin çizimi bittikten sonra, çizimi yapan program arabellek değiştirme işlemi yapıyor ve geri arabellek ile ön arabellek yer değiştiriyor. Arabellekler arası değiş tokuş işlemi gerçekleştikten sonra ise program, ön arabellek gösterilirken yeni geri arabelleği çizmeye başlayabiliyor.

Grafik yırtılma neden oluşur?

Çift arabellekleme sürecinde değiş tokuş işlemi herhangi bir anda gerçekleşebilir. Yani bilgisayar arabelleği monitöre gönderirken değiş tokuş işlemi uygulanabilir. Bu durumlarda eğer eski ön arabellek ile yenisi arasında çok fazla görsel değişiklik varsa, tearing adı verilen yırtılma etkisi gözlemlenir.

Yırtılmalar çoğunlukla yüksek kare hızında çalışan oyunlarda ani grafik değişmeleri sırasında gözlenir. Yüksek kare hızı ve hızlı hareketler sebebiyle monitöre çizilen her kare birbirinden farklı olur ve bu hareket esnasında arabellekler arasında gerçekleşen değişim ciddi görsel bozulmalara sebep olabilir.

Yırtılma etkisi ile mücadelede en sık başvurulan yöntem Vsync‘tir. Vsync’in temel çalışma prensibi, arabellek değişimlerini monitörün dikey yenileme hızıyla eşzamanlı hale getirmektir.

Grafik takılmalar neden oluşur?

Oyun içinde Vsync açmak yırtılma sorununu giderse de, oyunun kullanabileceği maksimum kare sayısını kullanılan monitörün yenileme hızına sabitler. Bu durum hem oyunun performansını etkiler, hem de görüntüde stuttering dediğimiz takılmalara sebep olur. Her ne kadar performans açısından Vsync en faydalı araç olmasa da, yırtılmanın engellenmesi ve sabitlenen kare sayısı, oyunun genel olarak daha akıcı görünmesini sağlar.

dark-souls-3

Üçlü arabellekleme nedir?

Görünüşte çift arabelleklemeyi kullanabileceğimiz iki yöntem var. Ya Vsync’i kapatıp yırtılma etkisine rağmen maksimum performansı ve minimum gecikmeyi elde edeceğiz. Ya da Vsync kullanıp yırtılma etkisini akıcı ancak gecikmeli bir oyun deneyimiyle takas edeceğiz. Ancak gelişen görüntü teknolojileri sayesinde artık üçüncü bir alternatifimiz var; üçlü arabellekleme.

Çift arabelleklemenin en iyi yanlarını birleştirip bize sunan üçlü arabellekleme, adından da anlaşılabileceği gibi üç adet arabellek kullanıyor. Üçüncü arabellek sayesinde bilgisayar, monitöre gönderilen arabelleği kilitleyip değiştirilmesini engelliyor ve bu sayede yırtılmayı önlüyor. Aynı zamanda programların arabelleğe yazma hızını da yavaşlatmamış oluyor.

Programlar, her zaman kullanıma açık iki geri arabelleğe sürekli görüntü çiziyor ve her yenilenmede ön arabellek ile en güncel çizime sahip geri arabellek yer değiştiriyor. Bu yöntem her ne kadar VRAM üzerinde daha fazla bellek alanı harcasa da, modern ekran kartlarının 512 MB üzerindeki VRAM kapasitelerinde, fazladan harcanan bellek miktarı göze batmıyor.

gta 5

Üçlü arabelleklemede geri arabelleklerin sürekli çizimlerde kullanılması, ön arabellek yenilemesi sırasında Vsync destekli çift arabelleklemenin aksine takılmaları ve gecikmeleri önlüyor. Diğer yandan Vsync kapalı bir çift arabelleklemede yaşanan yırtılmalar, ön arabelleğin monitöre aktarılması sırasında herhangi bir yenilenme yaşanmadığı için engelleniyor.

Bu son detay, üçlü arabellekleme ile ilgili tek sorunu da karşımıza çıkarıyor. Yenilemeden kısa bir süre sonra gösterilen bir kare, Vsync kapalı bir çift arabelleklemede karenin üst kısımlarında yırtılma olmasına sebep olacaktır. Ancak yırtılmanın altında kalan kısım, kareyi tamamen çizmek zorunda kalan üçlü arabelleklemeye göre daha az gecikmeli görünecektir. Bu ufak sorun, yırtılmayı görmezden gelebilenler için çift arabelleklemenin tek avantajı olarak gözlemlenebilir. Ancak diğer bütün koşullarda üçlü arabelleklemenin avantajı su götürmez bir gerçek olarak karşımızdadır.