У NVK, адкрытым драйверы для відэакарт NVIDIA, забяспечана падтрымка Vulkan 1.0

Кансорцыум 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

Дадаць каментар