Mesa 21.0

Теги

Mesa — это свободная реализация графических API OpenGL и Vulkan с открытым исходным кодом.

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

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

Обновление основного кода драйвера:

  • В драйвере Zink (реализация API OpenGL поверх Vulkan) обеспечена поддержка OpenGL 4.6. Zink позволяет получить аппаратно ускоренный OpenGL при наличии в системе драйверов, ограниченных поддержкой только API Vulkan. Производительность Zink близка к производительности родных реализаций OpenGL.
  • В драйвере llvmpipe, предназначенном для программной отрисовки, реализована поддержка OpenGL 4.6.
  • В драйвере Freedreno, применяемом для графической подсистемы чипов Qualcomm, для GPU Adreno a6xx реализована поддержка OpenGL ES 3.0.
  • В драйвере Panfrost для GPU Midgard (Mali-T7xx, Mali-T8xx) и Bifrost (Mali G3x, G5x, G7x) реализована поддержка OpenGL 3.1, а также поддержка OpenGL ES 3.0 для GPU Bifrost.
  • В драйвере radeonsi реализована поддержка расширений OpenGL GL_EXT_demote_to_helper_invocation и GL_NV_compute_shader_derivatives. Для игры "Counter-Strike: Global Offensive" по умолчанию включён режим оптимизации "mesa_glthread", позволяющий поднять производительность на 10-20%. Реализованы оптимизации, влияющие на прохождение тестов SPECViewPerf. Добавлена поддержка инструмента профилирования Radeon GPU Profiler (RGP). Для GPU Zen 3 и RDNA 2 добавлена поддержка технологии Smart Access Memory. Добавлена поддержка кодировщиков HEVC SAO (Sample Adaptive Offset, для GPU с поддержкой движков VCN2, VCN2.5 и VCN3) и декодировщиков AV1 (для RDNA 2/RX 6000 и только через интерфейс OpenMAX).
  • В Vulkan-драйвер RADV (для карт AMD) добавлена поддержка технологии Rapid packed math (16-разрядная векторизация) и Sparse-памяти (позволяет размещать ресурсы, такие как изображения и текстуры, непоследовательно и повторно прикреплять их к разным операциям выделения памяти). Проведена оптимизация производительности для карт серии RX 6000. Добавлены расширения VK_VALVE_mutable_descriptor_type и VK_KHR_fragment_shading_rate (только для RDNA2).
  • В драйверах Intel ANV и Iris добавлены оптимизации производительности и предложена начальная поддержка расширений Vulkan для трассировки лучей, реализованных в видеокартах Xe HPG.
  • Добавлена поддержка расширения EGL_MESA_platform_xcb, позволяющего приложениям создавать ресурсы EGL из ресурсов X11 без обращения к Xlib.
  • В Vulkan-драйвер V3DV, развиваемый для графического ускорителя VideoCore VI, применяемого в платах Raspberry Pi 4 на базе чипа Broadcom BCM2711, добавлена поддержка Wayland WSI (Windowing System Integration), позволяющая обращаться к API Vulkan из окружений на базе Wayland.
  • Принята начальная реализация прослойки, транслирующей вызовы OpenGL в API DirectX 12, для организации работы графических приложений в окружении WSL (Windows Subsystem for Linux). Кроме того, в состав включена библиотека spirv_to_dxil для преобразования промежуточного представления шейдеров SPIR-V в DXIL (DirectX Intermediate Language), разработанная в Microsoft.
  • Переработана и значительно улучшена поддержка ОС Haiku.
  • Из driconf удалены настройки glx_disable_oml_sync_control, glx_disable_sgi_video_sync и glx_disable_ext_buffer_age.
  • Удалена поддержка DRI1 и прекращена возможность загрузки драйверов DRI из версий Mesa ниже 8.0.
  • Удалён драйвер swrast, построенный на базе классического интерфейса DRI и предназначенный для программной отрисовки OpenGL (оставшиеся драйверы программной отрисовки llvmpipe и softpipe заметно опережают swrast по производительности и функциональности). Удалению swrast способствовало наличие множества нерешённых проблем и возникновение регрессий, при том, что данный драйвер уже не применяется в дистрибутивах.
  • Удалён старый классический вариант программного интерфейса OSMesa (оставлен OSMesa на базе Gallium), позволяющего осуществлять рендеринг не на экран, а в находящийся в памяти буфер. 

Проект был начат в августе 1993 года Брайаном Полом (англ. Brian Paul) как простая библиотека трёхмерной графики, реализующая OpenGL API.