Introductie van NVK, een open Vulkan-driver voor NVIDIA-videokaarten

Collabora heeft NVK geïntroduceerd, een nieuwe open source driver voor Mesa die de Vulkan grafische API voor NVIDIA-videokaarten implementeert. De driver is helemaal opnieuw geschreven met behulp van officiële headerbestanden en open source kernelmodules gepubliceerd door NVIDIA. De stuurprogrammacode is open source onder de MIT-licentie. De driver ondersteunt momenteel alleen GPU's gebaseerd op de Turing- en Ampere-microarchitecturen, uitgebracht sinds september 2018.

Het project wordt ontwikkeld door een team dat bestaat uit Karol Herbst, een Nouveau-ontwikkelaar bij Red Hat, David Airlie, een DRM-onderhouder bij Red Hat, en Jason Ekstrand, een actieve Mesa-ontwikkelaar bij Collabora. Bij het ontwikkelen van een nieuw stuurprogramma worden op sommige plaatsen de basiscomponenten van het Nouveau OpenGL-stuurprogramma gebruikt, maar vanwege de verschillen in de namen in de NVIDIA-headerbestanden en de namen in Nouveau, verkregen op basis van reverse engineering, kan het direct lenen van de code is moeilijk en voor het grootste deel was het nodig om veel dingen te heroverwegen en ze met nul te implementeren.

Er wordt ook ontwikkeld met het oog op het creëren van een nieuwe referentie Vulkan-driver voor Mesa, waarvan de code kan worden geleend bij het maken van andere drivers. Om dit te doen, probeerde NVK bij het werken aan de driver rekening te houden met alle bestaande ervaring met het ontwikkelen van Vulkan-drivers, de codebasis in optimale vorm te behouden en de overdracht van code van andere Vulkan-drivers te minimaliseren, en deed wat het zou moeten zijn voor optimale prestaties. en kwalitatief hoogstaand werk, en niet blindelings kopiëren hoe het in andere stuurprogramma's werd gedaan.

De NVK-driver is pas een paar maanden in ontwikkeling, waardoor de functionaliteit beperkt is. Het stuurprogramma doorstaat met succes 98% van de tests bij het uitvoeren van 10% van de tests van de Vulkan CTS (Compatibility Test Suite). Over het algemeen wordt de gereedheid van de chauffeur geschat op 20-25% van de functionaliteit van de ANV- en RADV-chauffeurs. Wat hardwareondersteuning betreft, is de driver momenteel beperkt tot kaarten gebaseerd op Turing- en Ampere-microarchitecturen. Er wordt gewerkt aan patches om Kepler-, Maxwell- en Pascal-GPU's te ondersteunen, maar deze zijn nog niet klaar.

Op de lange termijn wordt verwacht dat het NVK-stuurprogramma voor grafische kaarten van NVIDIA een niveau van kwaliteit en functionaliteit zal bereiken dat vergelijkbaar is met het RADV-stuurprogramma voor AMD-kaarten. Zodra het NVK-stuurprogramma gereed is, kunnen de gemeenschappelijke bibliotheken die tijdens de ontwikkeling zijn gemaakt, worden gebruikt om het Nouveau OpenGL-stuurprogramma voor NVIDIA-videokaarten te verbeteren. Er wordt ook overwogen om het Zink-project te gebruiken om een ​​volwaardig OpenGL-stuurprogramma voor NVIDIA-videokaarten te implementeren, dat werkt via het uitzenden van oproepen naar de Vulkan API.

Bron: opennet.ru

Voeg een reactie