È stato rilasciato il rilascio dell'implementazione open source delle API OpenGL e Vulkan - Mesa 22.3.0. Il primo rilascio della branch Mesa 22.3.0 ha uno stato sperimentale - dopo la stabilizzazione finale del codice, sarà rilasciata una versione stabile 22.3.1.
In Mesa 22.3 è disponibile il supporto per l'API grafica Vulkan 1.3 nei driver anv per GPU Intel, radv per GPU AMD, tu per GPU Qualcomm e nella modalità emulatore (vn). Il supporto per Vulkan 1.1 è implementato nel rasterizzatore software lavapipe (lvp), mentre Vulkan 1.0 è presente nel driver v3dv (GPU Broadcom VideoCore VI di Raspberry Pi 4).
Mesa offre anche supporto completo per OpenGL 4.6 nei driver 965, iris (Intel), radeonsi (AMD), zink e llvmpipe. Il supporto per OpenGL 4.5 è disponibile per GPU AMD (r600), NVIDIA (nvc0) e Qualcomm Adreno (freedreno), OpenGL 4.3 per virgl (GPU virtuale Virgil3D per QEMU/KVM), e OpenGL 4.2 per il driver d3d12 (strato per far funzionare OpenGL sopra DirectX 12).
Novità principali:
- Nel driver freedreno per GPU Qualcomm Adreno è fornito il supporto per l'API grafica OpenGL 4.5, mentre nel driver per emulatore (vn) è supportato l'API Vulkan 1.3.
- Nel driver Panfrost è stata implementata la possibilità di caching dei shader su disco e aggiunto il supporto per GPU Mali T620. Il driver è compatibile con le specifiche OpenGL 3.1 e OpenGL ES 3.1.
- Nel driver Vulkan RADV (AMD) è stato aggiunto il supporto per GPU GFX11/RDNA3 (serie Radeon RX 7000). Sono state ottimizzate le prestazioni per il ray tracing. Aggiunto il supporto per i formati pixel R8G8B8, B8G8R8 e R16G16B16, oltre a formati a 64 bit per il buffer delle vertici. Aggiunto il supporto per il flag extendedDynamicState2PatchControlPoints, che definisce il supporto per l'estensione VK_EXT_extended_dynamic_state2. Integrato Radeon Raytracing Analyzer.
- Incluso il driver Rusticl con implementazione della specifica OpenCL 3.0, che definisce l'API e le estensioni del linguaggio C per organizzare calcoli paralleli cross-platform. Il driver è scritto in Rust, sviluppato utilizzando l'interfaccia Gallium fornita in Mesa e funge da equivalente dell'OpenCL frontend Clover presente in Mesa. Clover è obsoleto da tempo e rusticl è posizionato come suo futuro sostituto. Il supporto per Rust e rusticl è disabilitato per impostazione predefinita e richiede la compilazione specificando esplicitamente le opzioni «-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021». Sono necessari compilatore rustc, generatore di binding bindgen, LLVM, strumenti SPIRV e traduttore SPIRV-LLVM-Translator come dipendenze.
- Nel driver RadeonSI è abilitato per impostazione predefinita il supporto per il rendering multithread tramite OpenGL.
- Presentato Mesa-DB, un nuovo tipo di cache per shader che salva i dati in un unico file.
- È stato aggiunto il supporto per le estensioni OpenGL:
- GL_ARB_shader_clock per llvmpipe.
- GL_KHR_blend_equation_advanced_coherent per zink.
- GL_NV_shader_atomic_float per llvmpipe.
- È stato aggiunto il supporto per le estensioni Vulkan:
- VK_KHR_shader_clock per lavapipe.
- VK_EXT_attachment_feedback_loop_layout per RADV, lavapipe.
- VK_KHR_global_priority per RADV.
- VK_EXT_load_store_op_none per RADV.
- VK_EXT_mutable_descriptor_type per RADV.
- VK_EXT_shader_atomic_float per lvp.
- VK_EXT_shader_atomic_float2 per lvp.
- VK_EXT_image_robustness per v3dv.
- VK_EXT_extended_dynamic_state3 per lavapipe, RADV e ANV.
- VK_EXT_extended_dynamic_state2 per RADV.
- VK_EXT_pipeline_robustness per v3dv.
- VK_EXT_mesh_shader per ANV.
Fonte: opennet.ru
