NVK, un driver aperto per schede grafiche NVIDIA, supporta Vulkan 1.0

Il consorzio Khronos, che sviluppa gli standard grafici, ha riconosciuto la piena compatibilità del driver aperto NVK per le schede video NVIDIA con la specifica Vulkan 1.0. Il driver ha superato con successo tutti i test del CTS (Kronos Conformance Test Suite) ed è incluso nell'elenco dei driver certificati. È stata completata la certificazione per le GPU NVIDIA basate sulla microarchitettura Turing (TITAN RTX, GeForce RTX 2060/2070/2080, GeForce GTX 1660, Quadro RTX 3000-8000, Quadro T1000/T2000). Il test è stato eseguito in un ambiente con kernel Linux 6.5, X.Org X Server 1.20.14, XWayland 22.1.9 e GNOME Shell 44.4. L'ottenimento del certificato permette di dichiarare ufficialmente la compatibilità con gli standard grafici e di utilizzare i marchi Khronos associati.

Il driver NVK è stato creato da zero da un team che comprende Karol Herbst (sviluppatore Nouveau presso Red Hat), David Airlie (manutentore DRM presso Red Hat) e Jason Ekstrand (sviluppatore attivo Mesa presso Collabora). Durante la creazione del driver, gli sviluppatori hanno utilizzato file header ufficiali e moduli kernel aperti pubblicati da NVIDIA. Il codice NVK utilizzava in alcuni punti alcuni componenti di base del driver Nouveau OpenGL, ma a causa delle differenze nei nomi nei file di intestazione NVIDIA e nei nomi decodificati in Nouveau, il prestito diretto del codice è difficile e per la maggior parte molte cose dovevano essere ripensate e implementate da zero.

Lo sviluppo è stato effettuato con l'obiettivo di creare un nuovo driver Vulkan di riferimento per Mesa, il cui codice potrebbe essere preso in prestito durante la creazione di altri driver. Per fare ciò, lavorando sul driver NVK, hanno cercato di tenere conto di tutta l'esperienza esistente nello sviluppo di driver Vulkan, mantenere la base di codice in forma ottimale e ridurre al minimo il trasferimento di codice da altri driver Vulkan, facendo come dovrebbe essere per lavoro ottimale e di alta qualità e non copiare ciecamente come viene fatto in altri conducenti. Il driver è già incluso in Mesa e le modifiche necessarie all'API del driver Nouveau DRM sono incluse nel kernel Linux 6.6.

Tra le novità nell'annuncio, Mesa segnala anche l'adozione di un nuovo compilatore backend per NVK, scritto nel linguaggio Rust e che risolve i problemi del vecchio compilatore che interferivano con il passaggio dei testi di Kronos, oltre all'eliminazione di alcune limitazioni fondamentali del architettura che non poteva essere corretta senza una rielaborazione completa del vecchio compilatore. Tra i piani per il futuro vengono menzionati l'aggiunta del supporto GPU basato sulla microarchitettura Maxwell e l'implementazione del supporto completo per l'API Vulkan 1.3 nel nuovo backend.

Fonte: opennet.ru

Aggiungi un commento