Il consorzio Khronos, che si occupa dello sviluppo di standard grafici, ha riconosciuto la piena compatibilità del driver aperto NVK per schede grafiche NVIDIA con la specifica Vulkan 1.0. Il driver ha superato con successo tutti i test del CTS (Kronos Conformance Test Suite) ed è stato incluso nell'elenco dei driver certificati. La certificazione è stata ottenuta per GPU NVIDIA basate sull'architettura Turing (TITAN RTX, GeForce RTX 2060/2070/2080, GeForce GTX 1660, Quadro RTX 3000-8000, Quadro T1000/T2000). Il collaudo è stato effettuato 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 consente di dichiarare ufficialmente la compatibilità con gli standard grafici e di utilizzare i marchi commerciali associati di Khronos.
Il driver NVK è stato creato da zero da un team composto da Karol Herbst (Karol Herbst, sviluppatore Nouveau di Red Hat), David Airlie (David Airlie, maintainer del sottosistema DRM di Red Hat) e Jason Ekstrand (Jason Ekstrand, sviluppatore attivo di Mesa di Collabora). Durante la creazione del driver, gli sviluppatori hanno utilizzato i file di intestazione ufficiali e i moduli kernel aperti pubblicati da NVIDIA. Nel codice NVK sono stati utilizzati, in alcune aree, componenti base del driver OpenGL Nouveau, ma a causa delle differenze nei nomi tra i file di intestazione NVIDIA e quelli di Nouveau, ottenuti tramite reverse engineering, il prestito diretto di codice è risultato difficile, costringendo nella maggior parte dei casi a ridefinire molte cose e a implementarle da zero.
Lo sviluppo è stato condotto con l'intento di creare un nuovo driver Vulkan di riferimento per Mesa, il cui codice potrà essere riutilizzato nella creazione di altri driver. A tal fine, durante il lavoro sul driver NVK, si è cercato di tenere conto di tutta l'esperienza accumulata nello sviluppo di driver Vulkan, mantenere la base di codice in forma ottimale e minimizzare il trasporto di codice da altri driver Vulkan, facendo come dovrebbe essere per un funzionamento ottimale e di qualità, piuttosto che copiare ciecamente ciò che è stato fatto in altri driver. Il driver fa già parte di Mesa, e le modifiche necessarie per il corretto funzionamento dell'API del driver DRM di Nouveau sono state incluse nel kernel Linux 6.6.
Nei cambiamenti nell'annuncio si segnala anche l'ingresso di un nuovo compilatore backend per NVK, scritto in Rust, che risolve i problemi del vecchio compilatore che ostacolavano il passaggio dei testi di Kronos, e che elimina alcune limitazioni fondamentali dell'architettura che non potevano essere corrette senza una riscrittura completa del vecchio compilatore. Tra i piani futuri è stata menzionata l'aggiunta del supporto GPU basato sull'architettura Maxwell e l'implementazione del supporto completo per l'API Vulkan 1.3.
Fonte: opennet.ru
