Windows Aero ekranın yırtılmasını nasıl önler?


14

Windows Aero açıkken, Temel temayı Aero'suz kullanırken aksine ekran yırtılmaz.

Peki, dikey senkronizasyonlu oyunların neden masaüstünde bir şey yapmaktan çok daha fazla giriş gecikmesi var gibi görünüyor? Pencereli oyunları V-sync kapalı ile senkronize ediyor gibi görünüyor, oyunda yerleşik olan herhangi bir yöntemi kullanıyorlarsa olduğundan daha iyi.

Bu neden ve nasıl oluyor veya gerçekleşiyor gibi görünüyor?

Yanıtlar:


8

Aslında, Aero'nun bir uygulamada VSYNC'yi zorlamadan yırtılmayı önleyebilmesinin nedeni, birleşik bir pencere yöneticisi olmasıdır. Masaüstünü ve tüm pencereleri çalışan herhangi bir uygulamaya göre eşzamansız olarak çizer.

Yani, Windows Vista / 7'de birleştirme özelliğini etkinleştirdiğinizde ( her zaman Windows 8'de etkindir), arkadan öne doğru kaydırılan son görüntünün bir kopyasını kullanarak tüm pencereleri çizecektir. Besteci (Microsoft buna DWM, Masaüstü Pencere Yöneticisi adını verir), VSYNC etkin durumdayken her şeyi bir araya getirir ve her pencere için tamamen değiştirilmiş son ön tampon görüntüsünün bir kopyasını kullanarak çizim yaptığından, hiçbir zaman kısmen çizilen kareleri görüntülemez. Bununla birlikte, ön tamponun sadece doğru şekilde çalışmasını sağlamak için tasarlanmış gerçekten eski yazılımları önlemenin talihsiz bir yan etkisi vardır - ancak modern yazılım bunu yapmaz.

Özetle, DWM yırtılmaya karşı ek bir koruma katmanı ekler. Sistemde çalışan herhangi bir uygulamanın, ekranın yenileme hızına bakılmaksızın bir oranda çizim yapmasına izin verecek ve yine de yırtılmayı önleyecektir. Böyle bir sistemde, pencereli modda OpenGL veya Direct3D'de VSYNC'yi etkinleştirmenin tek iyi yanı aslında CPU / GPU kullanımını azaltmadır.

Bu yüzden uyarlanabilir VSYNC oluşturuldu, ekranın yenileme hızını sürdüremeyen uygulamaları yenileme oranının daha düşük bir faktörüne zorlayarak (örneğin, 60 Hz -> 30, 20, 15, 10, 12) cezalandırılmaması fikri var. , 6, 5, 4, 3, 2, 1) ancak monitörden daha hızlı çizim yapan uygulamaları sınırlandırmak için görüntüleri aşırı miktarda CPU / GPU gücü kullanmaktan görüntüleyebilirsiniz.


5

Aero etkinken, Masaüstü Pencere Yöneticisi çift ​​arabellekleme kullanır :

Windows Aero özelliği, ekranda çizmek için çift arabelleklemeyi kapsamlı bir şekilde kullanır.

Kaynak

Wikipedia , ekranın yırtılmasını önlemek için bunun V-sync ile nasıl kullanıldığını söylemektedir:

Dikey karartma aralığı sırasında, sürücü video kartına ekran dışı grafik alanını etkin görüntüleme alanına hızlı bir şekilde kopyalamasını (çift arabelleğe alma) veya her iki bellek alanına görüntülenebilir olarak davranmasını ve aralarında ileri geri geçiş yapmasını (sayfa lanetleme).


6
Çift tamponlama yırtılmayı engellemez, kullanıcının işlenme sürecinde bir şeyler görmesini önler. Çift arabellekliyorsanız ve ekran yenilemesinin ortasında bir sayfa çevirme işlemi yaparsanız, yine de yırtılırsınız.
Wyzard

Tabii ki çift tamponlama yanlış yaparsanız hala yırtılabilir, ama asıl nokta DB yırtılmayı önlemek için kullanılabilir.
nitro2k01

3

Çift tamponlama + V-sync on yırtılma olmaz. Aero bu yapılandırmayı kullanıyor.


2

DWM (Aero efektini etkinleştiren teknoloji), ekranınızdaki her şeyi bir D3D yüzeyi olarak işler (videonun Flip'te oynatmaya devam etmesini sağlar). Bu oluşturma tekniği , oyun yönteminin genel DWM yönteminden daha iyi olması gerekmesine rağmen, otomatik olarak yırtılmayı önler (sonuçta kendi motoru). Bu nedenle oyun yöntemi ya ilk etapta o kadar iyi değil ya da yapılandırmanız için optimize edilmemiş olabilir.


2
Kendi başına, Direct3D kullanımı ekranın yırtılmasını engellemez. Çift tamponlama.
bwDraco
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.