Dopo tre mesi di sviluppo, è stata rilasciata l'implementazione gratuita delle API OpenGL e Vulkan — Mesa 25.1.0. La prima versione della serie Mesa 25.1.0 ha uno stato sperimentale e, dopo una stabilizzazione finale del codice, verrà rilasciata una versione stabile 25.1.1.
In Mesa 25.1 è disponibile il supporto per l'API grafica Vulkan 1.4 nei driver ANV per GPU Intel, RADV per GPU AMD, NVK per GPU NVIDIA, Asahi per GPU Apple, Turnip per GPU Qualcomm, nel rasterizzatore software lavapipe (lvp) e in modalità emulatore (vn). Nel driver PanVK per GPU ARM Mali è disponibile Vulkan 1.2, mentre nei driver v3dv (GPU Broadcom VideoCore per Raspberry Pi 4+) e dzn (implementazione di Vulkan sopra Direct3D 12) è disponibile Vulkan 1.0.
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 usato 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). Nei driver panfrost (GPU ARM Mali) e v3d (GPU Broadcom VideoCore) è supportato OpenGL 3.1.
Novità principali:
- Nel driver PanVK è stata implementata la compatibilità con l'API grafica Vulkan 1.2 per GPU ARM Mali basate sull'architettura micro-architettura v10+. È stata aggiunta la compatibilità con gli spazi colore YCbCr. Sono stati implementati i tipi storagePushConstant16, storageInputOutput16 e shaderFloat16. È stata aggiunta la compatibilità con le GPU Mali G720 e G725. È stato garantito il supporto per il metodo di antialiasing MSAA (Multisample anti-aliasing) nelle modalità con 8 e 16 campioni di colore per ogni pixel.
- Nel driver OpenGL Panfrost è stata implementata la compatibilità con le GPU Mali G720, G725 e G925.
- In modalità emulatore (vn) è apparso il supporto per l'API Vulkan 1.4.
- Lo sviluppo del driver Asahi per le GPU Apple AGX, utilizzate nei chip Apple Silicon, è stato completamente trasferito a Mesa, e il suo UAPI è stato accettato nel kernel Linux. I sistemi operativi non hanno più bisogno di utilizzare build separate di questo driver.
- Il driver Vulkan NVK è utilizzato di default per le GPU NVIDIA Maxwell (GTX 700/800/900), Pascal (GTX 1000) e Volta (TITAN V), per le quali è stata implementata la piena compatibilità con Vulkan 1.4. In precedenza, la compatibilità con Vulkan 1.4 in NVK era garantita solo per le GPU NVIDIA basate su architetture Turing (serie GeForce GTX 16xx, RTX 20xx e Quadro RTX), Ampere (serie GeForce RTX 30xx e RTX A2000/4000/5000/6000) e Ada (serie GeForce RTX 4xxx, RTX 4000 SFF, RTX 4xxx/5000/6000 Ada). È stato aggiunto il supporto per l'estensione Vulkan VK_MESA_image_alignment_control.
- Il supporto OpenGL per le GPU NVIDIA, a partire dall'architettura Turing, è stato cambiato di default dal driver Nouveau (nvc0) al driver OpenGL Zink in combinazione con il driver Vulkan NVK. Zink fornisce un'implementazione di OpenGL 4.6 su Vulkan, consentendo l'accelerazione hardware di OpenGL su dispositivi che supportano l'API Vulkan. Le prestazioni di Zink sono paragonabili a quelle delle implementazioni native di OpenGL.
- Nell'interfaccia di integrazione dell'API grafica Vulkan con i sistemi di finestre (WSI, Windowing System Integration) è stata implementata la supporto per il protocollo Wayland di gestione del colore, che offre funzionalità per la gestione del colore e il supporto dell'ampio intervallo dinamico di luminosità (HDR, High Dynamic Range).
- Nel driver Vulkan ANV (Intel) è stato migliorato il supporto per le GPU Intel basate sull'architettura Xe2, come l'Intel Core Ultra Xe2 con grafica integrata Intel Arc e le GPU discrete Intel Arc B580/B570 «Battlemage».
- Nel driver Vulkan RADV (AMD) è stato migliorato il supporto per le GPU della serie Radeon RX 9000 (RDNA4/GFX12). È stata aggiunta una modalità di codifica video a bassa latenza. È stato fornito il supporto per le estensioni Vulkan VK_EXT_device_memory_report e VK_EXT_sample_locations.
- Nel driver OpenGL Etnaviv per GPU Vivante è stato aggiunto il supporto all'estensione OpenGL KHR_partial_update.
- Nel driver OpenGL v3d (GPU Broadcom VideoCore per Raspberry Pi) è stato aggiunto il supporto per le estensioni OpenGL EXT_shader_framebuffer_image_fetch, EXT_shader_framebuffer_image_fetch_coherent, KHR_blend_equation_advanced e KHR_blend_equation_advanced_coherent.
- Il driver OpenCL Clover è stato dichiarato obsoleto, sostituito dal driver Rusticl, scritto in Rust.
- Nel driver Rusticl è stato aggiunto il supporto per l'estensione OpenCL cl_khr_spirv_linkonce_odr.
- Nel driver PanVK sono implementate le estensioni Vulkan:
- VK_KHR_depth_stencil_resolve
- VK_KHR_separate_depth_stencil_layouts
- VK_EXT_separate_stencil_usage
- VK_KHR_sampler_ycbcr_conversion
- VK_EXT_ycbcr_2plane_444_formats
- VK_EXT_ycbcr_image_arrays
- VK_KHR_imageless_framebuffer
- VK_KHR_uniform_buffer_standard_layout
- VK_EXT_border_color_swizzle
- VK_KHR_shader_subgroup_uniform_control_flow
- VK_KHR_shader_maximal_reconvergence
- VK_KHR_shader_subgroup_extended_types
- VK_KHR_display
- VK_EXT_display_control
- VK_KHR_line_rasterization
- VK_EXT_line_rasterization
- VK_KHR_shader_float_controls
- VK_KHR_shader_float_controls2
- VK_KHR_spirv_1_4
- VK_KHR_dynamic_rendering_local_read
- VK_EXT_subgroup_size_control
- VK_KHR_format_feature_flags2
- VK_EXT_direct_mode_display
- Il tracker di stato gallium-nine, che supporta l'API Direct3D 9, è stato dichiarato obsoleto e programmato per la rimozione nella prossima versione.
- Il tracker di stato "gallium-xa", che supporta il virtual GPU VMWare ("vmwgfx"), è stato dichiarato obsoleto e programmato per la rimozione nella prossima versione.
Fonte: opennet.ru
