ΠΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ Π΅ ΡΠ΅Π»ΠΈΠ· Π½Π° ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° API OpenGL ΠΈ Vulkan β Mesa 22.3.0. ΠΡΡΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΠ»ΠΎΠ½Π° Mesa 22.3.0 ΠΈΠΌΠ° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»Π΅Π½ ΡΡΠ°ΡΡΡ β ΡΠ»Π΅Π΄ ΡΠΈΠ½Π°Π»ΠΈΠ·Π°ΡΠΈΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ΄Π° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ·Π΄Π°Π΄Π΅Π½Π° ΡΡΠ°Π±ΠΈΠ»Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ 22.3.1.
Π Mesa 22.3 Π΅ Π½Π°Π»ΠΈΡΠ½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π³ΡΠ°ΡΠΈΡΠ½ΠΈΡ API Vulkan 1.3 Π² Π΄ΡΠ°ΠΉΠ²Π°ΡΠΈΡΠ΅ anv Π·Π° GPU Intel, radv Π·Π° GPU AMD, tu Π·Π° GPU Qualcomm ΠΈ Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° Π΅ΠΌΡΠ»Π°ΡΠΈΡ (vn). ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Vulkan 1.1 Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π² ΡΠΎΡΡΡΠ΅ΡΠ½ΠΈΡ ΡΠ°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΎΡ lavapipe (lvp), Π° Vulkan 1.0 Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° v3dv (GPU Broadcom VideoCore VI ΠΎΡ Raspberry Pi 4).
Π Mesa ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ ΠΎΡΠΈΠ³ΡΡΠ΅Π½Π° ΠΏΡΠ»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° OpenGL 4.6 Π·Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅ 965, iris (Intel), radeonsi (AMD), zink ΠΈ llvmpipe. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° OpenGL 4.5 Π΅ Π½Π°Π»ΠΈΡΠ½Π° Π·Π° GPU Π½Π° AMD (r600), NVIDIA (nvc0) ΠΈ Qualcomm Adreno (freedreno), OpenGL 4.3 Π·Π° virgl (Π²ΠΈΡΡΡΠ°Π»Π΅Π½ GPU Virgil3D Π·Π° QEMU/KVM), Π° OpenGL 4.2 Π·Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° d3d12 (ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° OpenGL Π²ΡΡΡ Ρ DirectX 12).
ΠΡΠ½ΠΎΠ²Π½ΠΈ Π½ΠΎΠ²ΠΎΠ²ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ:
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° freedreno Π·Π° GPU Qualcomm Adreno Π΅ ΠΎΡΠΈΠ³ΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π³ΡΠ°ΡΠΈΡΠ½ΠΈΡ API OpenGL 4.5, Π° Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π·Π° Π΅ΠΌΡΠ»Π°ΡΠΈΡ (vn) ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° API Vulkan 1.3.
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Panfrost Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΠΉΠ΄ΡΡΠΈ Π½Π° Π΄ΠΈΡΠΊΠ° ΠΈ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° GPU Mali T620. ΠΡΠ°ΠΉΠ²Π΅ΡΡΡ Π΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ OpenGL 3.1 ΠΈ OpenGL ES 3.1.
- Π Vulkan-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° RADV (AMD) Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° GPU GFX11/RDNA3 (ΡΠ΅ΡΠΈΡ Radeon RX 7000). ΠΡΠΎΠ²Π΅Π΄Π΅Π½Π° Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΊΠΎΠ΄Π° Π·Π° ΡΡΠ°ΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π° Π»ΡΡΠΈ. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΠΈΠΊΡΠ΅Π»ΠΎΠ²ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈ R8G8B8, B8G8R8 ΠΈ R16G16B16, ΠΊΠ°ΠΊΡΠΎ ΠΈ 64-ΡΠ°Π·ΡΡΠ΄Π½ΠΈ ΡΠΎΡΠΌΠ°ΡΠΈ Π·Π° Π²Π΅ΡΡΠΈΠ½Π½ΠΈ Π±ΡΡΠ΅ΡΠΈ. ΠΠΊΠ»ΡΡΠ΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ»Π°Π³Π° extendedDynamicState2PatchControlPoints, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ VK_EXT_extended_dynamic_state2. ΠΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½ Π΅ Radeon Raytracing Analyzer.
- Π ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Rusticl Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ OpenCL 3.0, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΠ° API ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π½Π° Π΅Π·ΠΈΠΊΠ° C Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΡΠΎΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½ΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ. ΠΡΠ°ΠΉΠ²Π΅ΡΡΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Rust, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈΡ Π² Mesa ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Gallium ΠΈ ΠΈΠ³ΡΠ°Π΅ ΡΠΎΠ»Ρ Π½Π° Π°Π½Π°Π»ΠΎΠ³ Π½Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈΡ Π² Mesa OpenCL ΡΡΠΎΠ½ΡΠ΅Π½Π΄ Clover. Clover ΠΎΡΠ΄Π°Π²Π½Π° Π΅ Π² ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ Π½Π° abandono ΠΈ 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 Π·Π° zink.
- GL_NV_shader_atomic_float Π·Π° llvmpipe.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Vulkan-ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡΡΠ°:
- VK_KHR_shader_clock Π·Π° lavapipe.
- VK_EXT_attachment_feedback_loop_layout Π·Π° RADV, lavapipe.
- VK_KHR_global_priority Π·Π° RADV.
- VK_EXT_load_store_op_none Π·Π° RADV.
- VK_EXT_mutable_descriptor_type Π·Π° 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
