Le consortium Khronos, qui développe des normes graphiques, a reconnu la compatibilité complète du pilote open source NVK avec la spécification Vulkan 1.4 sur les systèmes dotés de GPU NVIDIA basés sur les microarchitectures Maxwell (GTX 700/800/900), Pascal (GTX 1000) et Volta (TITAN V). Le pilote a réussi tous les tests du Khronos Conformance Test Suite (CTS) et figure sur la liste des pilotes certifiés. L'obtention de ce certificat permet de revendiquer officiellement la compatibilité avec les normes graphiques et d'utiliser les marques déposées associées de Khronos.
À partir de Mesa 25.1, le pilote Vulkan NVK sera activé par défaut pour les GPU NVIDIA Maxwell, Pascal et Volta. Dans Mesa 25.2, la prise en charge d'OpenGL pour ces GPU sera par défaut déplacée du pilote Nouveau vers Zink en association avec le pilote Vulkan NVK. Zink fournit une implémentation d'OpenGL 4.6 au-dessus de Vulkan, permettant d'obtenir un OpenGL accéléré par matériel sur les appareils prenant en charge l'API Vulkan. La performance de Zink est proche de celle des implémentations natives d'OpenGL.
Auparavant, la compatibilité avec Vulkan 1.4 dans NVK n'était assurée que pour les nouveaux GPU NVIDIA basés sur les microarchitectures Turing (séries GeForce GTX 16xx, RTX 20xx et Quadro RTX), Ampere (séries GeForce RTX 30xx et RTX A2000/4000/5000/6000) et Ada (séries GeForce RTX 4xxx, RTX 4000 SFF, RTX 4xxx/5000/6000 Ada). Des efforts sont en cours pour ajouter dans NVK la prise en charge des GPU basés sur les microarchitectures Kepler et Fermi, mais leur prise en charge sera limitée à un maximum de Vulkan 1.2 en raison de limitations matérielles.
Le pilote NVK a été créé de toutes pièces par une équipe comprenant Karol Herbst (développeur Nouveau chez Red Hat), David Airlie (mainteneur du sous-système DRM chez Red Hat) et Jason/Faith Ekstrand (développeur actif de Mesa chez Collabora). Lors de la création du pilote, les développeurs ont utilisé des fichiers d'en-tête officiels et des modules de noyau ouverts publiés par NVIDIA. Dans le code de NVK, des composants de base du pilote OpenGL Nouveau ont parfois été utilisés, mais en raison des différences de dénomination entre les fichiers d'en-tête NVIDIA et les noms dans Nouveau obtenus par rétro-ingénierie, le réemploi direct du code a été difficile et la plupart des éléments ont dû être repensés et implémentés à partir de zéro.
Le développement a été réalisé en gardant à l'esprit la création d'un nouveau pilote Vulkan de référence pour Mesa, dont le code pourra être réutilisé pour créer d'autres pilotes. Pour cela, lors du travail sur le pilote NVK, nous avons tenté de prendre en compte toute l'expérience acquise dans le développement de pilotes Vulkan, de maintenir la base de code en bon état et de minimiser le transfert de code à partir d'autres pilotes Vulkan, en faisant ce qu'il faut pour un fonctionnement optimal et de qualité, plutôt que de copier aveuglément ce qui a été fait dans d'autres pilotes.
Source : opennet.ru
