Mesa 21.1

Теги

Mesa — это свободная реализация графических API OpenGL и Vulkan с открытым исходным кодом, и других спецификаций, а также набор видеодрайверов пространства пользователя для GPU AMD/ATI Radeon, Intel, Nvidia, Qualcomm. 

Mesa ориентирована на обеспечение высокой производительности при работе с 3D-графикой, в том числе за счёт использования аппаратного ускорения работы с графикой, поддерживаемого графическими процессорами. Mesa, называемая также «Mesa3D», лежит в основе графического стека свободных UNIX-подобных операционных систем с открытым исходным кодом, в основном дистрибутивов GNU/Linux и дистрибутивов *BSD, так что на этих операционных системах без использования Mesa невозможно добиться работы графического интерфейса, окружения рабочего стола, современных приложений, использующих графический интерфейс, 3D-графики, в том числе игр, производительность в которых во многом зависит от развития Mesa.

Поэтому, для всех пользователей дистрибутивов GNU/Linux и *BSD, использующих графический интерфейс, Mesa является чрезвычайно важным компонентом их графического стека, и её регулярное обновление до самых новых версий имеет большое значение для всех пользователей свободных UNIX-подобных операционных систем. 

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

Изменения в новой версии:

  • В Vulkan-драйверы RADV (AMD) и ANV (Intel) добавлена поддержка расширений VK_KHR_workgroup_memory_explicit_layout и VK_KHR_zero_initialize_workgroup_memory.
  • В драйвер RADV (для карт AMD GFX9) добавлена поддержка модификаторов формата DRM (включено расширение VK_EXT_image_drm_format_modifier).
  • В драйвере RADV реализована поддержка VRS (Variable Rate Shading) для использования с любыми буферами глубины. VRS позволяет повысить производительность ценой снижения качества.
  • Добавлена поддержка GPU AMD Aldebaran (gfx90a).
  • Добавлен новый драйвер venus с реализацией виртуального GPU (virtio-gpu) на базе API Vulkan.
  • В драйвере Zink (реализация API OpenGL поверх Vulkan) включена поддержка OpenGL 4.6 и OpenGL ES 3.1. Zink позволяет получить аппаратно ускоренный OpenGL при наличии в системе драйверов, ограниченных поддержкой только API Vulkan. Производительность Zink близка к производительности родных реализаций OpenGL.
  • В драйвере lavapipe с реализацией программного растеризатора для API Vulkan (аналог llvmpipe, но для Vulkan) добавлена поддержка Vulkan 1.1 и реализовано Vulkan-расширение VK_KHR_copy_commands2. Программная реализация в lavapipe основана на отражении вызовов API Vulkan в API Gallium.
  • Добавлена поддержка хранения кэша шейдеров в одном файле.
  • В драйверах Virgl (виртуальный GPU Virgil3D для QEMU/KVM) и Lima (GPU ARM Mali) реализована поддержка кэширования шейдеров на диске.
  • В Gallium-драйвере D3D12 с прослойкой для организации работы OpenGL поверх API DirectX 12 (D3D12) обеспечена совместимость с OpenGL 3.3 при работе поверх D3D12-драйверов WARP (программный растеризатор) и NVIDIA. Драйвер применяется в прослойке WSL2 для запуска графических приложений Linux в Windows.
  • Добавлены новые расширения OpenGL:

        GL_EXT_depth_bounds_test для драйверов softpipe и zink

        GL_EXT_texture_filter_minmax для драйвера nvc0 (gm200+)

        GL_ARB_texture_filter_minmax для драйвера nvc0 (gm200+)

        GL_ARB_post_depth_coverage для драйвера zink. 


Помимо 3D-приложений, таких как, например, игры, современные менеджеры окон (X.org/Glamor или Wayland/Weston) тоже используют Vulkan/OpenGL/EGL.