Релиз 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. VA-API представляет унифицированный интерфейс к аппаратным реализациям средств кодирования и декодирования видео, созданный компанией Intel для замены XvMC.
  • Для платформы Windows реализована поддержка EGL.
  • Для Wayland добавлена поддержка расширения EGL_EXT_present_opaque. Решены проблемы с отображением прозрачности в играх, запущенных в окружениях на базе протокола Wayland.

  • В Vulkan-драйверы RADV (AMD), ANV (Intel) и lavapipe добавлена поддержка расширений:
    • VK_EXT_shader_atomic_float2 (Intel, RADV).
    • VK_EXT_vertex_input_dynamic_state (RADV).

    • VK_EXT_primitive_topology_list_restart (RADV, lavapipe).

    • VK_KHR_shader_integer_dot_product (RADV).

    • VK_KHR_synchronization2 (Intel).

    • VK_KHR_maintenance4 (RADV).

    • VK_KHR_format_feature_flags2 (RADV).

    • VK_KHR_shader_subgroup_extended_types (lavapipe).

    • VK_KHR_spirv_1_4 (lavapipe).

    • VK_KHR_timeline_semaphore (lavapipe).

    • VK_EXT_external_memory_host (lavapipe).

    • VK_KHR_depth_stencil_resolve (lavapipe).

    • VK_KHR_shader_float16_int8 (lavapipe).

    • VK_EXT_color_write_enable (lavapipe).



Источник: http://www.opennet.ru/opennews/art.shtml? num=56182

© OpenNet