После трёх месяцев разработки представлен релиз свободной реализации API OpenGL и Vulkan – Mesa 25.2.0. Первый выпуск ветки Mesa 25.2.0 имеет экспериментальный статус – после проведения окончательной стабилизации кода будет выпущена стабильная версия 25.2.1.
В Mesa 25.2 доступна поддержка графического API Vulkan 1.4 в драйверах ANV для GPU Intel, RADV для GPU AMD, NVK для GPU NVIDIA, Asahi для GPU Apple, Turnip для GPU Qualcomm, PanVK для GPU ARM Mali, в программном растеризаторе lavapipe (lvp) и в режиме эмулятора (vn). В драйверах v3dv (GPU Broadcom VideoCore для Raspberry Pi 4+) и dzn (реализация Vulkan поверх Direct3D 12) поддерживается Vulkan 1.0.
В Mesa также обеспечивается полная поддержка OpenGL 4.6 для драйверов iris (GPU Intel Gen 8+), radeonsi (AMD), Crocus (старые GPU Intel Gen4-Gen7), AMD (r600), zink, llvmpipe, virgl (виртуальный GPU Virgil3D для QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (прослойка для организации работы OpenGL поверх DirectX 12) и asahi (GPU AGX, используемый в чипах Apple M1 и M2). Поддержка OpenGL 4.5 доступна для GPU NVIDIA (nvc0). Поддержка OpenGL 3.3 присутствует в драйверах softpipe (программный растеризатор) и nv50 (NVIDIA NV50). В драйверах panfrost (GPU ARM Mali) и v3d (GPU Broadcom VideoCore) поддерживается OpenGL 3.1.
Основные новшества:
- В Vulkan-драйвер PanVK для устройств с GPU ARM Mali на базе архитектуры V10, таких как Mali-G610 и Mali-G310, добавлена поддержка графического API Vulkan 1.4 (ранее поддерживался Vulkan 1.2).
- В OpenGL-драйвер r600 для старых GPU AMD (до серии Radeon HD 7000 включительно) добавлена поддержка графического API OpenGL 4.6 (ранее поддерживался OpenGL 4.5).
- В Vulkan-драйвер NVK добавлена поддержка GPU NVIDIA на базе микроархитектур Blackwell и Kepler (GTX 600/700). Для GPU Blackwell реализована поддержка Vulkan 1.4, а для GPU Kepler – API Vulkan 1.2 (более новые версии Vulkan не поддерживаются из-за аппаратных ограничений). Для GPU NVIDIA на базе микроархитектуры Maxwell обеспечена полная совместимость с Vulkan 1.4.
- Оптимизирована работа компилятора шейдеров NAK, написанного на языке Rust и применяемого в драйвере NVK. В число зависимостей к драйверу NVK включён crate-пакет rustc-hash, благодаря которому удалось сократить время компиляции шейдеров примерно на 12%.
- Поддержка OpenGL для GPU NVIDIA Maxwell, Pascal и Volta переключена по умолчанию с драйвера Nouveau на использование драйвера Zink в связке с Vulkan-драйвером NVK. Zink также задействован для обеспечения поддержки OpenGL на системах с GPU Blackwell (в OpenGL-драйвер Nouveau добавлять поддержку GPU Blackwell не планируют).
Zink предоставляет реализацию OpenGL 4.6 поверх Vulkan, позволяющую получить аппаратно ускоренный OpenGL на устройствах, поддерживающих API Vulkan. Производительность Zink близка к производительности родных реализаций OpenGL. - Значительно повышена производительность Vulkan-драйвера Honeykrisp для графических процессоров, поставляемых в чипах Apple M1/M2.
- В Vulkan-драйверы RADV (GPU AMD) и ANV (Intel) добавлена поддержка аппаратного ускорения декодирования видео в формате VP9. Возможность реализована при помощи Vulkan-расширения VK_KHR_video_decode_vp9, весной подготовленного рабочей группой Vulkan WG. Аппаратное ускорение доступно для GPU AMD начиная с GPU Navi 10 на базе микроархитектуры RDNA 1.0.
- В Vulkan-драйвере RADV для GPU AMD на базе микроархитектур RDNA3 и RDNA4 повышена производительность трассировки лучей и улучшена поддержка технологии суперсэмплинга FSR 4 (FidelityFX Super Resolution). Добавлена возможность настройки приоритетов для очереди потока команд (OpenCL-расширение cl_khr_priority_hints).
- В OpenGL-драйвере radeonsi для старых семейств GPU AMD Evergreen и Cayman реализована поддержка OpenGL 4.6. Добавлена поддержка разделяемой виртуальной памяти (SVM, Shared Virtual Memory).
- В OpenGL-драйвере Iris и Vulkan-драйвере ANV реализована поддержка GPU, применяемых в процессорах Intel Wildcat Lake. В Iris и ANV также объявлена стабильной поддержка GPU Intel на базе архитектуры Xe3, задействованной в процессорах Panther Lake. Улучшена поддержка семейств GPU Xe2 и Xe3.
В драйвер Iris добавлена поддержка разделяемой виртуальной памяти (SVM, Shared Virtual Memory). - В OpenGL-драйвер freedreno добавлена поддержка GPU Adreno X1-45, применяемом в SoC Qualcomm Snapdragon X Plus.
- Продолжено развитие OpenCL-драйвера Rusticl, написанного на языке Rust и пришедшего на смену драйверу Clover. В Rusticl добавлена поддержка
SVM (Shared Virtual Memory), изображений в цветовом пространстве sRGB (форматы CL_sRGBA и CL_sBGRA), формата FP16 (OpenCL-расширение cl_khr_fp16 для драйверов asahi, freedreno, llvmpipe, panfrost, radeonsi и zink). - Добавлен Gallium3D-фронтэнд MFT (Media Foundation Transform), позволяющий использовать драйвер D3D12 (Direct3D 12) для реализации других графических API. Разработан Microsoft для WSL (Windows Subsystem for Linux).
- Удалена поддержка инфраструктуры DRI2 (Direct Rendering Infrastructure), на смену которой для организации прямого доступа к видеоадаптеру пришёл интерфейс DRI3, использующий DMA-BUF. В качестве причины упоминается, что интерфейс DRI3 существует уже более 10 лет, DRI2 давно устарел, а все поддерживаемые драйверы GPU давно реализовали интерфейс DRI3.
- Прекращена поддержка устаревших методов совместной работы с буферами – оставлена только возможность использования dma-buf.
- Прекращена поддержка версий libX11, не обеспечивающих безопасную работу в многопоточных приложениях. Оставлена только поддержка libX11 1.8 (апрель 2022 года) и более новых выпусков, использующих вызов XInitThreads().
- Объявлена устаревшей и отключена по умолчанию поддержка EGL-расширения EGL_WL_bind_wayland_display, реализованного для Wayland. Для обмена пиксельными буферами между клиентом и сервером Wayland предлагается использовать Wayland-протокол linux_dmabuf. Для возвращения поддержки требуется указание флага “-Dlegacy-wayland=bind-wayland-display” во время сборки. Xwayland поддерживает корректную работу без
EGL_WL_bind_wayland_display начиная с выпуска 24.1 (май 2024 года). - Удалён устаревший OpenCL-драйвер Clover. Для OpenCL слежует использовать драйвер RustiCL, более функциональный и поддерживающий больше версий OpenCL.
- В драйвере ANV (Intel) реализовано Vulkan-расширение:
- В драйвере RADV (AMD) реализованы Vulkan-расширения:
- В драйвере NVK (NVIDIA) реализованы Vulkan-расширения:
- В драйвере zink реализовано Vulkan-расширение:
- В драйвере v3d (GPU Broadcom VideoCore для Raspberry Pi 4+) реализовано OpenGL-расширение:
- В драйвере panfrost реализованы OpenGL-расширения:
- В драйвере asahi (Apple) реализовано OpenGL-расширение:
- В драйвере r600 (AMD) реализованы OpenGL-расширения
- В драйвере PanVK (GPU ARM Mali) реализованы Vulkan-расширения:
- 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