NVK, een open driver voor NVIDIA grafische kaarten, ondersteunt Vulkan 1.0

Het Khronos-consortium, dat grafische standaarden ontwikkelt, heeft de volledige compatibiliteit van de open NVK-driver voor NVIDIA-videokaarten met de Vulkan 1.0-specificatie erkend. De chauffeur heeft alle tests van de CTS (Kronos Conformance Test Suite) met succes doorstaan ​​en is opgenomen in de lijst met gecertificeerde chauffeurs. De certificering is voltooid voor NVIDIA GPU's op basis van de Turing-microarchitectuur (TITAN RTX, GeForce RTX 2060/2070/2080, GeForce GTX 1660, Quadro RTX 3000-8000, Quadro T1000/T2000). De test werd uitgevoerd in een omgeving met de Linux kernel 6.5, X.Org X Server 1.20.14, XWayland 22.1.9 en GNOME Shell 44.4. Door het certificaat te verkrijgen, kunt u officieel compatibiliteit met grafische standaarden verklaren en de bijbehorende Khronos-handelsmerken gebruiken.

De NVK-driver is helemaal opnieuw gebouwd door een team met onder meer Karol Herbst (Nouveau-ontwikkelaar bij Red Hat), David Airlie (DRM-onderhouder bij Red Hat) en Jason Ekstrand (actieve Mesa-ontwikkelaar bij Collabora). Bij het maken van het stuurprogramma gebruikten de ontwikkelaars officiële headerbestanden en open kernelmodules die door NVIDIA waren gepubliceerd. De NVK-code maakte op sommige plaatsen gebruik van enkele basiscomponenten van het Nouveau OpenGL-stuurprogramma, maar vanwege de verschillen in de namen in de NVIDIA-headerbestanden en de reverse-engineered namen in Nouveau is het direct lenen van de code moeilijk en voor het grootste deel veel dingen moesten opnieuw worden bedacht en vanaf nul worden geïmplementeerd.

De ontwikkeling werd uitgevoerd met het oog op het creëren van een nieuw Vulkan-referentiestuurprogramma voor Mesa, waarvan de code kon worden geleend bij het maken van andere stuurprogramma's. Om dit te doen, probeerden ze bij het werken aan het NVK-stuurprogramma rekening te houden met alle bestaande ervaring met het ontwikkelen van Vulkan-stuurprogramma's, de codebasis in optimale vorm te behouden en de overdracht van code van andere Vulkan-stuurprogramma's te minimaliseren, doend zoals het zou moeten zijn voor optimaal en kwalitatief hoogstaand werk, en niet blindelings kopiëren hoe het in andere stuurprogramma's wordt gedaan. Het stuurprogramma is al opgenomen in Mesa, en de noodzakelijke wijzigingen aan de Nouveau DRM-stuurprogramma-API zijn opgenomen in de Linux 6.6-kernel.

Onder de veranderingen in de aankondiging merkt Mesa ook de adoptie op van een nieuwe backend-compiler voor NVK, geschreven in de Rust-taal en het oplossen van problemen in de oude compiler die de doorgang van Kronos-teksten verstoorden, evenals het elimineren van enkele fundamentele beperkingen van de architectuur die niet gecorrigeerd kon worden zonder een volledige herwerking van de oude compiler. Onder de plannen voor de toekomst worden de toevoeging van GPU-ondersteuning op basis van de Maxwell-microarchitectuur en de implementatie van volledige ondersteuning voor de Vulkan 1.3 API genoemd in de nieuwe backend.

Bron: opennet.ru

Voeg een reactie