Après trois mois de développement, le lancement de l'implémentation libre des API OpenGL et Vulkan — Mesa 25.2.0 est annoncé. La première version de la branche Mesa 25.2.0 est considérée comme expérimentale, et une version stable 25.2.1 sera publiée après la stabilisation finale du code.
Mesa 25.2 propose la prise en charge de l'API graphique Vulkan 1.4 dans les pilotes ANV pour les GPU Intel, RADV pour les GPU AMD, NVK pour les GPU NVIDIA, Asahi pour les GPU Apple, Turnip pour les GPU Qualcomm, PanVK pour les GPU ARM Mali, dans le rasterisateur logiciel lavapipe (lvp) et en mode émulateur (vn). Les pilotes v3dv (GPU Broadcom VideoCore pour Raspberry Pi 4+) et dzn (implémentation de Vulkan sur Direct3D 12) prennent en charge Vulkan 1.0.
Mesa assure également une prise en charge complète d'OpenGL 4.6 pour les pilotes iris (GPU Intel Gen 8+), radeonsi (AMD), Crocus (anciens GPU Intel Gen4-Gen7), AMD (r600), zink, llvmpipe, virgl (GPU virtuel Virgil3D pour QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (couche pour faire fonctionner OpenGL sur DirectX 12) et asahi (GPU AGX utilisé dans les puces Apple M1 et M2). La prise en charge d'OpenGL 4.5 est disponible pour les GPU NVIDIA (nvc0). La prise en charge d'OpenGL 3.3 est présente dans les pilotes softpipe (rasterisateur logiciel) et nv50 (NVIDIA NV50). Les pilotes panfrost (GPU ARM Mali) et v3d (GPU Broadcom VideoCore) prennent en charge OpenGL 3.1.
Les principales nouveautés :
- Dans le pilote Vulkan PanVK pour les appareils avec GPU ARM Mali basés sur l'architecture V10, tels que Mali-G610 et Mali-G310, la prise en charge de l'API graphique Vulkan 1.4 a été ajoutée (jusqu'ici seule la Vulkan 1.2 était supportée).
- Dans le pilote OpenGL r600 pour les anciens GPU AMD (jusqu'à la série Radeon HD 7000), la prise en charge de l'API graphique OpenGL 4.6 a été ajoutée (auparavant, OpenGL 4.5 était supporté).
- Dans le pilote Vulkan NVK, la prise en charge des GPU NVIDIA basés sur les microarchitectures Blackwell et Kepler (GTX 600/700) a été ajoutée. La prise en charge de Vulkan 1.4 est mise en œuvre pour les GPU Blackwell, tandis que pour les GPU Kepler, l'API Vulkan 1.2 est supportée (les versions plus récentes de Vulkan ne sont pas prises en charge en raison de limitations matérielles). La compatibilité complète avec Vulkan 1.4 est assurée pour les GPU NVIDIA basés sur l'architecture Maxwell.
- Le fonctionnement du compilateur de shaders NAK, écrit en Rust et utilisé dans le pilote NVK, a été optimisé. Le paquet crate rustc-hash a été inclus dans les dépendances du pilote NVK, ce qui a permis de réduire le temps de compilation des shaders d'environ 12%.
- La prise en charge d'OpenGL pour les GPU NVIDIA Maxwell, Pascal et Volta est par défaut passée du pilote Nouveau à l'utilisation du pilote Zink associé au pilote Vulkan NVK. Zink est également utilisé pour assurer la prise en charge d'OpenGL sur les systèmes avec GPU Blackwell (le pilote Nouveau n'envisage pas d'ajouter la prise en charge des GPU Blackwell). Zink fournit une implémentation d'OpenGL 4.6 sur Vulkan, permettant d'obtenir un OpenGL accéléré par le matériel sur les appareils prenant en charge l'API Vulkan. Les performances de Zink sont proches de celles des implémentations natives d'OpenGL.
- Les performances du pilote Vulkan Honeykrisp pour les processeurs graphiques fournis dans les puces Apple M1/M2 ont été considérablement améliorées.
- Le pilote Vulkan RADV (GPU AMD) et le pilote ANV (Intel) ont ajouté la prise en charge de l'accélération matérielle du décodage vidéo au format VP9. Cette fonctionnalité a été réalisée grâce à l'extension Vulkan VK_KHR_video_decode_vp9, préparée au printemps par le groupe de travail Vulkan WG. L'accélération matérielle est disponible pour les GPU AMD à partir du GPU Navi 10 basé sur l'architecture micro RDNA 1.0.
- Dans le pilote Vulkan RADV pour les GPU AMD basés sur les architectures micro RDNA3 et RDNA4, les performances du ray tracing ont été améliorées et la prise en charge de la technologie de supersampling FSR 4 (FidelityFX Super Resolution) a été développée. Ajout de la possibilité de configurer des priorités pour la file d'attente des commandes (extension OpenCL cl_khr_priority_hints).
- Dans le pilote OpenGL radeonsi pour les anciens modèles de GPU AMD Evergreen et Cayman, la prise en charge d'OpenGL 4.6 a été mise en œuvre. La prise en charge de la mémoire virtuelle partagée (SVM, Shared Virtual Memory) a été ajoutée.
- Dans le pilote OpenGL Iris et le pilote Vulkan ANV, la prise en charge des GPU utilisés dans les processeurs Intel Wildcat Lake a été réalisée. La prise en charge stable des GPU Intel basés sur l'architecture Xe3, utilisée dans les processeurs Panther Lake, a également été annoncée dans Iris et ANV. La prise en charge des familles de GPU Xe2 et Xe3 a été améliorée. Le pilote Iris a ajouté la prise en charge de la mémoire virtuelle partagée (SVM, Shared Virtual Memory).
- Dans le pilote OpenGL freedreno, la prise en charge du GPU Adreno X1-45, utilisé dans le SoC Qualcomm Snapdragon X Plus, a été ajoutée.
- Le développement du pilote OpenCL Rusticl, écrit en Rust et successeur du pilote Clover, se poursuit. Dans Rusticl, la prise en charge de la SVM (Shared Virtual Memory), des images dans l'espace colorimétrique sRGB (formats CL_sRGBA et CL_sBGRA), et du format FP16 (extension OpenCL cl_khr_fp16 pour les pilotes asahi, freedreno, llvmpipe, panfrost, radeonsi et zink) a été ajoutée.
- Ajout d'une interface Gallium3D MFT (Media Foundation Transform) permettant d'utiliser le pilote D3D12 (Direct3D 12) pour la mise en œuvre d'autres API graphiques. Développé par Microsoft pour WSL (Windows Subsystem for Linux).
- Support de l'infrastructure DRI2 (Direct Rendering Infrastructure) retiré, remplacé par l'interface DRI3, qui utilise DMA-BUF pour un accès direct au GPU. La raison évoquée est que l'interface DRI3 existe depuis plus de 10 ans, DRI2 étant obsolète, et tous les pilotes GPU pris en charge ont depuis longtemps adopté l'interface DRI3.
- Le support des méthodes obsolètes de gestion des tampons a été abandonné — seule la possibilité d'utiliser dma-buf est conservée.
- Le soutien des versions de libX11 n'assurant pas une opération sécurisée dans les applications multithread a été arrêté. Seule la version libX11 1.8 (avril 2022) et les versions ultérieures, utilisant l'appel XInitThreads(), sont conservées.
- Le support de l'extension EGL EGL_WL_bind_wayland_display, mise en œuvre pour Wayland, a été déclaré obsolète et désactivé par défaut. Pour l'échange des tampons de pixels entre le client et serveur Wayland, il est proposé d'utiliser le protocole Wayland linux_dmabuf. Pour restaurer le support, il est nécessaire d'indiquer le drapeau « -Dlegacy-wayland=bind-wayland-display » lors de la compilation. Xwayland fonctionne correctement sans EGL_WL_bind_wayland_display depuis la version 24.1 (mai 2024).
- Le pilote OpenCL Clover, obsolète, a été supprimé. Pour OpenCL, il est préférable d'utiliser le pilote RustiCL, qui est plus fonctionnel et prend en charge davantage de versions d'OpenCL.
- Une extension Vulkan a été mise en œuvre dans le pilote ANV (Intel) :
- VK_KHR_shader_bfloat16
- Des extensions Vulkan ont été mises en œuvre dans le pilote RADV (AMD) :
- VK_KHR_shader_bfloat16
- VK_KHR_robustness2
- VK_EXT_zero_initialize_device_memory
- VK_EXT_scalar_block_layout
- VK_KHR_maintenance9
- VK_KHR_unified_image_layouts
- VK_KHR_shader_float8
- VK_EXT_host_image_copy
- Des extensions Vulkan ont été mises en œuvre dans le pilote NVK (NVIDIA) :
- VK_EXT_zero_initialize_device_memory
- VK_KHR_cooperative_matrix
- Une extension Vulkan a été mise en œuvre dans le pilote zink :
- NV_timeline_semaphore
- Une extension OpenGL a été mise en œuvre dans le pilote v3d (GPU Broadcom VideoCore pour Raspberry Pi 4+) :
- on v3d GL_ARB_blend_func_extended
- Des extensions OpenGL ont été mises en œuvre dans le pilote panfrost :
- GL_KHR_texture_compression_astc_hdr
- GL_ARB_shader_clock
- GL_EXT_shader_realtime_clock
- Une extension OpenGL a été mise en œuvre dans le pilote asahi (Apple) :
- GL_KHR_texture_compression_astc_hdr
- Des extensions OpenGL ont été mises en œuvre dans le pilote r600 (AMD)
- GL_EXT_window_rectangles
- GL_EXT_shader_image_load_store
- Des extensions Vulkan ont été mises en œuvre dans le pilote PanVK (GPU ARM Mali) :
- VK_EXT_vertex_input_dynamic_state/vertexInputDynamicState
- VK_EXT_vertex_input_dynamic_state
- VK_EXT_vertex_attribute_divisor
- VK_KHR_maintenance4
- VK_KHR_maintenance5
- VK_EXT_direct_mode_display
- VK_EXT_extended_dynamic_state
- VK_KHR_shader_quad_control
- VK_KHR_draw_indirect_count
- VK_KHR_shader_integer_dot_product
- VK_KHR_shader_terminate_invocation
- VK_EXT_shader_demote_to_helper_invocation
- VK_EXT_shader_replicated_composites
- VK_EXT_depth_bias_control
- VK_EXT_primitive_topology_list_restart
- VK_EXT_image_2d_view_of_3d
- VK_EXT_texel_buffer_alignment
- VK_EXT_shader_subgroup_ballot
- VK_EXT_shader_subgroup_vote
- VK_KHR_load_store_op_none
- VK_EXT_load_store_op_none
- VK_EXT_inline_uniform_block
- VK_EXT_texture_compression_astc_hdr
- VK_EXT_depth_clamp_zero_one
- VK_KHR_depth_clamp_zero_one
- VK_EXT_depth_clip_control
- VK_KHR_unified_image_layouts
- VK_KHR_vulkan_memory_model
- VK_EXT_descriptor_indexing
- VK_KHR_maintenance6
- VK_KHR_shader_clock
- VK_KHR_shader_atomic_int64
- VK_KHR_calibrated_timestamps
- VK_EXT_non_seamless_cube_map
- VK_ARM_shader_core_properties
- VK_KHR_host_image_copy
Source : opennet.ru
