NVK ve Zink, NVIDIA GPU'lar için açık sürücülerle durumu önemli ölçüde iyileştirdi

Collabora, NVIDIA ekran kartlarına yönelik açık NVK sürücüsünü geniş bir kullanıcı kitlesinin günlük kullanımına hazır hale getirdiğini ve bu sürücüyü grafik standartları geliştiren Khronos konsorsiyumunda sertifikalandırdığını duyurdu. Sürücünün Vulkan 1.3 spesifikasyonuyla tam uyumlu olduğu kabul edilmiş, CTS'nin (Khronos Conformance Test Suite) tüm testlerini başarıyla geçmiş ve sertifikalı sürücüler listesine dahil edilmiştir.

Turing mikro mimarilerini (GeForce GTX 16xx, RTX 20xx ve Quadro RTX serisi), Ampere (GeForce RTX 30xx ve RTX A2000/4000/5000/6000 serisi) ve Ada (GeForce RTX 4xxx, RTX 4000 SFF) tabanlı NVIDIA GPU'ların sertifikasyonu tamamlandı , RTX 4xxx/5000/6000 Ada). Test, Linux çekirdeği 6.5 ve 6.8rc1'in bulunduğu bir ortamda gerçekleştirildi. Sertifikayı almak, grafik standartlarıyla uyumluluğu resmi olarak beyan etmenize ve ilgili Khronos ticari markalarını kullanmanıza olanak tanır. Değişiklikler Mesa kod tabanına zaten kabul edildi ve Mesa 24.1 sürümünün bir parçası olacak.

NVK'deki iyileştirmelerin yanı sıra, NVIDIA ekran kartlarına OpenGL desteği sağlama konusunda da önemli ilerleme kaydedildi. Mesa, stok Nouveau OpenGL sürücüsünde (NVC4.6) sorun yaşayabilecek yeni NVIDIA ekran kartı serisine (GeForce RTX 20xx'den başlayarak) sahip sistemlerde OpenGL 0 desteği sağlamak amacıyla Zink sürücüsünün kullanımına izin veren bir değişikliği benimsedi. Mesa 0'de NVC24.1 yerine Zink'i etkinleştirmek için “NOUVEAU_USE_ZINK=1” ortam değişkenini ayarlamanız yeterlidir.

Mesa'da yapılan değişiklikler ayrıca, Mesa'nın yerel OpenGL sürücüleri tarafından desteklenmeyen GPU'lar için bir geri dönüş olarak diğer sürücülerde OpenGL'yi desteklemek üzere Zink'i kullanma olanağı da sağlıyor. Örneğin, Qualcomm Adreno 700 GPU için freedreno sürücüsünde ve Rogue mikro mimarisini temel alan Imagination PowerVR GPU için powervr sürücüsünde OpenGL desteği sağlamak için benzer bir yaklaşım halihazırda kullanılıyor.

Zink, Vulkan'ın üzerinde, yalnızca Vulkan API'sini destekleyen cihazlarda donanım hızlandırmalı OpenGL elde etmenize olanak tanıyan bir OpenGL uygulaması sağlar. Mesa'nın bir sonraki sürümünde, oluşturma sırasında Zink sürücüsü varsayılan olarak etkinleştirilecektir. Zink'in performansı, yerel OpenGL uygulamalarının performansına yakındır; bu, kaynakları bireysel OpenGL sürücülerinin bakımı için israf etmek yerine, Vulkan API'si için yüksek kaliteli desteğe odaklanmayı ve OpenGL desteğini Vulkan'ın üzerinde uygulamaya koymayı mümkün kılar.

Eski Nouveau OpenGL sürücüsünün kaldırılması henüz planlanmıyor ancak mevcut haliyle Zink + NVK kombinasyonu birçok testte daha yüksek performans gösteriyor. Geliştirmenin mevcut aşamasında, birçok oyunu çalıştırırken Zink + NVK kombinasyonu, yeni GPU modellerinde 60 FPS ve daha yüksek performans elde etmenize olanak tanıyor, ancak hala zaman içinde çözülecek bazı çözülmemiş sorunlar ve optimize edilmemiş alanlar var.

Ayrıca, çağrıların Vulkan API'sine çevrilmesi yoluyla çalışan, Direct3D 9, 10 ve 11'in uygulanmasını sağlayan NVK sürücüsünün üzerindeki DXVK katmanının çalışmasını stabilize etme çalışmaları da belirtildi. Tüm D3D11 oyunlarının Mesa'nın değiştirilmemiş NVK+DXVK kombinasyonuyla çalışacağı henüz garanti edilmemiştir, ancak temel yetenekler mevcuttur ve belirlenen kusurlar yavaş yavaş ortadan kaldırılmaktadır. Benzer şekilde, VKD3D-Proton ile NVK bağlantısı, D3D12'ye destek sağlamak üzere geliştirilmektedir, ancak durumu hala NVK+DXVK'nin gerisindedir ve bazı eksik özelliklerin uygulanması gerekmektedir.

NVK sürücüsü, Karol Herbst (Red Hat'te Nouveau geliştiricisi), David Airlie (Red Hat'te DRM sorumlusu) ve Collabora'dan Jason/Faith Ekstrand'ın (aktif Mesa geliştiricisi) dahil olduğu bir ekip tarafından sıfırdan oluşturuldu. Sürücüyü oluştururken geliştiriciler, NVIDIA tarafından yayınlanan resmi başlık dosyalarını ve açık çekirdek modüllerini kullandı. NVK kodu, bazı yerlerde Nouveau OpenGL sürücüsünün bazı temel bileşenlerini kullanmıştır, ancak NVIDIA başlık dosyalarındaki adlar ile Nouveau'daki tersine mühendislik uygulanmış adlar arasındaki farklılıklar nedeniyle, kodun doğrudan ödünç alınması zordur ve çoğunlukla birçok şeyin yeniden düşünülmesi ve sıfırdan uygulanması gerekiyordu.

Geliştirme, Mesa için diğer sürücüleri oluştururken kodu ödünç alınabilecek yeni bir referans Vulkan sürücüsü oluşturma hedefiyle gerçekleştirildi. Bunu yapmak için, NVK sürücüsü üzerinde çalışırken, Vulkan sürücülerini geliştirmede mevcut tüm deneyimi hesaba katmaya, kod tabanını optimum formda tutmaya ve diğer Vulkan sürücülerinden kod aktarımını en aza indirmeye çalıştılar ve olması gerektiği gibi yaptılar. optimum ve yüksek kaliteli çalışma ve diğer sürücülerde yapılanların körü körüne kopyalanmaması. Sürücü zaten Mesa'ya dahil edilmiştir ve Nouveau DRM sürücü API'sinde gerekli değişiklikler Linux 6.6 çekirdeğine dahil edilmiştir.

Kaynak: opennet.ru

Yorum ekle