NVK na Zink zimeboresha hali kwa kiasi kikubwa na viendeshaji wazi vya NVIDIA GPU

Компания Π‘ollabora объявила ΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° NVK для Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ NVIDIA Π΄ΠΎ готовности ΠΊ повсСднСвному использованию ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ ΠΊΡ€ΡƒΠ³ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ сСртификации Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Π² консорциумС Khronos, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰Π΅ΠΌΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ графичСских стандартов. Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ ΠΏΡ€ΠΈΠ·Π½Π°Π½ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совмСстимым со спСцификациСй Vulkan 1.3, ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΡˆΡ‘Π» всС тСсты ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° CTS (Khronos Conformance Test Suite) ΠΈ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Π² список сСртифицированных Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ².

БСртификация ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π° для GPU NVIDIA Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ Turing (сСрии GeForce GTX 16xx, RTX 20xx ΠΈ Quadro RTX), Ampere (сСрии GeForce RTX 30xx ΠΈ RTX A2000/4000/5000/6000) ΠΈ Ada (сСрии GeForce RTX 4xxx, RTX 4000 SFF, RTX 4xxx/5000/6000 Ada). ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π² ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ с ядром Linux 6.5 ΠΈ 6.8rc1. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ сСртификата Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π·Π°ΡΠ²Π»ΡΡ‚ΡŒ ΠΎ совмСстимости с графичСскими стандартами ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ связанныС с Π½ΠΈΠΌΠΈ Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹Π΅ ΠΌΠ°Ρ€ΠΊΠΈ Khronos. ИзмСнСния ΡƒΠΆΠ΅ приняты Π² ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ Mesa ΠΈ Π²ΠΎΠΉΠ΄ΡƒΡ‚ Π² состав выпуска Mesa 24.1.

ΠšΡ€ΠΎΠΌΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ Π² NVK отмСчаСтся Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ прогрСсс Π² обСспСчСнии ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ OpenGL для Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ NVIDIA. Π’ Mesa принято ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Zink для обСспСчСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ OpenGL 4.6 Π½Π° систСмах с Π½ΠΎΠ²Ρ‹ΠΌΠΈ сСриями Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ NVIDIA (начиная с GeForce RTX 20xx), с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² ΡˆΡ‚Π°Ρ‚Π½ΠΎΠΌ OpenGL-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ Nouveau (NVC0). Для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Zink вмСсто NVC0 Π² Mesa 24.1 достаточно Π²Ρ‹ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния Β«NOUVEAU_USE_ZINK=1Β».

ВнСсённыС Π² Mesa измСнСния Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Zink для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ OpenGL ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ… Π² качСствС запасного Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, примСняСмого для GPU, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΌΠΈ OpenGL-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈ Mesa. НапримСр, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΡƒΠΆΠ΅ примСняСтся для прСдоставлСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ OpenGL Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ freedreno для GPU Qualcomm Adreno 700 ΠΈ Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ powervr для GPU Imagination PowerVR Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Rogue.

Zink прСдоставляСт Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ OpenGL ΠΏΠΎΠ²Π΅Ρ€Ρ… Vulkan, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ ускорСнный OpenGL Π½Π° устройствах, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ API Vulkan. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ выпускС Mesa Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Zink Π±ΡƒΠ΄Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ ΠΏΡ€ΠΈ сборкС ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Zink Π±Π»ΠΈΠ·ΠΊΠ° ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€ΠΎΠ΄Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ OpenGL, Ρ‡Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ вмСсто Ρ‚Ρ€Π°Ρ‚Ρ‹ рСсурсов Π½Π° сопровоТдСниС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… OpenGL-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° качСствСнной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ API Vulkan, Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ OpenGL Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Ρ€Ρ… Vulkan.

Π‘Ρ‚Π°Ρ€Ρ‹ΠΉ OpenGL-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Nouveau ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‚ ΡƒΠ±ΠΈΡ€Π°Ρ‚ΡŒ, Π½ΠΎ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ связка Zink + NVK дСмонстрируСт Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… тСстах. На Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ этапС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈ запускС ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΈΠ³Ρ€ связка Zink + NVK позволяСт Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ 60 FPS ΠΈ Π²Ρ‹ΡˆΠ΅ Π½Π° Π½ΠΎΠ²Ρ‹Ρ… модСлях GPU, Π½ΠΎ Π΅Ρ‰Ρ‘ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅Ρ€Π΅ΡˆΡ‘Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ области, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π΅ΡˆΠ΅Π½Ρ‹.

Π’Π°ΠΊΠΆΠ΅ отмСчаСтся Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ стабилизации Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΠ²Π΅Ρ€Ρ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° NVK прослойки DXVK, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Direct3D 9, 10 ΠΈ 11, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π² API Vulkan. НС всС ΠΈΠ³Ρ€Ρ‹ D3D11 ΠΏΠΎΠΊΠ° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с Π½Π΅ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π²ΠΎΠ½Π½ΠΎΠΉ связкой NVK+DXVK ΠΈΠ· Mesa, Π½ΠΎ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ возмоТности доступны ΠΈ постСпСнно вСдётся устранСниС выявляСмых Π½Π΅Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΎΠΊ. Аналогично развиваСтся связка NVK с VKD3D-Proton для обСспСчСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ D3D12, Π½ΠΎ Π΅Ρ‘ состояниС ΠΏΠΎΠΊΠ° отстаёт ΠΎΡ‚ NVK+DXVK ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° рСализация Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… возмоТностСй.

Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ NVK создан c нуля ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ входят ΠšΠ°Ρ€ΠΎΠ» Π₯Србст (Karol Herbst, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Nouveau ΠΈΠ· Red Hat), Дэвид Π­ΠΉΡ€Π»ΠΈ (David Airlie, мэйнтСйнСр подсистСмы DRM ΠΈΠ· Red Hat) ΠΈ ДТСйсон/Ѐэй Экстранд (Jason/Faith Ekstrand, Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Mesa ΠΈΠ· Collabora). ΠŸΡ€ΠΈ создании Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ использовали ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ядра, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ NVIDIA. Π’ ΠΊΠΎΠ΄Π΅ NVK мСстами использовались Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ OpenGL-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Nouveau, Π½ΠΎ ΠΈΠ·-Π·Π° ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… NVIDIA ΠΈ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ Π² Nouveau, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π½Π° основС ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠΈΠ½ΠΈΡ€ΠΈΠ½Π³Π°, прямоС заимствованиС ΠΊΠΎΠ΄Π° Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΎ ΠΈ ΠΏΠΎ большСй части ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΏΠ΅Ρ€Π΅ΠΎΡΠΌΡ‹ΡΠ»ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π΅Ρ‰ΠΈ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… с нуля.

Uendelezaji ulifanyika kwa jicho la kuunda kiendeshi kipya cha kumbukumbu cha Vulkan kwa Mesa, msimbo ambao unaweza kukopwa wakati wa kuunda viendeshaji vingine. Ili kufanya hivyo, wakati wa kufanya kazi kwenye dereva wa NVK, walijaribu kuzingatia uzoefu wote uliopo katika kukuza madereva ya Vulkan, kudumisha msingi wa nambari katika hali bora na kupunguza uhamishaji wa nambari kutoka kwa madereva wengine wa Vulkan, wakifanya kama inavyopaswa kuwa. kazi bora na ya hali ya juu, na sio kunakili kwa upofu jinsi inavyofanywa katika viendeshaji vingine. Dereva tayari amejumuishwa katika Mesa, na mabadiliko muhimu kwa API ya kiendeshaji cha Nouveau DRM yamejumuishwa kwenye kinu cha Linux 6.6.

Chanzo: opennet.ru

Kuongeza maoni