ΠŸΡƒΡΠΊΠ°Π½Π΅ Π½Π° Mesa 22.3, Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π½Π° рСализация Π½Π° OpenGL ΠΈ Vulkan

Π˜Π·Π΄Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π±Π΅Π·ΠΏΠ»Π°Ρ‚Π½Π°Ρ‚Π° рСализация Π½Π° API Π½Π° OpenGL ΠΈ Vulkan - Mesa 22.3.0 - бСшС ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΎ. ΠŸΡŠΡ€Π²ΠΎΡ‚ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΠ»ΠΎΠ½Π° Mesa 22.3.0 ΠΈΠΌΠ° СкспСримСнталСн статус - слСд ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»Π½ΠΎΡ‚ΠΎ стабилизиранС Π½Π° ΠΊΠΎΠ΄Π° Ρ‰Π΅ бъдС пусната стабилна вСрсия 22.3.1.

Mesa 22.3 осигурява ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° графичния API Vulkan 1.3 Π² anv Π·Π° Intel GPU, radv Π·Π° AMD GPU, tu Π·Π° Qualcomm GPU ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ (vn). ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Vulkan 1.1 Π΅ Π²Π½Π΅Π΄Ρ€Π΅Π½Π° Π² софтуСрния растСризатор lavapipe (lvp), Π° Vulkan 1.0 Π² Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° v3dv (Broadcom VideoCore VI GPU ΠΎΡ‚ Raspberry Pi 4).

Mesa ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° прСдоставя пълна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° OpenGL 4.6 Π·Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈΡ‚Π΅ 965, iris (Intel), radeonsi (AMD), zink ΠΈ llvmpipe. ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° OpenGL 4.5 Π΅ Π½Π°Π»ΠΈΡ‡Π½Π° Π·Π° AMD (r600), NVIDIA (nvc0) ΠΈ Qualcomm Adreno (freedreno) GPU, OpenGL 4.3 Π·Π° virgl (virgil3D virtual GPU Π·Π° QEMU/KVM) ΠΈ OpenGL 4.2 Π·Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° d3d12 (слой Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° OpenGL работят Π²ΡŠΡ€Ρ…Ρƒ DirectX 12).

Основни ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ:

  • Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ΡŠΡ‚ freedreno Π·Π° Π³Ρ€Π°Ρ„ΠΈΡ‡Π½ΠΈ процСсори Qualcomm Adreno осигурява ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° графичния API OpenGL 4.5, Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΡŠΡ‚ Π½Π° Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€Π° (vn) ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° API Vulkan 1.3.
  • Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ΡŠΡ‚ Panfrost Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° ΡˆΠ΅ΠΉΠ΄ΡŠΡ€ΠΈ Π½Π° диск ΠΈ добавя ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Mali T620 GPU. Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ΡŠΡ‚ Π΅ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌ със спСцификацията OpenGL 3.1 ΠΈ OpenGL ES 3.1.
  • Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ΡŠΡ‚ RADV (AMD) Vulkan Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π³Ρ€Π°Ρ„ΠΈΡ‡Π½ΠΈ процСсори GFX11/RDNA3 (сСрия Radeon RX 7000). ΠšΠΎΠ΄ΡŠΡ‚ Π·Π° прослСдяванС Π½Π° Π»ΡŠΡ‡ΠΈ Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½. Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° пиксСлни Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ R8G8B8, B8G8R8 ΠΈ R16G16B16, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ 64-Π±ΠΈΡ‚ΠΎΠ²ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ Π½Π° вСртСкс Π±ΡƒΡ„Π΅Ρ€. Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Ρ„Π»Π°Π³Π° extendedDynamicState2PatchControlPoints, ΠΊΠΎΠΉΡ‚ΠΎ опрСдСля ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π·Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅Ρ‚ΠΎ VK_EXT_extended_dynamic_state2. Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½ Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ Π½Π° Radeon Raytracing.
  • ΠŸΠ°ΠΊΠ΅Ρ‚ΡŠΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π²Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Rusticle с внСдряванСто Π½Π° спСцификацията OpenCL 3.0, която Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π° API ΠΈ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡΡ‚Π° Π½Π° Π΅Π·ΠΈΠΊΠ° C Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΌΠ΅ΠΆΠ΄ΡƒΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½ΠΈ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΈ изчислСния. Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ΡŠΡ‚ Π΅ написан Π½Π° Rust, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° интСрфСйса Gallium, прСдоставСн Π² Mesa, ΠΈ дСйства ΠΊΠ°Ρ‚ΠΎ Π°Π½Π°Π»ΠΎΠ³ Π½Π° интСрфСйса Clover OpenCL, ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π°Ρ‰ Π² Mesa. Clover Π΅ изоставСн ΠΎΡ‚ дълго Π²Ρ€Π΅ΠΌΠ΅ ΠΈ rusticl Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Π½ ΠΊΠ°Ρ‚ΠΎ Π½Π΅Π³ΠΎΠ² Π±ΡŠΠ΄Π΅Ρ‰ замСститСл. ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π·Π° Rust ΠΈ rusticl Π΅ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π° ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΈ изисква компилация с ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΈ ΠΎΠΏΡ†ΠΈΠΈ β€ž-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021β€œ. ΠŸΡ€ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ сС изискват rustc ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΡŠΡ‚, Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ Π½Π° bindgen ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅, LLVM, SPIRV-Tools ΠΈ SPIRV-LLVM-Translator ΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ зависимости.
  • Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ΡŠΡ‚ RadeonSI Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° многонишково изобразяванС Ρ‡Ρ€Π΅Π· OpenGL ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅.
  • ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Π½ Π΅ Mesa-DB, Π½ΠΎΠ² Ρ‚ΠΈΠΏ ΡˆΠ΅ΠΉΠ΄ΡŠΡ€ кСш, ΠΊΠΎΠΉΡ‚ΠΎ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° Π΄Π°Π½Π½ΠΈ Π² Π΅Π΄ΠΈΠ½ Ρ„Π°ΠΉΠ».
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° OpenGL Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ:
    • GL_ARB_shader_clock Π·Π° llvmpipe.
    • GL_KHR_blend_equation_advanced_coherent Π·Π° Ρ†ΠΈΠ½ΠΊ.
    • GL_NV_shader_atomic_float Π·Π° llvmpipe.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Vulkan Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ:
    • VK_KHR_shader_clock Π·Π° lavapipe.
    • VK_EXT_attachment_feedback_loop_layout Π·Π° RADV, lavapipe.
    • VK_KHR_Π³Π»ΠΎΠ±Π°Π»Π΅Π½_ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π·Π° RADV.
    • VK_EXT_load_store_op_none Π·Π° RADV.
    • VK_EXT_ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²_дСскриптор_Ρ‚ΠΈΠΏ Π·Π° RADV.
    • VK_EXT_shader_atomic_float Π·Π° lvp.
    • VK_EXT_shader_atomic_float2 Π·Π° lvp.
    • VK_EXT_image_robustness Π·Π° v3dv.
    • VK_EXT_extended_dynamic_state3 Π·Π° lavapipe, RADV ΠΈ ANV.
    • VK_EXT_extended_dynamic_state2 Π·Π° RADV.
    • VK_EXT_pipeline_robustness Π·Π° v3dv.
    • VK_EXT_mesh_shader Π·Π° ANV.

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€