Реліз Mesa 21.0, вільної реалізації OpenGL та Vulkan

Представлено реліз вільної реалізації API OpenGL та Vulkan - Mesa 21.0.0. Перший випуск гілки Mesa 21.0.0 має експериментальний статус – після проведення остаточної стабілізації коду буде випущено стабільну версію 21.0.1. У Mesa 21.0 реалізована повна підтримка 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.0 для VideoCore VI (Raspberry Pi 4).

Основні нововведення:

  • У драйвері 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), що дозволяє здійснювати рендеринг не на екран, а в буфер, що знаходиться в пам'яті.

    Джерело: opennet.ru

Додати коментар або відгук