14.08.2022

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

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

В Mesa 21.3 реализована полная поддержка 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, а также в режиме эмулятора (vn) и в программном растеризаторе lavapipe, поддержка Vulkan 1.1 доступна для GPU Qualcomm и программного растеризатора lavapipe, а Vulkan 1.0 для GPU Broadcom VideoCore VI (Raspberry Pi 4).

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

  • В драйвере Zink (реализация API OpenGL поверх Vulkan, которая позволяет получить аппаратно ускоренный OpenGL при наличии в системе драйверов, ограниченных поддержкой только API Vulkan) реализована поддержка OpenGL ES 3.2.
  • Драйвер Panfrost, рассчитанный на работу с GPU на базе микроархитектур Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) и Bifrost (Mali G3x, G5x, G7x), официально сертифицирован на совместимость с OpenGL ES 3.1.
  • В драйвере v3dv, развиваемом для графического ускорителя VideoCore VI, применяемого начиная с модели Raspberry Pi 4, сертифицирована поддержка графического API Vulkan 1.1, а также добавлена поддержка геометрических шейдеров. Значительно повышена производительность кода, генерируемого компилятором шейдеров, что положительно сказалось на скорости работы программ, активно использующих шейдеры, например игр на базе движка Unreal Engine 4.
  • В Vulkan-драйвер RADV (AMD) добавлена экспериментальная поддержка трассировкой лучей и шейдеров для трассировки лучей. Для карт GFX10.3 включена по умолчанию поддержка отсеивания примитивов (primitive culling) с использованием шейдерных движков NGG (Next-Gen Geometry).
  • OpenGL-драйвере Iris (новый драйвер для GPU Intel) добавлена возможность многопоточной компиляции шейдеров.
  • В драйвере lavapipe с реализацией программного растеризатора для API Vulkan (аналог llvmpipe, но для Vulkan, выполняющий трансляцию вызовов API Vulkan в API Gallium)) реализована поддержка анизотропной фильтрации текстур и добавлена поддержка Vulkan 1.2.
  • В OpenGL-драйвере llvmpipe, предназначенном для программной отрисовки, в 2-3 раза увеличена производительность при выполнении действий, связанных с 2D-операциями. Добавлена поддержка операций FP16, анизотропной фильтрации текстур (GL_ARB_texture_filter_anisotropic) и закрепления областей памяти (GL_AMD_pinned_memory). Обеспечена поддержка профиля совместимости с OpenGL 4.5.
  • В трекере состояний VA-API (Video Acceleration API) реализована поддержка ускорения кодирования и декодирования видео AV1 при использовании драйверов для GPU AMD.
  • Для платформы Windows реализована поддержка EGL.
  • Для Wayland добавлена поддержка расширения EGL_EXT_present_opaque. Решены проблемы с отображением прозрачности в играх, запущенных в окружениях на базе протокола Wayland.
  • В Vulkan-драйверы RADV (AMD), ANV (Intel) и lavapipe добавлена поддержка расширений:

Источник.