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.