Introducerade NVK, en öppen Vulkan-drivrutin för NVIDIA-grafikkort

Collabora har introducerat NVK, en ny öppen källkodsdrivrutin för Mesa som implementerar Vulkan grafik API för NVIDIA grafikkort. Drivrutinen är skriven från grunden med hjälp av officiella rubrikfiler och kärnmoduler med öppen källkod publicerad av NVIDIA. Förarkoden är öppen källkod under MIT-licensen. Drivrutinen stöder för närvarande endast GPU:er baserade på Turing- och Ampere-mikroarkitekturerna, släppta sedan september 2018.

Projektet utvecklas av ett team som inkluderar Karol Herbst, en Nouveau-utvecklare på Red Hat, David Airlie, en DRM-underhållare på Red Hat, och Jason Ekstrand, en aktiv Mesa-utvecklare på Collabora. När man utvecklar en ny drivrutin används grundkomponenterna i Nouveau OpenGL-drivrutinen på vissa ställen, men på grund av skillnaderna i namnen i NVIDIA-huvudfilerna och namnen i Nouveau som erhållits på basis av omvänd ingenjörskonst, direkt lån av kod är svårt och för det mesta var det nödvändigt att tänka om många saker och implementera dem med noll.

Utveckling genomförs också med sikte på att skapa en ny referens Vulkan-drivrutin för Mesa, vars kod kan lånas när man skapar andra drivrutiner. För att göra detta, när man arbetade med drivrutinen, försökte NVK 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, göra som det ska för optimal och högkvalitativt arbete, och inte blint kopiera hur det gjordes i andra drivrutiner.

NVK-drivrutinen har bara varit under utveckling i några månader, så dess funktionalitet är begränsad. Föraren klarar 98 % av testerna när 10 % av testerna körs från Vulkan CTS (Compatibility Test Suite). Generellt sett uppskattas förarens beredskap till 20-25 % av funktionaliteten hos ANV- och RADV-drivrutinerna. När det gäller hårdvarustöd är drivrutinen för närvarande begränsad till kort baserade på Turing- och Ampere-mikroarkitekturer. Det arbetas på patchar för att stödja Kepler, Maxwell och Pascal GPU:er, men de är inte klara än.

På lång sikt förväntas NVK-drivrutinen för NVIDIA-grafikkort uppnå nivåer av kvalitet och funktionalitet som liknar RADV-drivrutinen för AMD-kort. När NVK-drivrutinen är klar kan de gemensamma biblioteken som skapats under dess utveckling användas för att förbättra Nouveau OpenGL-drivrutinen för NVIDIA-grafikkort. Möjligheten att använda Zink-projektet för att implementera en fullfjädrad OpenGL-drivrutin för NVIDIA-videokort, som arbetar genom sändningsanrop till Vulkan API, övervägs också.

Källa: opennet.ru

Lägg en kommentar