ΠΠΎΡΠ»Π΅ ΡΡΡΡ ΠΌΠ΅ΡΡΡΠ΅Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΡΠ΅Π»ΠΈΠ· ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ API OpenGL ΠΈ Vulkan — Mesa 24.3.0. ΠΠ΅ΡΠ²ΡΠΉ Π²ΡΠΏΡΡΠΊ Π²Π΅ΡΠΊΠΈ Mesa 24.3.0 ΠΈΠΌΠ΅Π΅Ρ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΡΡΠ°ΡΡΡ — ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΡΡΠ΅Π½Π° ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ 24.3.1.
Π Mesa 24.3 Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ API Vulkan 1.3 Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ anv Π΄Π»Ρ GPU Intel, radv Π΄Π»Ρ GPU AMD, NVK Π΄Π»Ρ GPU NVIDIA, tu Π΄Π»Ρ GPU Qualcomm, Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΡΠ°ΡΡΠ΅ΡΠΈΠ·Π°ΡΠΎΡΠ΅ lavapipe (lvp), Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΌΡΠ»ΡΡΠΎΡΠ° (vn) ΠΈ Π² v3dv (GPU Broadcom VideoCore Π΄Π»Ρ Raspberry Pi 4+). ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Vulkan 1.0 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π² Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ dzn (ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Vulkan ΠΏΠΎΠ²Π΅ΡΡ Direct3D 12) ΠΈ panvk (GPU ARM Mali).
Π 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).
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½ΠΎΠ²ΡΠ΅ΡΡΠ²Π°:
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ΅ v3dv ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΠΏΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ API Vulkan 1.3 Π΄Π»Ρ GPU VideoCore, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π½Π° ΠΏΠ»Π°ΡΠ°Ρ Raspberry Pi 4 ΠΈ Raspberry Pi 5.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ Vulkan-Π΄ΡΠ°ΠΉΠ²Π΅Ρ gfxstream-vk, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π΄Π»Ρ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ API Vulkan ΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ API ΠΈΠ· Π³ΠΎΡΡΠ΅Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π½Π° Π±Π°Π·Π΅ Linux, Android ΠΈ Fuchsia. ΠΡΠ°ΠΉΠ²Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Google Π² ΡΠΌΡΠ»ΡΡΠΎΡΠ΅ Android, ΡΠΌΡΠ»ΡΡΠΎΡΠ΅ Fuchsia, Π² ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ c Android ΠΈ Π² Android Automotive OS (AAOS).
- Π ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ API Vulkan Ρ ΠΎΠΊΠΎΠ½Π½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ (WSI, Windowing System Integration) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Vulkan-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ VK_PRESENT_MODE_FIFO_KHR Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΡ Π½Π° Π±Π°Π·Π΅ Wayland ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° FIFO, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π³ΠΎ ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π·Π²ΡΡΡΠΊΠΈ (vblank) Π²ΠΌΠ΅ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ callback-Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π³ΠΎΡΠΎΠ²Π½ΠΎΡΡΠΈ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π½ΠΎΠ²ΡΠΉ ΠΊΠ°Π΄Ρ, ΡΡΠΎ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π²ΡΡΠΎΠΊΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΎΠΉ Π½Π° GPU ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ VSync.
- ΠΠ° ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Ρ GPU Intel Π½Π° Π±Π°Π·Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Xe2 ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ ΡΠΆΠ°ΡΠΈΠ΅ Π±ΡΡΠ΅ΡΠΎΠ² Π³Π»ΡΠ±ΠΈΠ½Ρ (z-Π±ΡΡΠ΅ΡΠΎΠ²).
- Π OpenGL-Π΄ΡΠ°ΠΉΠ²Π΅Ρ iris ΠΈ Vulkan-Π΄ΡΠ°ΠΉΠ²Π΅Ρ ANV Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° GPU Intel Π½Π° Π±Π°Π·Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Xe3, Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°Ρ Panther Lake.
- Π Π΄ΡΠ°ΠΉΠ²Π΅Ρ NVK (NVIDIA) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Vulkan-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ:
- VK_EXT_descriptor_buffer
- VK_EXT_post_depth_coverage
- VK_EXT_legacy_vertex_attributes
- VK_KHR_maintenance7
- VK_KHR_dynamic_rendering_local_read
- VK_NV_compute_shader_derivatives
- VK_KHR_compute_shader_derivatives
- VK_KHR_shader_float_controls2
- VK_EXT_host_image_copy (Π΄Π»Ρ GPU Turing+)
- VK_KHR_shader_quad_control
- VK_KHR_fragment_shading_rate
- VK_EXT_depth_clamp_zero_one
- VK_EXT_device_generated_commands
- Π Π΄ΡΠ°ΠΉΠ²Π΅Ρ RADV (AMD) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Vulkan-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ:
- VK_KHR_video_maintenance1
- VK_KHR_pipeline_binary
- VK_KHR_compute_shader_derivatives
- VK_KHR_shader_float_controls2
- VK_EXT_device_generated_commands
- VK_KHR_shader_relaxed_extended_instruction
- Π Π΄ΡΠ°ΠΉΠ²Π΅Ρ ANV (Intel) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Vulkan-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ
- VK_KHR_compute_shader_derivatives
- VK_KHR_shader_relaxed_extended_instruction
- VK_EXT_depth_clamp_control
- Π Π΄ΡΠ°ΠΉΠ²Π΅Ρ hasvk (Intel Ivy Bridge, Haswell ΠΈ Broadwell) Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Vulkan-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ:
- VK_EXT_depth_clamp_control
- VK_KHR_shader_relaxed_extended_instruction
- Π Π΄ΡΠ°ΠΉΠ²Π΅ΡΡ hk, tu, v3dv ΠΈ lvp Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Vulkan-ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ VK_KHR_shader_relaxed_extended_instruction.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π½ΠΎΠ²ΡΡ
ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ OpenGL:
- GL_KHR_shader_subgroup Π² Π΄ΡΠ°ΠΉΠ²Π΅Ρ radeonsi
- GL_OVR_multiview Π² Π΄ΡΠ°ΠΉΠ²Π΅Ρ zink
- GL_OVR_multiview2 Π² Π΄ΡΠ°ΠΉΠ²Π΅Ρ zink
- GL_ARB_draw_indirect Π² Π΄ΡΠ°ΠΉΠ²Π΅Ρ etnaviv/HALTI5+
- GL_EXT_draw_buffers2 Π² Π΄ΡΠ°ΠΉΠ²Π΅Ρ etnaviv/HALTI5+
- GL_ARB_draw_buffers_blend Π² Π΄ΡΠ°ΠΉΠ²Π΅Ρ etnaviv/HALTI5+
- GL_ARB_framebuffer_no_attachments Π² Π΄ΡΠ°ΠΉΠ²Π΅Ρ etnaviv
- GL_ARB_timer_query Π² Π΄ΡΠ°ΠΉΠ²Π΅Ρ Panfrost
- GL_EXT_disjoint_timer_query Π² Π΄ΡΠ°ΠΉΠ²Π΅Ρ Panfrost
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru