NVK e Zink hanno migliorato significativamente la situazione con driver aperti per GPU NVIDIA

Collabora ha annunciato che il suo driver NVK open source per schede grafiche NVIDIA è stato finalizzato per un utilizzo diffuso e certificato dal consorzio Khronos, un consorzio che sviluppa standard grafici. Il driver è stato riconosciuto come pienamente conforme alla specifica Vulkan 1.3, ha superato con successo tutti i test della Khronos Conformance Test Suite (CTS) ed è incluso nell'elenco dei driver certificati.

La certificazione è stata completata per le GPU NVIDIA basate sulle microarchitetture Turing (serie GeForce GTX 16xx, RTX 20xx e Quadro RTX), Ampere (serie GeForce RTX 30xx e RTX A2000/4000/5000/6000) e Ada (serie GeForce RTX 4xxx, RTX 4000 SFF, RTX 4xxx/5000/6000 Ada). La verifica è stata eseguita in un ambiente kernel. Linux 6.5 e 6.8rc1. L'ottenimento della certificazione ci consente di dichiarare ufficialmente la conformità a questi standard grafici e di utilizzare i relativi marchi Khronos. Le modifiche sono già state integrate nel codice sorgente di Mesa e saranno incluse nella versione 24.1.

Oltre ai miglioramenti in NVK, sono stati compiuti progressi significativi nel supporto OpenGL per le schede grafiche NVIDIA. Mesa ha adottato una modifica che consente l'utilizzo del driver Zink per fornire il supporto OpenGL 4.6 sui sistemi con la nuova serie di schede grafiche NVIDIA (a partire dalla GeForce RTX 20xx), che potrebbero riscontrare problemi con il driver OpenGL standard Nouveau (NVC0). Per abilitare Zink al posto di NVC0 in Mesa 24.1, è sufficiente impostare la variabile d'ambiente "NOUVEAU_USE_ZINK=1".

Le modifiche apportate a Mesa consentono inoltre di utilizzare Zink per il supporto OpenGL in altri driver, come soluzione alternativa per le GPU non supportate dai driver OpenGL nativi di Mesa. Ad esempio, un approccio simile è già in uso per fornire il supporto OpenGL nel driver Freedreno per la GPU Qualcomm Adreno 700 e nel driver PowerVR per la GPU Imagination PowerVR basata sulla microarchitettura Rogue.

Zink fornisce un'implementazione OpenGL basata su Vulkan, consentendo l'utilizzo di OpenGL con accelerazione hardware su dispositivi che supportano solo l'API Vulkan. Nella prossima versione di Mesa, il driver Zink sarà abilitato di default durante il processo di build. Le prestazioni di Zink sono simili a quelle delle implementazioni OpenGL native, consentendo agli sviluppatori di concentrarsi sul supporto di alta qualità per l'API Vulkan e di implementare il supporto OpenGL su Vulkan, anziché sprecare risorse nella manutenzione di driver OpenGL separati.

Non è prevista la rimozione del vecchio driver OpenGL Nouveau, ma l'attuale combinazione Zink + NVK dimostra prestazioni superiori in molti test. Allo stato attuale dello sviluppo, Zink + NVK consente di raggiungere 60 FPS e prestazioni superiori sui modelli di GPU più recenti durante l'esecuzione di molti giochi, ma permangono alcuni problemi irrisolti e aree non ottimizzate, che verranno risolti nel tempo.

Sono in corso anche lavori per stabilizzare il livello DXVK sul driver NVK, fornendo un'implementazione di Direct3D 9, 10 e 11 tramite la traduzione delle chiamate all'API Vulkan. Non è garantito che tutti i giochi D3D11 funzionino con il bundle NVK+DXVK non modificato di Mesa, ma sono disponibili funzionalità di base e i bug identificati vengono gradualmente risolti. Analogamente, il bundle NVK/VKD3D-Proton è in fase di sviluppo per supportare D3D12, ma il suo stato è ancora in ritardo rispetto a NVK+DXVK e alcune funzionalità mancanti devono essere implementate.

Il driver NVK è stato sviluppato da zero da un team che includeva Karol Herbst (sviluppatore Nouveau presso Red Hat), David Airlie (responsabile del sottosistema DRM presso Red Hat) e Jason/Faith Ekstrand (sviluppatori Mesa attivi presso Collabora). Gli sviluppatori hanno utilizzato file header ufficiali e moduli kernel open source pubblicati da NVIDIA. Il codice NVK riutilizzava occasionalmente componenti principali del driver OpenGL Nouveau, ma a causa delle differenze di denominazione tra i file header NVIDIA e i nomi Nouveau ottenuti tramite reverse engineering, l'adozione diretta è stata difficile. Gran parte del codice ha dovuto essere ripensato e reimplementato da zero.

Lo sviluppo è stato condotto con l'obiettivo di creare un nuovo driver Vulkan di riferimento per Mesa, il cui codice potesse essere riutilizzato per altri driver. A tal fine, NVK ha cercato di integrare tutta l'esperienza di sviluppo di driver Vulkan esistente, di mantenere il codice sorgente in condizioni ottimali e di ridurre al minimo il porting di codice da altri driver Vulkan, implementando l'approccio necessario per ottenere prestazioni ottimali e di alta qualità, piuttosto che copiare ciecamente le implementazioni esistenti. Il driver è già incluso in Mesa e le modifiche necessarie all'API del driver Nouveau DRM sono incluse nel kernel. Linux 6.6

Fonte: opennet.ru

Acquista hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting web affidabile con protezione DDoS, server VPS e VDS | ProHoster