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
