Представлен релиз свободной реализации API OpenGL и Vulkan – Mesa 21.0.0. Первый выпуск ветки Mesa 21.0.0 имеет экспериментальный статус – после проведения окончательной стабилизации кода будет выпущена стабильная версия 21.0.1. В Mesa 21.0 реализована полная поддержка OpenGL 4.6 для драйверов 965, iris (Intel), radeonsi (AMD), zink и llvmpipe. Поддержка OpenGL 4.5 доступна для GPU AMD (r600) и NVIDIA (nvc0), а OpenGL 4.3 для virgl (виртуальный GPU Virgil3D для QEMU/KVM). Поддержка Vulkan 1.2 реализована для карт Intel и AMD, а Vulkan 1.0 для VideoCore VI (Raspberry Pi 4).
- В драйвере Zink (реализация API OpenGL поверх Vulkan) обеспечена поддержка OpenGL 4.6. Zink позволяет получить аппаратно ускоренный OpenGL при наличии в системе драйверов, ограниченных поддержкой только API Vulkan. Производительность Zink близка к производительности родных реализаций OpenGL.
- В драйвере llvmpipe, предназначенном для программной отрисовки, реализована поддержка OpenGL 4.6.
- В драйвере Freedreno, применяемом для графической подсистемы чипов Qualcomm, для GPU Adreno a6xx реализована поддержка OpenGL ES 3.0.
- В драйвере Panfrost для GPU Midgard (Mali-T7xx, Mali-T8xx) и Bifrost (Mali G3x, G5x, G7x) реализована поддержка OpenGL 3.1, а также поддержка OpenGL ES 3.0 для GPU Bifrost.
- В драйвере radeonsi реализована поддержка расширений OpenGL GL_EXT_demote_to_helper_invocation и GL_NV_compute_shader_derivatives. Для игры “Counter-Strike: Global Offensive” по умолчанию включён режим оптимизации “mesa_glthread”, позволяющий поднять производительность на 10-20%. Реализованы оптимизации, влияющие на прохождение тестов SPECViewPerf. Добавлена поддержка инструмента профилирования Radeon GPU Profiler (RGP). Для GPU Zen 3 и RDNA 2 добавлена поддержка технологии Smart Access Memory. Добавлена поддержка кодировщиков HEVC SAO (Sample Adaptive Offset, для GPU с поддержкой движков VCN2, VCN2.5 и VCN3) и декодировщиков AV1 (для RDNA 2/RX 6000 и только через интерфейс OpenMAX).
- В Vulkan-драйвер RADV (для карт AMD) добавлена поддержка технологии Rapid packed math (16-разрядная векторизация) и Sparse-памяти (позволяет размещать ресурсы, такие как изображения и текстуры, непоследовательно и повторно прикреплять их к разным операциям выделения памяти). Проведена оптимизация производительности для карт серии RX 6000.
Добавлены расширения VK_VALVE_mutable_descriptor_type и VK_KHR_fragment_shading_rate (только для RDNA2). - В драйверах Intel ANV и Iris добавлены оптимизации производительности и предложена начальная поддержка расширений Vulkan для трассировки лучей, реализованных в видеокартах Xe HPG.
- Добавлена поддержка расширения EGL_MESA_platform_xcb, позволяющего
приложениям создавать ресурсы EGL из ресурсов X11 без обращения к Xlib. - В Vulkan-драйвер V3DV, развиваемый для графического ускорителя VideoCore VI, применяемого в платах Raspberry Pi 4 на базе чипа Broadcom BCM2711, добавлена поддержка Wayland WSI (Windowing System Integration), позволяющая обращаться к API Vulkan из окружений на базе
Wayland. - Принята начальная реализация прослойки, транслирующей вызовы OpenGL в API DirectX 12, для организации работы графических приложений в окружении WSL (Windows Subsystem for Linux). Кроме того, в состав включена библиотека spirv_to_dxil для преобразования промежуточного представления шейдеров SPIR-V в DXIL (DirectX Intermediate Language), разработанная в Microsoft.
- Переработана и значительно улучшена поддержка ОС Haiku.
- Из driconf удалены настройки glx_disable_oml_sync_control, glx_disable_sgi_video_sync и glx_disable_ext_buffer_age.
- Удалена поддержка DRI1 и прекращена возможность загрузки драйверов DRI из версий Mesa ниже 8.0.
- Удалён драйвер swrast, построенный на базе классического интерфейса DRI и предназначенный для программной отрисовки OpenGL (оставшиеся драйверы программной отрисовки llvmpipe и softpipe заметно опережают swrast по производительности и функциональности). Удалению swrast способствовало наличие множества нерешённых проблем и возникновение регрессий, при том, что данный драйвер уже не применяется в дистрибутивах.
- Удалён старый классический вариант программного интерфейса OSMesa (оставлен OSMesa на базе Gallium), позволяющего осуществлять рендеринг не на экран, а в находящийся в памяти буфер.
Release.
Ссылка here.