ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΡΠ΅Π»ΠΈΠ· ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ 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 ΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠ° Π‘ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΡΠΎΡΡ-ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ. ΠΡΠ°ΠΉΠ²Π΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° ΡΠ·ΡΠΊΠ΅ Rust, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Π² Mesa ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Gallium ΠΈ Π²ΡΡΡΡΠΏΠ°Π΅Ρ Π² ΡΠΎΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³Π° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π² Mesa OpenCL-ΡΡΠΎΠ½ΡΡΠ½Π΄Π° Clover. 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 Π΄Π»Ρ 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