Кансорцыум Khronos, які займаецца распрацоўкай графічных стандартаў, прызнаў поўную сумяшчальнасць адчыненага драйвера NVK для відэакарт NVIDIA са спецыфікацыяй Vulkan 1.0. Драйвер паспяхова прайшоў усе тэсты з набору CTS (Kronos Conformance Test Suite) і ўключаны ў спіс сертыфікаваных драйвераў. Сертыфікацыя пройдзена для GPU NVIDIA на базе мікраархітэктуры Turing (TITAN RTX, GeForce RTX 2060/2070/2080, GeForce GTX 1660, Quadro RTX 3000-8000, Quadro T1000/T2000). Праверка была выканана ў асяроддзі з ядром Linux 6.5, X.Org X Server 1.20.14, XWayland 22.1.9 і GNOME Shell 44.4. Атрыманне сертыфіката дае магчымасць афіцыйна заяўляць аб сумяшчальнасці з графічнымі стандартамі і выкарыстоўваць звязаныя з імі гандлёвыя маркі Khronos.
Драйвер NVK створаны з нуля камандай, у якую ўваходзяць Карал Хербст (Karol Herbst, распрацоўшчык Nouveau з Red Hat), Дэвід Эйрлі (David Airlie, мэйнтэйнер падсістэмы DRM з Red Hat) і Джэйсан Экстранд (Jason Ekstrand), актыўны распрацоўшчык Mesa з Cola. Пры стварэнні драйвера распрацоўшчыкі выкарыстоўвалі афіцыйныя загалоўкавыя файлы і адкрытыя модулі ядра, апублікаваныя кампаніяй NVIDIA. У кодзе NVK месцамі выкарыстоўваліся базавыя кампаненты OpenGL-драйвера Nouveau, але з-за адрозненняў найменняў у загалоўкавых файлах NVIDIA і найменняў у Nouveau, атрыманых на аснове зваротнага інжынірынгу, прамое запазычанне кода абцяжарана і па большай частцы прыйшлося пераасэнсоўваць шматлікія рэчы .
Распрацоўка вялася з аглядкай на стварэнне новага эталоннага Vulkan-драйвера для Mesa, код якога можна будзе запазычаць пры стварэнні іншых драйвераў. Для гэтага пры працы над драйверам NVK паспрабавалі ўлічыць увесь наяўны досвед распрацоўкі Vulkan-драйвераў, падтрымліваць кодавую базу ў аптымальнай форме і мінімізаваць перанос кода з іншых Vulkan-драйвераў, робячы як павінна быць для аптымальнай і якаснай працы, а не слепа капіюючы тое, як зроблена ў іншых драйверах. Драйвер ужо ўваходзіць у склад Mesa, а неабходныя для працы змены ў API DRM-драйвера Nouveau уключаны ў склад ядра Linux 6.6.
З змен у анонсе таксама адзначаецца прыняцце ў склад Mesa новага бэкэнд кампілятара для NVK, напісанага на мове Rust і вырашальнага праблемы ў старым кампілятары, якія заміналі праходжанню тэкстаў Kronos, а таксама ўхіляючыя некаторыя фундаментальныя абмежаванні архітэктуры, якія немагчыма было выправіць без поўнай пераробкі старога кампілятара. З планаў на будучыню згадана даданне ў новых бэкенд падтрымкі GPU на базе мікраархітэктуры Maxwell і рэалізацыя поўнай падтрымкі API Vulkan 1.3.
Крыніца: opennet.ru