27.09.2021

Mesa 21.2

Вышла новая версия свободной реализации API OpenGL и Vulkan — Mesa 21.2

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

  • Добавлен OpenGL-драйвер asahi с начальной поддержкой графического процессора, поставляемого в чипах Apple M1. Драйвер использует интерфейс Gallium и поддерживает большую часть возможностей OpenGL 2.1 и OpenGL ES 2.0. Код драйвера основан на эталонном Gallium-драйвере noop с переносом некоторого кода из драйвера Panfrost, развиваемого для GPU ARM Mali.
  • Добавлен OpenGL-драйвер Crocus с поддержкой старых GPU Intel (на базе микроархитектур с 4-го по 7-ое поколение), не поддерживаемых драйвером Iris. В отличие от драйвера i965 новый драйвер основан на архитектуре Gallium3D, выносящей задачи управления памятью на сторону DRI-драйвера в ядре Linux и предоставляющей готовый трекер состояний с поддержкой кэша повторного использования выводимых объектов.
  • Добавлен драйвер PanVk, предоставляющий поддержку графического API Vulkan для GPU ARM Mali Midgard и Bifrost. PanVk развивается сотрудниками компании Collabora и позиционируется как продолжение развития проекта Panfrost, обеспечивающего поддержку OpenGL.
  • В драйвере Panfrost для GPU Midgard (Mali T760 и новее) и GPU Bifrost (Mali G31, G52, G76) реализована поддержка OpenGL ES 3.1. Из дальнейших планов отмечается проведение работы по увеличению производительности на чипах Bifrost и реализация поддержки GPU на базе архитектуры Valhall (Mali G77 и новее).
  • В 32-разрядных сборках для архитектуры x86 вместо инструкций x87 для математических вычислений задействованы инструкции sse2.
  • В драйвере Nouveau nv50 для GPU NVIDIA GT21x (GeForce GT 2×0) реализована поддержка OpenGL ES 3.1.
  • В Vulkan-драйвер TURNIP и OpenGL-драйвер Freedreno, развиваемых для GPU Qualcomm Adreno, реализована начальная поддержка GPU Adreno a6xx gen4 (a660, a635).
  • В Vulkan-драйвер RADV (AMD) добавлена поддержка отсеивания примитивов (primitive culling) с использованием шейдерных движков NGG (Next-Gen Geometry). Реализована возможность сборки драйвера RADV на платформе Windows с использованием компилятора MSVC.
  • В Vulkan-драйвере ANV (Intel) и OpenGL-драйвере Iris проведена подготовительная работа по обеспечению поддержки грядущих видеокарт Intel Xe-HPG (DG2). В том числе включены начальные возможности, связанные с трассировкой лучей и поддержкой шейдеров для трассировки лучей.
  • В драйвере lavapipe с реализацией программного растеризатора для API Vulkan (аналог llvmpipe, но для Vulkan, выполняющий трансляцию вызовов API Vulkan в API Gallium) реализована поддержка режима wideLines (обеспечивает поддержку линий с шириной, превышающей значение 1.0).
  • Реализована поддержка динамического обнаружения и загрузки альтернативных бэкендов GBM (Generic Buffer Manager). Изменение нацелено на улучшение поддержки Wayland на системах с драйверами NVIDIA.
  • В драйвере Zink (реализация API OpenGL поверх Vulkan, которая позволяет получить аппаратно ускоренный OpenGL при наличии в системе драйверов, ограниченных поддержкой только API Vulkan) реализована поддержка OpenGL-расширений GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_vote, GL_ARB_texture_filter_minmax и GL_ARB_shader_clock. Добавлены модификаторы формата DRM (Direct Rendering Manager, включено расширение VK_EXT_image_drm_format_modifier).
  • В Vulkan-драйверы RADV (AMD), ANV (Intel) и lavapipe добавлена поддержка расширений:
VK_EXT_provoking_vertex (RADV);
VK_EXT_extended_dynamic_state2 (RADV);
VK_EXT_global_priority_query (RADV);
VK_EXT_physical_device_drm (RADV);
VK_KHR_shader_subgroup_uniform_control_flow (RADV, ANV);
VK_EXT_color_write_enable (RADV);
VK_EXT_acquire_drm_display (RADV, ANV);
VK_EXT_vertex_input_dynamic_state (lavapipe);
VK_EXT_line_rasterization (lavapipe);
VK_EXT_multi_draw (ANV, lavapipe, RADV);
VK_KHR_separate_depth_stencil_layouts (lavapipe);
VK_EXT_separate_stencil_usage (lavapipe);
VK_EXT_extended_dynamic_state2 (lavapipe).

>>> Подробности

Источник.