ΠΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π½Π° Π±Π΅Π·ΠΏΠ»Π°ΡΠ½Π°ΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° 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