NVK, en öppen drivrutin för NVIDIA-grafikkort, stöder Vulkan 1.0

Khronos-konsortiet, som utvecklar grafikstandarder, har erkänt den fulla kompatibiliteten för den öppna NVK-drivrutinen för NVIDIA-grafikkort med Vulkan 1.0-specifikationen. Föraren har klarat alla tester från CTS (Kronos Conformance Test Suite) och ingår i listan över certifierade förare. Certifieringen har slutfö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). Testet utfördes i en miljö med Linux-kärnan 6.5, X.Org X Server 1.20.14, XWayland 22.1.9 och GNOME Shell 44.4. Genom att erhålla certifikatet kan du officiellt deklarera kompatibilitet med grafikstandarder och använda tillhörande Khronos-varumärken.

NVK-föraren byggdes från grunden av ett team inklusive Karol Herbst (Nouveau-utvecklare på Red Hat), David Airlie (DRM-underhållare på Red Hat) och Jason Ekstrand (aktiv Mesa-utvecklare på Collabora). När drivrutinen skapades använde utvecklarna officiella header-filer och öppna kärnmoduler publicerade av NVIDIA. NVK-koden använde några grundläggande komponenter i Nouveau OpenGL-drivrutinen på vissa ställen, men på grund av skillnaderna i namnen i NVIDIA-headerfilerna och de omvänd konstruerade namnen i Nouveau är direktlån av koden svårt och för det mesta många saker måste tänkas om och implementeras från grunden.

Utvecklingen genomfördes med sikte på att skapa en ny referens Vulkan-drivrutin för Mesa, vars kod kunde lånas när man skapade andra drivrutiner. För att göra detta försökte de, när de arbetade med NVK-drivrutinen, ta hänsyn till all befintlig erfarenhet av att utveckla Vulkan-drivrutiner, bibehålla kodbasen i optimal form och minimera överföringen av kod från andra Vulkan-drivrutiner, och göra som det ska för optimalt och högkvalitativt arbete, och inte blint kopiera hur man gör i andra drivrutiner. Drivrutinen är redan inkluderad i Mesa, och de nödvändiga ändringarna av Nouveau DRM-drivrutinens API ingår i Linux 6.6-kärnan.

Bland ändringarna i tillkännagivandet noterar Mesa också antagandet av en ny backend-kompilator för NVK, skriven på Rust-språket och lösa problem i den gamla kompilatorn som störde passagen av Kronos-texter, samt eliminerar vissa grundläggande begränsningar i arkitektur som inte kunde korrigeras 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 fullt stöd för Vulkan 1.3 API i den nya backend.

Källa: opennet.ru

Lägg en kommentar