Le consortium Khronos, en charge du développement de standards graphiques, a reconnu la compatibilité complÚte du driver open source NVK pour les cartes graphiques NVIDIA avec la spécification Vulkan 1.0. Le driver a passé tous les tests du jeu d'outils CTS (Kronos Conformance Test Suite) et a été inclus dans la liste des drivers certifiés. La certification a été obtenue pour les GPU NVIDIA basés sur l'architecture Turing (TITAN RTX, GeForce RTX 2060/2070/2080, GeForce GTX 1660, Quadro RTX 3000-8000, Quadro T1000/T2000). La vérification a été effectuée dans un environnement avec le noyau Linux 6.5, X.Org X Server 1.20.14, XWayland 22.1.9 et GNOME Shell 44.4. L'obtention du certificat permet de revendiquer officiellement la compatibilité avec les standards graphiques et d'utiliser les marques commerciales associées de Khronos.
Le driver NVK a Ă©tĂ© créé de A Ă Z par une Ă©quipe comprenant Karol Herbst (dĂ©veloppeur Nouveau chez Red Hat), David Airlie (mainteneur de la sous-systĂšme DRM chez Red Hat) et Jason Ekstrand (dĂ©veloppeur actif de Mesa chez Collabora). Lors de la crĂ©ation du driver, les dĂ©veloppeurs ont utilisĂ© les fichiers d'en-tĂȘte officiels et les modules de noyau open source publiĂ©s par NVIDIA. Dans le code NVK, certains composants de base du driver OpenGL Nouveau ont Ă©tĂ© utilisĂ©s, mais en raison des diffĂ©rences de nomenclature entre les fichiers d'en-tĂȘte NVIDIA et les noms de Nouveau obtenus par rĂ©tro-ingĂ©nierie, le rĂ©emploi direct de code a Ă©tĂ© difficile, et la plupart du temps, il a fallu repenser de nombreuses choses et les mettre en Ćuvre depuis le dĂ©but.
Le dĂ©veloppement a Ă©tĂ© orientĂ© vers la crĂ©ation d'un nouveau driver Vulkan de rĂ©fĂ©rence pour Mesa, dont le code pourra ĂȘtre rĂ©utilisĂ© pour la crĂ©ation d'autres drivers. Pour cela, lors du travail sur le driver NVK, l'Ă©quipe a tentĂ© de prendre en compte toute l'expĂ©rience accumulĂ©e dans le dĂ©veloppement de drivers Vulkan, de maintenir la base de code en forme optimale, et de minimiser le transfert de code provenant d'autres drivers Vulkan, en conformant le tout Ă ce qui est nĂ©cessaire pour un fonctionnement optimal et de qualitĂ©, plutĂŽt que de copier aveuglĂ©ment ce qui a Ă©tĂ© fait dans d'autres drivers. Le driver fait dĂ©jĂ partie de Mesa, et les modifications nĂ©cessaires au fonctionnement de l'API du driver DRM Nouveau sont incluses dans le noyau Linux 6.6.
Les changements dans l'annonce mentionnent Ă©galement l'intĂ©gration d'un nouveau compilateur backend pour NVK, Ă©crit en Rust, qui rĂ©sout les problĂšmes de l'ancien compilateur qui entravaient la validation des textes Kronos, tout en Ă©liminant certaines limitations fondamentales de l'architecture qui n'auraient pas pu ĂȘtre corrigĂ©es sans une refonte complĂšte de l'ancien compilateur. Parmi les projets futurs, il est prĂ©vu d'ajouter dans le nouveau backend un support pour les GPU basĂ©s sur l'architecture Maxwell et de mettre en Ćuvre le support complet de l'API Vulkan 1.3.
Source : opennet.ru
