ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΡΠ΅Π»ΠΈΠ· ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ API OpenGL ΠΈ Vulkan — Mesa 24.1.0. ΠΠ΅ΡΠ²ΡΠΉ Π²ΡΠΏΡΡΠΊ Π²Π΅ΡΠΊΠΈ Mesa 24.1.0 ΠΈΠΌΠ΅Π΅Ρ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΡΡΠ°ΡΡΡ — ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΡΡΠ΅Π½Π° ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ 24.1.1.
Π Mesa 24.0 Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ API Vulkan 1.3 Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ anv Π΄Π»Ρ GPU Intel, radv Π΄Π»Ρ GPU AMD, NVK Π΄Π»Ρ GPU NVIDIA, tu Π΄Π»Ρ GPU Qualcomm, Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΡΠ°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΎΡΠ΅ lavapipe (lvp) ΠΈ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΌΡΠ»ΡΡΠΎΡΠ° (vn). ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Vulkan 1.0 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ v3dv (GPU Broadcom VideoCore VI ΠΈΠ· Raspberry Pi 4) ΠΈ dzn (ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Vulkan ΠΏΠΎΠ²Π΅ΡΡ Direct3D 12).
Π Mesa ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° OpenGL 4.6 Π΄Π»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² iris (GPU Intel Gen 8+), radeonsi (AMD), Crocus (ΡΡΠ°ΡΡΠ΅ GPU Intel Gen4-Gen7), zink, llvmpipe, virgl (Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ GPU Virgil3D Π΄Π»Ρ QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠ° Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ OpenGL ΠΏΠΎΠ²Π΅ΡΡ DirectX 12) ΠΈ asahi (GPU AGX, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² ΡΠΈΠΏΠ°Ρ Apple M1 ΠΈ M2). ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° OpenGL 4.5 Π΄ΠΎΡΡΡΠΏΠ½Π° Π΄Π»Ρ GPU AMD (r600) ΠΈ NVIDIA (nvc0). ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° OpenGL 3.3 ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ softpipe (ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΡΠ°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΎΡ) ΠΈ nv50 (NVIDIA NV50).
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Π°:
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ asahi, ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠΌ Π΄Π»Ρ GPU AGX, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΌ Π² ARM-ΡΠΈΠΏΠ°Ρ Apple, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° OpenGL 4.6 ΠΈ OpenGL ES 3.2.
- ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΡΡΡΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° NVK Π΄Π»Ρ GPU NVIDIA Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡΠΎΠ°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ Turing (ΡΠ΅ΡΠΈΠΈ GeForce GTX 16xx, RTX 20xx ΠΈ Quadro RTX), Ampere (ΡΠ΅ΡΠΈΠΈ GeForce RTX 30xx ΠΈ RTX A2000/4000/5000/6000) ΠΈ Ada (ΡΠ΅ΡΠΈΠΈ GeForce RTX 4xxx, RTX 4000 SFF, RTX 4xxx/5000/6000 Ada). ΠΡΠ°ΠΉΠ²Π΅Ρ ΠΏΡΠΈΠ·Π½Π°Π½ Π³ΠΎΡΠΎΠ²ΡΠΌ ΠΊ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΠΎΠΊΠΈΠΌ ΠΊΡΡΠ³ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Vulkan 1.3 Π² NVK ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π° ΠΊΠΎΠ½ΡΠΎΡΡΠΈΡΠΌΠΎΠΌ Khronos. Π£Π»ΡΡΡΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎΠ²Π΅ΡΡ NVK ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠΈ DXVK, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Direct3D 9, 10 ΠΈ 11.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Zink (ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ OpenGL ΠΏΠΎΠ²Π΅ΡΡ Vulkan) Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ OpenGL 4.6 Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ Π½ΠΎΠ²ΡΠΌΠΈ ΡΠ΅ΡΠΈΡΠΌΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡ NVIDIA (Π½Π°ΡΠΈΠ½Π°Ρ Ρ GeForce RTX 20xx), Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΠΎΠ³ΡΡ Π½Π°Π±Π»ΡΠ΄Π°ΡΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΡΡΠ°ΡΠ½ΠΎΠΌ OpenGL-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ Nouveau (NVC0). ΠΠ»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Zink Π²ΠΌΠ΅ΡΡΠΎ NVC0 ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΡΡΠ°Π²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ «NOUVEAU_USE_ZINK=1».
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ Panfrost Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° GPU Mali G610, Mali G310 ΠΈ Mali T600.
- ΠΠΎ Π²ΡΠ΅Ρ Vulkan-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ²Π½ΠΎΠΉ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ (Explicit Sync) Π΄Π»Ρ Wayland ΠΈ X11. Explicit Sync ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠ½ΡΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΎ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΠΊΠ°Π΄ΡΠ° Π½Π° ΡΠΊΡΠ°Π½, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ ΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΎΠ² ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ Π³ΡΠ°ΡΠΈΠΊΠΈ.
- Π Π°ΡΡΠΈΡΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° d3d12, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΡ Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ OpenGL ΠΏΠΎΠ²Π΅ΡΡ DirectX 12.
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ V3DV, ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΠΎΠΌ Π΄Π»Ρ GPU Broadcom VideoCore (ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π² ΠΏΠ»Π°ΡΠ°Ρ Raspberry Pi), Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ.
- Vulkan-Π΄ΡΠ°ΠΉΠ²Π΅Ρ ANV (Intel) ΠΏΠ΅ΡΠ΅Π²Π΅Π΄ΡΠ½ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡΠΈ (Asynchronous VM_BIND). ΠΠ»Ρ GPU Π½Π° Π±Π°Π·Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Intel Xe, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΡΡΠ°Ρ Intel ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Arc ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠ΅, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Tiger Lake, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ±ΡΠΎΡΠ° Π΄Π°ΠΌΠΏΠΎΠ² ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π·Π°Π²ΠΈΡΠ°Π½ΠΈΠΉ GPU. ΠΡΠΎΠ²Π΅Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅ GPU ΡΠΈΠΏΠΎΠ² Intel LunarLake (Xe 2).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½ΠΎΠ²ΡΡ
ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ Vulkan:
- VK_EXT_map_memory_placed Π΄Π»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ² RADV, ANV ΠΈ NVK
- VK_KHR_shader_subgroup_rotate Π΄Π»Ρ RADV, ANV ΠΈ NVK
- VK_KHR_load_store_op_none Π΄Π»Ρ RADV, ANV, NVK ΠΈ Turnip
- VK_KHR_line_rasterization Π΄Π»Ρ RADV, ANV, NVK ΠΈ Turnip
- VK_KHR_index_type_uint8 Π΄Π»Ρ RADV, ANV, NVK ΠΈ Turnip
- VK_KHR_shader_expect_assume Π΄Π»Ρ Π²ΡΠ΅Ρ Vulkan-Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΎΠ²
- VK_KHR_shader_maximal_reconvergence Π΄Π»Ρ RADV, ANV ΠΈ NVK
- VK_KHR_shader_quad_control Π΄Π»Ρ RADV
- VK_KHR_shader_subgroup_uniform_control_flow Π΄Π»Ρ NVK
- VK_EXT_device_address_binding_report Π΄Π»Ρ RADV
- VK_EXT_external_memory_dma_buf Π΄Π»Ρ lavapipe
- VK_EXT_queue_family_foreign Π΄Π»Ρ lavapipe
- VK_EXT_shader_object Π΄Π»Ρ RADV
- VK_EXT_nested_command_buffer Π΄Π»Ρ NVK ΠΈ RADV
- VK_EXT_queue_family_foreign Π΄Π»Ρ NVK
- VK_EXT_image_drm_format_modifier Π΄Π»Ρ NVK
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru