ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ NVK, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Vulkan-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ для Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ NVIDIA

Компания Collabora прСдставила NVK, Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ для Mesa с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ графичСского API Vulkan для Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ NVIDIA. Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ написан с нуля, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ядра, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ NVIDIA. Код Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT. Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠΊΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ GPU Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ Turing ΠΈ Ampere, выпускаСмыС с сСнтября 2018 Π³ΠΎΠ΄Π°.

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

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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° NVK вСдётся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСсколько мСсяцСв, поэтому Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π°. Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ 98% ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ ΠΏΡ€ΠΈ запускС 10% тСстов ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° Vulkan CTS (Compatibility Test Suite). Π’ ΠΎΠ±Ρ‰Π΅ΠΌ Π²ΠΈΠ΄Π΅ Π³ΠΎΡ‚ΠΎΠ²Π½ΠΎΡΡ‚ΡŒ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° оцСниваСтся ΠΊΠ°ΠΊ 20-25% ΠΎΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² ANV ΠΈ RADV. По ΡƒΡ€ΠΎΠ²Π½ΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ оборудования Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ ΠΏΠΎΠΊΠ° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ ΠΊΠ°Ρ€Ρ‚Π°ΠΌΠΈ Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ Turing ΠΈ Ampere. ВСдётся Ρ€Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ ΠΏΠ°Ρ‚Ρ‡Π°ΠΌΠΈ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ GPU Kepler, Maxwell ΠΈ Pascal, Π½ΠΎ ΠΎΠ½ΠΈ Π΅Ρ‰Ρ‘ Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹.

Π’ долгосрочной пСрспСктивС оТидаСтся, Ρ‡Ρ‚ΠΎ для Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ NVIDIA Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ NVK достигнСт уровня качСства ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρƒ RADV для ΠΊΠ°Ρ€Ρ‚ AMD. ПослС готовности Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° NVK, созданныС ΠΏΡ€ΠΈ Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΎΠ±Ρ‰ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΡ‚Π΅ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ OpenGL-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Nouveau для Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ NVIDIA. Π’Π°ΠΊΠΆΠ΅ рассматриваСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ задСйствования ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Zink для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ OpenGL-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° для Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ NVIDIA, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Π² API Vulkan.

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