NVK a Zink výrazně zlepšily situaci s otevřenými ovladači pro GPU NVIDIA

Společnost Collabora oznámila, že přinesla otevřený ovladač NVK pro grafické karty NVIDIA připravený pro každodenní použití širokým spektrem uživatelů a certifikovala tento ovladač v konsorciu Khronos, které vyvíjí grafické standardy. Ovladač je uznáván jako plně kompatibilní se specifikací Vulkan 1.3, úspěšně prošel všemi testy z CTS (Khronos Conformance Test Suite) a je zařazen do seznamu certifikovaných ovladačů.

Byla dokončena certifikace pro GPU NVIDIA založené na mikroarchitekturách Turing (řady GeForce GTX 16xx, RTX 20xx a Quadro RTX), Ampere (řady GeForce RTX 30xx a RTX A2000/4000/5000/6000) a RTX4xFFxForce , RTX 4000xxx/4/5000 Ada). Test byl proveden v prostředí s linuxovým jádrem 6000 a 6.5rc6.8. Získání certifikátu vám umožňuje oficiálně deklarovat kompatibilitu s grafickými standardy a používat související ochranné známky Khronos. Změny již byly přijaty do kódové základny Mesa a budou součástí vydání Mesa 1.

Kromě vylepšení v NVK došlo k významnému pokroku v poskytování podpory OpenGL pro grafické karty NVIDIA. Mesa přijala změnu, která umožňuje použití ovladače Zink k poskytování podpory pro OpenGL 4.6 na systémech s novou řadou grafických karet NVIDIA (počínaje GeForce RTX 20xx), u kterých mohou nastat problémy se základním ovladačem Nouveau OpenGL (NVC0). Chcete-li povolit Zink místo NVC0 v Mesa 24.1, stačí nastavit proměnnou prostředí „NOUVEAU_USE_ZINK=1“.

Změny provedené v Mesa také poskytují možnost používat Zink k podpoře OpenGL v jiných ovladačích jako záložní pro GPU nepodporované nativními ovladači OpenGL společnosti Mesa. Podobný přístup se již například používá k poskytování podpory OpenGL v ovladači freedreno pro GPU Qualcomm Adreno 700 a ovladači powervr pro GPU Imagination PowerVR založeném na mikroarchitektuře Rogue.

Zink poskytuje implementaci OpenGL nad Vulkanem, která vám umožňuje získat hardwarově akcelerované OpenGL na zařízeních, která podporují pouze Vulkan API. V příštím vydání Mesa bude ovladač Zink při sestavování ve výchozím nastavení povolen. Výkon Zink se blíží výkonu nativních implementací OpenGL, což umožňuje, místo plýtvání zdroji na údržbu jednotlivých ovladačů OpenGL, zaměřit se na vysoce kvalitní podporu pro Vulkan API a implementovat podporu OpenGL nad Vulkan.

Odstranění starého ovladače Nouveau OpenGL se zatím neplánuje, ale ve své současné podobě kombinace Zink + NVK prokazuje vyšší výkon v mnoha testech. V současné fázi vývoje, kdy provozujete mnoho her, umožňuje kombinace Zink + NVK dosáhnout výkonu 60 FPS a vyšší na nových modelech GPU, ale stále existují některé nevyřešené problémy a neoptimalizované oblasti, které se časem vyřeší.

Zaznamenána je také práce na stabilizaci práce vrstvy DXVK nad ovladačem NVK, který poskytuje implementaci Direct3D 9, 10 a 11, pracující přes překlad volání do Vulkan API. Ne všechny hry D3D11 zatím zaručeně fungují s neupravenou kombinací NVK+DXVK od Mesa, ale základní schopnosti jsou dostupné a zjištěné závady se postupně odstraňují. Podobně je vyvíjeno spojení NVK s VKD3D-Proton, aby poskytovalo podporu pro D3D12, ale jeho stav je stále pozadu za NVK+DXVK a je třeba implementovat některé chybějící schopnosti.

Ovladač NVK vytvořil od nuly tým zahrnující Karol Herbst (vývojář Nouveau v Red Hat), David Airlie (správce DRM v Red Hat) a Jason/Faith Ekstrand (aktivní vývojář Mesa) z Collabora. Při vytváření ovladače vývojáři použili oficiální hlavičkové soubory a otevřené moduly jádra vydané společností NVIDIA. Kód NVK na některých místech používal některé základní komponenty ovladače Nouveau OpenGL, ale kvůli rozdílům v názvech v hlavičkových souborech NVIDIA a reverzně navrženým názvům v Nouveau je přímé vypůjčení kódu obtížné a z větší části mnoho věcí muselo být přehodnoceno a implementováno od nuly.

Vývoj probíhal s ohledem na vytvoření nového referenčního ovladače Vulkan pro Mesa, jehož kód bylo možné si vypůjčit při vytváření dalších ovladačů. Aby toho dosáhli, při práci na ovladači NVK se snažili vzít v úvahu všechny stávající zkušenosti s vývojem ovladačů Vulkan, udržovat kódovou základnu v optimální formě a minimalizovat přenos kódu z jiných ovladačů Vulkan, jak by mělo být pro optimální a kvalitní práce a ne slepé kopírování toho, jak se to dělá v jiných ovladačích. Ovladač je již součástí Mesa a nezbytné změny v rozhraní API ovladače Nouveau DRM jsou součástí jádra Linuxu 6.6.

Zdroj: opennet.ru

Přidat komentář