Consorțiul Khronos, care se ocupă cu dezvoltarea standardelor grafice, a recunoscut compatibilitatea completă a driverului deschis NVK cu specificația Vulkan 1.4 pe sistemele cu GPU NVIDIA bazate pe microarhitecturile Maxwell (GTX 700/800/900), Pascal (GTX 1000) și Volta (TITAN V). Driverul a trecut cu succes toate testele din setul CTS (Khronos Conformance Test Suite) și a fost inclus pe lista driverelor certificate. Obținerea certificării permite anunțarea oficială a compatibilității cu standardele grafice și utilizarea mărcilor comerciale asociate Khronos.
Începând cu Mesa 25.1, driverul Vulkan NVK va fi activat ca implicit pentru GPU-urile NVIDIA Maxwell, Pascal și Volta. În Mesa 25.2, suportul OpenGL pentru GPU-urile indicate va fi schimbat implicit de la driverul Nouveau la Zink, în combinație cu driverul Vulkan NVK. Zink oferă o implementare OpenGL 4.6 deasupra Vulkan, permițând obținerea OpenGL accelerat hardware pe dispozitive care suportă API Vulkan. Performanța Zink este comparabilă cu performanța implementărilor native OpenGL.
Anterior, compatibilitatea cu Vulkan 1.4 în NVK a fost oferită doar pentru noile GPU-uri NVIDIA bazate pe microarhitecturile Turing (seria GeForce GTX 16xx, RTX 20xx și Quadro RTX), Ampere (seria GeForce RTX 30xx și RTX A2000/4000/5000/6000) și Ada (seria GeForce RTX 4xxx, RTX 4000 SFF, RTX 4xxx/5000/6000 Ada). Se lucrează pentru a adăuga în NVK suport pentru GPU-uri bazate pe microarhitecturile Kepler și Fermi, dar suportul acestora va fi limitat la maximum Vulkan 1.2 din cauza limitărilor hardware.
Driverul NVK a fost creat de la zero de o echipă care include Karol Herbst (dezvoltator Nouveau de la Red Hat), David Airlie (măreținător al subsistemului DRM de la Red Hat) și Jason/Faith Ekstrand (dezvoltator activ Mesa de la Collabora). În crearea driverului, dezvoltatorii au utilizat fișierele de antet oficiale și modulele deschise ale nucleului publicate de NVIDIA. În codul NVK, au fost folosite în unele locuri componente de bază ale driverului OpenGL Nouveau, dar din cauza diferențelor de denumire în fișierele de antet NVIDIA și denumirile în Nouveau obținute prin inginerie inversă, împrumutul direct al codului a fost îngreunat și în cea mai mare parte a fost necesară repoziționarea multor lucruri și implementarea lor de la zero.
Dezvoltarea a fost realizată având în vedere crearea unui nou driver Vulkan de referință pentru Mesa, al cărui cod va putea fi preluat la crearea altor drivere. Pentru aceasta, în timpul lucrării la driverul NVK, s-a încercat să se țină cont de toată experiența existentă în dezvoltarea driverelor Vulkan, să se mențină baza de cod într-o formă optimă și să se minimizeze transferul de cod din alte drivere Vulkan, făcându-se ceea ce trebuie pentru o funcționare optimă și de calitate, în loc să se copieze orbeste modul în care este realizat în alte drivere.
Sursa: opennet.ro
