Dopo tre mesi di sviluppo è stato pubblicato il rilascio dell'implementazione libera delle API OpenGL e Vulkan — Mesa 24.3.0. La prima versione della serie Mesa 24.3.0 ha uno stato sperimentale — dopo la stabilizzazione finale del codice, verrà rilasciata una versione stabile 24.3.1.
In Mesa 24.3 è disponibile il supporto per l'API grafica Vulkan 1.3 nei driver anv per GPU Intel, radv per GPU AMD, NVK per GPU NVIDIA, tu per GPU Qualcomm, nel rasterizzatore software lavapipe (lvp), in modalità emulatore (vn) e in v3dv (GPU Broadcom VideoCore per Raspberry Pi 4+). Il supporto per Vulkan 1.0 è implementato nei driver dzn (implementazione di Vulkan sopra Direct3D 12) e panvk (GPU ARM Mali).
Mesa offre anche supporto completo per OpenGL 4.6 nei driver iris (GPU Intel Gen 8+), radeonsi (AMD), Crocus (vecchie GPU Intel Gen4-Gen7), zink, llvmpipe, virgl (GPU virtuale Virgil3D per QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (strato per far funzionare OpenGL sopra DirectX 12) e asahi (GPU AGX utilizzata nei chip Apple M1 e M2). Il supporto per OpenGL 4.5 è disponibile per GPU AMD (r600) e NVIDIA (nvc0). Il supporto per OpenGL 3.3 è presente nei driver softpipe (rasterizzatore software) e nv50 (NVIDIA NV50).
Novità principali:
- Nel driver v3dv è garantito il pieno supporto dell'API grafica Vulkan 1.3 per le GPU VideoCore utilizzate sulle schede Raspberry Pi 4 e Raspberry Pi 5.
- È stato aggiunto un nuovo driver Vulkan gfxstream-vk, che può essere utilizzato per la virtualizzazione dell'API Vulkan e per accedere a questa API grafica da sistemi guest basati su Linux, Android e Fuchsia. Il driver è utilizzato da Google nell'emulatore Android, nell'emulatore Fuchsia, nei servizi cloud con Android e in Android Automotive OS (AAOS).
- Nell'interfaccia di integrazione dell'API grafica Vulkan con i sistemi finestra (WSI, Windowing System Integration) è stato aggiunto il supporto per l'estensione Vulkan VK_PRESENT_MODE_FIFO_KHR da utilizzare in ambienti basati sul protocollo FIFO di Wayland, consentendo di utilizzare l'attesa per il completamento del refresh verticale (vblank) invece di callback ad ogni prontezza per mostrare un nuovo fotogramma, risolvendo così il problema con l'elevato carico sulla GPU durante l'uso di VSync.
- Nei sistemi con GPU Intel basati sull'architettura Xe2, la compressione dei buffer di profondità (z-buffer) è abilitata per impostazione predefinita.
- Nel driver OpenGL iris e nel driver Vulkan ANV è stato aggiunto il supporto iniziale per GPU Intel basate sull'architettura Xe3, integrate nei processori Panther Lake.
- Nel driver NVK (NVIDIA) è stato aggiunto il supporto per le estensioni 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 (per GPU Turing+)
- VK_KHR_shader_quad_control
- VK_KHR_fragment_shading_rate
- VK_EXT_depth_clamp_zero_one
- VK_EXT_device_generated_commands
- Nel driver RADV (AMD) è stato aggiunto il supporto per le estensioni 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
- Nel driver ANV (Intel) è stato aggiunto il supporto per le estensioni Vulkan
- VK_KHR_compute_shader_derivatives
- VK_KHR_shader_relaxed_extended_instruction
- VK_EXT_depth_clamp_control
- Nel driver hasvk (Intel Ivy Bridge, Haswell e Broadwell) è stato aggiunto il supporto per le estensioni Vulkan:
- VK_EXT_depth_clamp_control
- VK_KHR_shader_relaxed_extended_instruction
- Nei driver hk, tu, v3dv e lvp è stato aggiunto il supporto per l'estensione Vulkan VK_KHR_shader_relaxed_extended_instruction.
- È stato aggiunto il supporto per le nuove estensioni OpenGL:
- GL_KHR_shader_subgroup nel driver radeonsi
- GL_OVR_multiview nel driver zink
- GL_OVR_multiview2 nel driver zink
- GL_ARB_draw_indirect nel driver etnaviv/HALTI5+
- GL_EXT_draw_buffers2 nel driver etnaviv/HALTI5+
- GL_ARB_draw_buffers_blend nel driver etnaviv/HALTI5+
- GL_ARB_framebuffer_no_attachments nel driver etnaviv
- GL_ARB_timer_query nel driver Panfrost
- GL_EXT_disjoint_timer_query nel driver Panfrost
Fonte: opennet.ru
