NVK, otvorený ovládač pre grafické karty NVIDIA, podporuje Vulkan 1.0

Konzorcium Khronos, ktoré vyvíja grafické štandardy, uznalo plnú kompatibilitu otvoreného ovládača NVK pre grafické karty NVIDIA so špecifikáciou Vulkan 1.0. Ovládač úspešne prešiel všetkými testami z CTS (Kronos Conformance Test Suite) a je zaradený do zoznamu certifikovaných ovládačov. Certifikácia bola dokončená pre GPU NVIDIA založené na mikroarchitektúre Turing (TITAN RTX, GeForce RTX 2060/2070/2080, GeForce GTX 1660, Quadro RTX 3000-8000, Quadro T1000/T2000). Test bol vykonaný v prostredí s jadrom Linuxu 6.5, X.Org X Server 1.20.14, XWayland 22.1.9 a GNOME Shell 44.4. Získanie certifikátu vám umožňuje oficiálne deklarovať kompatibilitu s grafickými štandardmi a používať súvisiace ochranné známky Khronos.

Ovládač NVK vytvoril od nuly tím vrátane Karola Herbsta (vývojár Nouveau v Red Hat), David Airlie (správca DRM v Red Hat) a Jason Ekstrand (aktívny vývojár Mesa v Collabora). Pri vytváraní ovládača vývojári použili oficiálne hlavičkové súbory a otvorené moduly jadra vydané spoločnosťou NVIDIA. Kód NVK na niektorých miestach používal niektoré základné komponenty ovládača Nouveau OpenGL, ale kvôli rozdielom v názvoch v hlavičkových súboroch NVIDIA a reverzným inžinierstvom názvov v Nouveau je priame vypožičanie kódu náročné a väčšinou veľa vecí bolo potrebné premyslieť a implementovať od začiatku.

Vývoj bol vedený s ohľadom na vytvorenie nového referenčného ovládača Vulkan pre Mesa, ktorého kód bolo možné zapožičať pri vytváraní ďalších ovládačov. Aby to dosiahli, pri práci na ovládači NVK sa pokúsili vziať do úvahy všetky existujúce skúsenosti s vývojom ovládačov Vulkan, udržiavať kódovú základňu v optimálnej forme a minimalizovať prenos kódu z iných ovládačov Vulkan tak, ako by mal byť pre optimálna a kvalitná práca a nie slepé kopírovanie toho, ako sa to robí v iných ovládačoch. Ovládač je už súčasťou Mesa a potrebné zmeny v rozhraní API ovládača Nouveau DRM sú súčasťou jadra Linuxu 6.6.

Medzi zmenami v oznámení Mesa tiež berie na vedomie prijatie nového backendového kompilátora pre NVK, napísaného v jazyku Rust a riešenie problémov v starom kompilátore, ktoré zasahovali do prechodu textov Kronos, ako aj odstránenie niektorých základných obmedzení architektúru, ktorú nebolo možné opraviť bez úplného prepracovania starého kompilátora. Z plánov do budúcnosti sa v novom backende spomína pridanie podpory GPU na báze mikroarchitektúry Maxwell a implementácia plnej podpory pre Vulkan 1.3 API.

Zdroj: opennet.ru

Pridať komentár