Ekran listelerinin modern eşdeğeri nedir?


9

Görüntüleme listeleri, teorik olarak, daha sonra kullanılmak üzere bir grup komutu saklayarak API'nın herhangi bir bölümünü hızlandırabilen bir OpenGL özelliğiydi. Anladığım kadarıyla, sürücünün yükünü azaltma konusundaki mevcut çabalar açısından bu çok mantıklı.

Ekran listeleri 3.1 sürümünde kullanımdan kaldırıldı. Modern API eşdeğeri nedir ve DirectX benzer bir özelliği ortaya koyar mı? Artık böyle bir işlevsellik yoksa, mantık nedir?

Yanıtlar:


12

Nvidia, modern GL'de komut arabellekleri oluşturmak için bir uzantıya sahiptir .

Benzer işlevsellik eksikliğinin nedeni, nasıl oluşturulacağına dair çok fazla durumun olması ve görüntüleme listesinin çok farklı durumdan etkilenmesidir. Örneğin, karışım durumunun değiştirilmesi, parça gölgelendiricisinin bazı donanımlarda yamalanmasını gerektirir.

NVidia , bir gönderimden sonra tüm eyaletleri yakalayıp eyalete sıfırlayarak sorunu çözdü :

1) Tasarımı ne motive eder?

Birincil hedef, önceden onaylanmış komut tamponlarını yeniden kullanabilmektir. Diğer API'ler ve teklifler bunu çeşitli komut listeleri veya durum nesneleri enkarnasyonları ile ele almıştır, ancak yinelenen bir problem, ardışık düzenin çeşitli aşamaları arasındaki etkileşimlerin bu ön doğrulamayı ve yeniden kullanımını önlemesi. Bu etkileşimler genellikle donanıma özgüdür (ve satıcıdan satıcıya, hatta nesilden nesile farklılık gösterir) ve yeni etkileşimler, ön doğrulama şeması önerildiğinde hayal edilmeyen yeni özelliklerle tanıtılır.

Bunu, boru hattının tüm durumunu kapsayan (neredeyse) monolitik bir durum nesnesine sahip olarak çözmeye çalışıyoruz. Bu, gerekli tüm çapraz doğrulamaları yapmak için tüm uygulamalar için yeterli bilgi sağlamalıdır. Bunları yeni API kapladığı alanı en aza indirecek şekilde oluşturmaya çalışıyoruz - TÜM durum (gelecekte eklenecekler de dahil) istediğimizden, içeriği mevcut durumdan yakalarız.

[...]

23) Gönderme çağrısından sonra jetonlarla değiştirilen durum hangi durumda bırakılır?

ÇÖZÜLDÜ: durum sıfırlanır.

(yukarıda bağlantılı uzantı metninden)

Ancak gerçek ardıl, DX12 ve vulkan'daki komut tampon işlevselliğidir. Bunlar ayrıca, komut arabelleğini oluştururken ve doldururken kullanılacak tüm oluşturma durumunu tek bir nesneye yakalar. NVidia uzantısı, NVidia'nın Vulkan tasarımına katılımının bir sonucu olarak bu mimariye dayanmaktadır.

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.