Dopo tre mesi di sviluppo, è stata rilasciata l'implementazione open source dell'API OpenGL e Vulkan — Mesa 26.0.0. La prima versione della serie Mesa 26.0.0 ha uno status sperimentale: dopo la stabilizzazione finale del codice, sarà rilasciata la versione stabile 26.0.1.
In Mesa 26.0 è disponibile il supporto per l'API grafica Vulkan 1.4 nei driver ANV per GPU Intel, RADV per GPU AMD, NVK per GPU NVIDIA, HoneyKrisp (hk) per GPU Apple, Turnip per GPU Qualcomm, PanVK per GPU ARM Mali, nel rasterizzatore software lavapipe (lvp) e nella modalità emulatore (vn). I driver v3dv (GPU Broadcom VideoCore per Raspberry Pi 4+) e dzn (implementazione di Vulkan sopra Direct3D 12) supportano Vulkan 1.0, il driver kk (KosmicKrisp, Vulkan sopra Metal) supporta Vulkan 1.1, e il driver pvr (GPU Imagination PowerVR) supporta Vulkan 1.2.
Mesa offre anche il supporto completo per OpenGL 4.6 per i driver iris (GPU Intel Gen 8+), radeonsi (AMD), Crocus (vecchie GPU Intel Gen4-Gen7), AMD (r600), zink, llvmpipe, virgl (GPU virtuale Virgil3D per QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (intermediario per gestire OpenGL sopra DirectX 12) e asahi (GPU AGX utilizzato nei chip Apple M1 e M2). Il supporto per OpenGL 4.5 è disponibile per GPU NVIDIA (nvc0). Il supporto per OpenGL 3.3 è presente nei driver softpipe (rasterizzatore software) e nv50 (NVIDIA NV50). Nei driver panfrost (GPU ARM Mali) e v3d (GPU Broadcom VideoCore) è supportato OpenGL 3.1.
Novità principali:
- Il driver RadeonSI è stato modificato per utilizzare per default la rappresentazione intermedia (IR) degli shader NIR e il backend di compilazione degli shader ACO, sviluppato da Valve come alternativa al compilatore degli shader LLVM. Il backend ACO è mirato a garantire una generazione del codice ottimale per gli shader delle applicazioni di gioco, e a raggiungere un'elevata velocità di compilazione. L'utilizzo di ACO consente di migliorare la velocità di compilazione degli shader, ridurre il consumo di memoria, diminuire la dimensione della rappresentazione binaria degli shader e generare codice più ottimizzato. Rispetto a LLVM, l'utilizzo del backend ACO ha permesso di ridurre fino a 8 volte il tempo di compilazione degli shader, riducendo notevolmente il tempo di avvio delle applicazioni.
- È stato presentato il driver Vulkan KosmicKrisp (kk), che implementa l'API grafica Vulkan sopra l'API Metal, sviluppata da Apple e utilizzata in macOS. Il driver è stato creato da LunarG per l'uso su computer Mac con chip Apple Silicon.
- Nel driver Vulkan RADV (GPU AMD), le performance del ray tracing sono state notevolmente migliorate.
- Nella variabile d'ambiente RADV_DEBUG, il supporto per le opzioni obsolete invariantgeom, nodynamicbounds, nongg_gs e splitfma è stato rimosso; al loro posto nel driconf devono essere utilizzate le variabili radv_invariant_geom, radv_no_dynamic_bounds, radv_disable_ngg_gs e radv_split_fma.
- Nel driver panfrost (GPU ARM Mali) è stato aggiunto il supporto per l'estensione OpenGL GL_EXT_shader_pixel_local_storage.
- È stato aggiunto il supporto per le estensioni Vulkan:
- VK_KHR_relaxed_block_layout per pvr
- VK_KHR_storage_buffer_storage_class per pvr
- VK_EXT_external_memory_acquire_unmodified per panvk
- VK_EXT_discard_rectangles per NVK
- VK_KHR_present_id per HoneyKrisp
- VK_KHR_present_id2 per HoneyKrisp
- VK_KHR_present_wait per HoneyKrisp
- VK_KHR_present_wait2 per HoneyKrisp
- VK_KHR_maintenance10 per ANV, NVK, RADV
- VK_EXT_shader_uniform_buffer_unsized_array per ANV, HK, NVK, RADV
- VK_EXT_device_memory_report per panvk
- VK_VALVE_video_encode_rgb_conversion per radv
- VK_EXT_custom_resolve per RADV
- VK_EXT_image_drm_format_modifier per panvk/v7
- VK_KHR_sampler_ycbcr_conversion per panvk/v7
- VK_KHR_surface_maintenance1 per anv, hk, lvp, nvk, radv, tu, v3dv, vn
- VK_KHR_swapchain_maintenance1 per anv, hk, lvp, nvk, radv, tu, v3dv, vn
-
Fonte: opennet.ru
