Khronos-konsortiet, som arbetar med att utveckla grafiska standarder, har erkÀnt den fullstÀndiga kompatibiliteten hos den öppna NVK-drivaren för NVIDIA-grafikkort med Vulkan-specifikationen 1.0. Drivaren har framgÄngsrikt genomgÄtt alla tester frÄn CTS (Kronos Conformance Test Suite) och har inkluderats i listan över certifierade drivrutiner. Certifieringen har genomförts för NVIDIA GPU:er baserade pÄ Turing-mikroarkitekturen (TITAN RTX, GeForce RTX 2060/2070/2080, GeForce GTX 1660, Quadro RTX 3000-8000, Quadro T1000/T2000). Kontrollen har utförts i en miljö med Linux-kÀrna 6.5, X.Org X Server 1.20.14, XWayland 22.1.9 och GNOME Shell 44.4. Att erhÄlla certifikatet ger möjlighet att officiellt deklarera kompatibilitet med grafiska standarder och anvÀnda relaterade varumÀrken frÄn Khronos.
NVK-drivaren har utvecklats frÄn grunden av ett team som inkluderar Karol Herbst (Karol Herbst, Nouveau-utvecklare frÄn Red Hat), David Airlie (David Airlie, maintainer av DRM-subsystemet frÄn Red Hat) och Jason Ekstrand (Jason Ekstrand, aktiv utvecklare av Mesa frÄn Collabora). I utvecklingen av drivaren har utvecklarna anvÀnt officiella header-filer och öppna kÀrnmoduler publicerade av NVIDIA. I NVK-koden anvÀndes ibland grundkomponenter frÄn OpenGL-drivaren Nouveau, men pÄ grund av skillnader i namnen i NVIDIA:s header-filer och namnen i Nouveau, som erhÄllits genom omvÀnd ingenjörskonst, var direkt kodövertagande svÄrt, och det har mestadels krÀvts att tÀnka om mÄnga aspekter och implementera dem frÄn grunden.
Utvecklingen har skett med mÄlet att skapa en ny referens Vulkan-drivrutin för Mesa, vars kod kan lÄnas vid skapandet av andra drivare. För detta har man i arbetet med NVK-drivaren försökt ta hÀnsyn till all tidigare erfarenhet av utveckling av Vulkan-drivrutiner, upprÀtthÄlla kodbasen i optimalt skick och minimera kodöverföring frÄn andra Vulkan-drivrutiner, genom att göra som det bör göras för optimal och kvalitativ funktion, i stÀllet för att blint kopiera hur det har gjorts i andra drivare. Drivaren ingÄr redan i Mesa och de nödvÀndiga Àndringarna i Nouveau DRM-drivrutinens API har inkluderats i Linux-kÀrnan 6.6.
I av de Àndringar som nÀmns i annoncen framhÀvs antagandet av en ny backend-kompilator för NVK, skriven i Rust, som löser problem som den gamla kompilatorn hade som hindrade behandling av Kronos-text och tar bort vissa grundlÀggande begrÀnsningar i arkitekturen som inte kunde ÄtgÀrdas utan en fullstÀndig omarbetning av den gamla kompilatorn. Bland framtidsplanerna nÀmns tillÀgget av GPU-stöd baserat pÄ Maxwell-mikroarkitekturen och implementeringen av fullstÀndig stöd för Vulkan 1.3-API.
KĂ€lla: opennet.ru
