04.07.2022

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

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

В Mesa 22.1 доступна поддержка графического API Vulkan 1.3 в драйверах anv для GPU Intel, radv для GPU AMD и программном растеризаторе lavapipe. Поддержка Vulkan 1.2 реализована в режиме эмулятора (vn), Vulkan 1.1 — в драйвере для GPU Qualcomm (tu). а Vulkan 1.0 в драйвере для GPU Broadcom VideoCore VI (Raspberry Pi 4). В Mesa также обеспечивается полная поддержка 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) и vmwgfx (VMware).

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

  • В Vulkan-драйвере ANV (Intel) и OpenGL-драйвере Iris реализована поддержка дискретных видеокарт Intel DG2 (Arc Alchemist) и Arctic Sound-M.
  • В драйвере D3D12 с прослойкой для организации работы OpenGL поверх API DirectX 12 (D3D12) обеспечена совместимость с OpenGL 4.2. Драйвер применяется в прослойке WSL2 для запуска графических приложений Linux в Windows.
  • В драйвере lavapipe с реализацией программного растеризатора для API Vulkan (аналог llvmpipe, но для Vulkan, выполняющий трансляцию вызовов API Vulkan в API Gallium) реализована поддержка Vulkan 1.3.
  • Добавлена поддержка GPU AMD GFX1036 и GFX1037.
  • В драйвере RADV (AMD) реализована возможность отсеивания примитивов при трассировке лучей (ray primitive culling), что улучшило поддержку трассировки лучей для игр, таких как DOOM Eternal.
  • Предложена начальная реализация драйвера Vulkan для GPU на базе архитектуры PowerVR Rogue, развиваемой компанией Imagination.
  • Драйвер Nouveau для старых GPU GeForce 6/7/8 переведён на использование бестипового промежуточного представление (IR) шейдеров NIR. Поддержка NIR также позволяет получить поддержку промежуточного представления TGSI (Tungsten Graphics Shader Infrastructure) через задействование слоя для трансляции NIR в TGSI.
  • В состав включён компактный компилятор OpenCL, предложенный компанией Intel и используемый при трассировке лучей.
  • В OpenGL-драйвере v3d, развиваемом для графического ускорителя VideoCore VI, применяемого начиная с модели Raspberry Pi 4, реализована поддержка кэширования шейдеров на диске.
  • Для GPU AMD, оснащённым движком обработки видео VCN 2.0,
    реализована поддержка EFC (Encoder Format Conversion), позволяющая использовать аппаратный кодировщик видео для прямого чтения RGB-поверхностей без преобразований RGB->YUV, выполняемых шейдерами.
  • В драйвере Crocus, развиваемом для старых GPU Intel на базе микроархитектур Gen4-Gen7, не поддерживаемых драйвером Iris, включён профиль совместимости со старыми версиями OpenGL.
  • В драйвере PanVk, предоставляющем поддержку графического API Vulkan для GPU ARM Mali Midgard и Bifrost, началась работа по поддержке вычислительных шейдеров.
  • В драйвер Venus с реализацией виртуального GPU (virtio-gpu) на базе API Vulkan добавлена поддержка прослойки ANGLE, отвечающей за трансляцию вызовов OpenGL ES в OpenGL, Direct3D 9/11, Desktop GL и Vulkan.
  • Добавлена поддержка предложенного компанией NVIDIA OpenGL-расширения GL_NV_pack_subimage, предназначенного для обновления прямоугольников в памяти хоста с использованием данных из фреймбуфера или текстуры.
  • В Vulkan-драйверы RADV (AMD), ANV (Intel) и lavapipe добавлена поддержка расширений:

Источник.