Π’ 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 создан c нуля ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ входят ΠšΠ°Ρ€ΠΎΠ» Π₯Србст (Karol Herbst, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Nouveau ΠΈΠ· Red Hat), Дэвид Π­ΠΉΡ€Π»ΠΈ (David Airlie, мэйнтСйнСр подсистСмы DRM ΠΈΠ· Red Hat) ΠΈ ДТСйсон Экстранд (Jason Ekstrand, Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Mesa ΠΈΠ· Collabora). ΠŸΡ€ΠΈ создании Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ использовали ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ядра, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ 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