Π’ Mesa-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ NVK обСспСчСна ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Vulkan 1.4 для GPU NVIDIA Maxwell, Pascal ΠΈ Volta

ΠšΠΎΠ½ΡΠΎΡ€Ρ†ΠΈΡƒΠΌ Khronos, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ графичСских стандартов, ΠΏΡ€ΠΈΠ·Π½Π°Π» ΠΏΠΎΠ»Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° NVK со спСцификациСй Vulkan 1.4 Π½Π° систСмах с GPU NVIDIA Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ Maxwell (GTX 700/800/900), Pascal (GTX 1000) ΠΈ Volta (TITAN V). Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΡˆΡ‘Π» всС тСсты ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° CTS (Khronos Conformance Test Suite) ΠΈ Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Π² список сСртифицированных Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ². ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ сСртификата Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π·Π°ΡΠ²Π»ΡΡ‚ΡŒ ΠΎ совмСстимости с графичСскими стандартами ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ связанныС с Π½ΠΈΠΌΠΈ Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹Π΅ ΠΌΠ°Ρ€ΠΊΠΈ Khronos.

Начиная с Mesa 25.1 Vulkan-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ NVK Π±ΡƒΠ΄Π΅Ρ‚ задСйствован ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для GPU NVIDIA Maxwell, Pascal ΠΈ Volta. Π’ Mesa 25.2 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° OpenGL для ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… GPU Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Nouveau Π½Π° Zink Π² связкС с Vulkan-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ NVK. Zink прСдоставляСт Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ OpenGL 4.6 ΠΏΠΎΠ²Π΅Ρ€Ρ… Vulkan, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ ускорСнный OpenGL Π½Π° устройствах, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… API Vulkan. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Zink Π±Π»ΠΈΠ·ΠΊΠ° ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€ΠΎΠ΄Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ OpenGL.

Π Π°Π½Π΅Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Vulkan 1.4 Π² NVK Π±Ρ‹Π»Π° обСспСчСна Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π½ΠΎΠ²Ρ‹Ρ… 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). ВСдётся Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ добавлСнию Π² NVK ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ GPU Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ Kepler ΠΈ Fermi, Π½ΠΎ ΠΈΡ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° максимум Vulkan 1.2 ΠΈΠ·-Π·Π° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ.

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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° вСлась с оглядкой Π½Π° созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ эталонного Vulkan-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° для Mesa, ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΈΠΌΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ создании Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ². Для этого ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ NVK ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΡƒΡ‡Π΅ΡΡ‚ΡŒ вСсь ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉΡΡ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Vulkan-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ Π² ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ пСрСнос ΠΊΠΎΠ΄Π° ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… Vulkan-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ², дСлая ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ для ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈ качСствСнной Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π° Π½Π΅ слСпо копируя Ρ‚ΠΎ, ΠΊΠ°ΠΊ сдСлано Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°Ρ….

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ