Il consorzio Khronos, responsabile dello sviluppo degli standard grafici, ha riconosciuto la piena compatibilità del driver open-source NVK con la specifica Vulkan 1.4 su sistemi con GPU NVIDIA basate sulle microarchitetture Maxwell (GTX 700/800/900), Pascal (GTX 1000) e Volta (TITAN V). Il driver ha superato con successo tutti i test del pacchetto CTS (Khronos Conformance Test Suite) ed è stato incluso nell'elenco dei driver certificati. Ottenere la certificazione consente di dichiarare ufficialmente la compatibilità con gli standard grafici e di utilizzare i marchi registrati associati a Khronos.
A partire da Mesa 25.1, il driver Vulkan NVK sarà utilizzato di default per le GPU NVIDIA Maxwell, Pascal e Volta. In Mesa 25.2, il supporto OpenGL per le GPU specificate verrà switched di default dal driver Nouveau a Zink in combinazione con il driver Vulkan NVK. Zink fornisce un'implementazione OpenGL 4.6 sopra Vulkan, consentendo di ottenere OpenGL accelerato dall'hardware su dispositivi che supportano l'API Vulkan. Le prestazioni di Zink sono vicine a quelle delle implementazioni native di OpenGL.
In precedenza, la compatibilità con Vulkan 1.4 in NVK era garantita solo per le nuove 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). Sono in fase di lavoro per aggiungere a NVK il supporto per GPU basate sulle microarchitetture Kepler e Fermi, ma il loro supporto sarà limitato al massimo a Vulkan 1.2 a causa di vincoli hardware.
Il driver NVK è stato creato da zero da un team che comprende Karol Herbst (sviluppatore di Nouveau di Red Hat), David Airlie (maintainer del sottosistema DRM di Red Hat) e Jason/Faith Ekstrand (sviluppatore attivo di Mesa di Collabora). Durante la creazione del driver, gli sviluppatori hanno utilizzato file di intestazione ufficiali e moduli kernel open-source pubblicati da NVIDIA. Nel codice di NVK sono stati utilizzati a volte componenti di base del driver OpenGL Nouveau, ma a causa delle differenze nei nomi nei file di intestazione di NVIDIA e nei nomi in Nouveau ottenuti tramite reverse engineering, il prelievo diretto di codice è stato difficile e molto è dovuto essere ripensato e implementato da zero.
Lo sviluppo è stato condotto tenendo presente la creazione di un nuovo driver Vulkan di riferimento per Mesa, il cui codice potrà essere utilizzato per la creazione di altri driver. A tal fine, durante il lavoro sul driver NVK, si è cercato di tenere in considerazione tutta l'esperienza esistente nello sviluppo di driver Vulkan, mantenere la base di codice in forma ottimale e minimizzare il trasferimento di codice da altri driver Vulkan, lavorando per una prestazione e una qualità ottimali, anziché copiare ciecamente come è stato fatto in altri driver.
Fonte: opennet.ru
