Релиз Mesa 25.1, свободной реализации OpenGL и Vulkan

После трёх месяцев разработки представлен релиз свободной реализации API OpenGL и Vulkan – Mesa 25.1.0. Первый выпуск ветки Mesa 25.1.0 имеет экспериментальный статус – после проведения окончательной стабилизации кода будет выпущена стабильная версия 25.1.1.

В Mesa 25.1 доступна поддержка графического API Vulkan 1.4 в драйверах ANV для GPU Intel, RADV для GPU AMD, NVK для GPU NVIDIA, Asahi для GPU Apple, Turnip для GPU Qualcomm, в программном растеризаторе lavapipe (lvp) и
в режиме эмулятора (vn). В драйвере PanVK для GPU ARM Mali – Vulkan 1.2, а в драйверах 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), zink, llvmpipe, virgl (виртуальный GPU Virgil3D для QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (прослойка для организации работы OpenGL поверх DirectX 12) и asahi (GPU AGX, используемый в чипах Apple M1 и M2). Поддержка OpenGL 4.5 доступна для GPU AMD (r600) и NVIDIA (nvc0). Поддержка OpenGL 3.3 присутствует в драйверах softpipe (программный растеризатор) и nv50 (NVIDIA NV50). В драйверах panfrost (GPU ARM Mali) и v3d (GPU Broadcom VideoCore) поддерживается OpenGL 3.1.

Основные новшества:

  • В драйвере PanVK реализована поддержка графического API Vulkan 1.2 для GPU ARM Mali
    на базе микроархитектуры v10+. Добавлена поддержка цветовых пространств YCbCr.
    Реализованы типы storagePushConstant16, storageInputOutput16 и shaderFloat16. Добавлена поддержка GPU Mali G720 и G725. Обеспечена поддержка метода сглаживания MSAA (Multisample anti-aliasing) в режимах с 8 и 16 пробами цвета для каждого пикселя.
  • В OpenGL-драйвере Panfrost реализована поддержка GPU Mali G720, G725 и G925.
  • В режиме эмулятора (vn) появилась поддержка API Vulkan 1.4.
  • Разработка драйвера Asahi для GPU Apple AGX, применяемых в чипах Apple Silicon, полностью перенесена в Mesa, а в состав ядра Linux принят его UAPI. Дистрибутивам больше не нужно использовать отдельные сборки данного драйвера.
  • Vulkan-драйвер NVK задействован по умолчанию для GPU NVIDIA Maxwell (GTX 700/800/900), Pascal (GTX 1000) и Volta (TITAN V), для которых реализована полная поддержка Vulkan 1.4. Ранее совместимость с Vulkan 1.4 в NVK была обеспечена только для GPU NVIDIA на базе микроархитектур Turing (серии GeForce GTX 16xx, RTX 20xx и Quadro RTX), Ampere (серии GeForce RTX 30xx и RTX A2000/4000/5000/6000) и Ada (серии GeForce RTX 4xxx, RTX 4000 SFF, RTX 4xxx/5000/6000 Ada). Добавлена поддержка Vulkan-расширения VK_MESA_image_alignment_control.
  • Поддержка OpenGL для GPU NVIDIA, начиная с микроархитектуры Turing, переключена по умолчанию с драйвера Nouveau (nvc0) на OpenGL-драйвер Zink в связке с Vulkan-драйвером NVK. Zink предоставляет реализацию OpenGL 4.6 поверх Vulkan, позволяющую получить аппаратно ускоренный OpenGL на устройствах, поддерживающих API Vulkan. Производительность Zink близка к производительности родных реализаций OpenGL.
  • В интерфейсе интеграции графического API Vulkan с оконными системами (WSI, Windowing System Integration) реализована поддержка Wayland-протокола color-management, предоставляющего возможности для управления цветом и поддержки расширенного динамического диапазона яркости (HDR, High Dynamic Range).
  • В Vulkan-драйвере ANV (Intel) улучшена поддержка GPU Intel на базе архитектуры Xe2, таких как Intel Core Ultra Xe2 с интегрированной графикой Intel Arc и дискретные GPU Intel Arc B580/B570 “Battlemage”.
  • В Vulkan-драйвере RADV (AMD) улучшена поддержка GPU
    серии Radeon RX 9000 (RDNA4/GFX12). Добавлен режим кодирования видео с низкими задержками. Обеспечена поддержка Vulkan-расширений VK_EXT_device_memory_report и VK_EXT_sample_locations.
  • В OpenGL-драйвер Etnaviv для GPU Vivante добавлена поддержка OpenGL-расширения KHR_partial_update.
  • В OpenGL-драйвер v3d (GPU Broadcom VideoCore для Raspberry Pi) добавлена поддержка OpenGL-расширенийEXT_shader_framebuffer_image_fetch,EXT_shader_framebuffer_image_fetch_coherent,KHR_blend_equation_advanced и KHR_blend_equation_advanced_coherent.
  • Объявлен устаревшим OpenCL-драйвер Clover, на смену которому пришёл драйвер Rusticl, написанный на языке Rust.
  • В драйвер Rusticl добавлена поддержка OpenCL-расширения cl_khr_spirv_linkonce_odr.
  • В драйвере PanVK реализованы 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
  • Объявлен устаревшим и запланирован для удаления в следующем выпуске трекер состояний gallium-nine, обеспечивающий поддержку API Direct3D 9.
  • Объявлен устаревшим и запланирован для удаления в следующем выпуске трекер состояний “gallium-xa”, обеспечивающий поддержку виртуального GPU VMWare (“vmwgfx”).
Release. Ссылка here.