Реліз 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 VIR.

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

  • У драйвері 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 при використанні драйверів для GPU AMD.
  • Для платформи 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).
    • ВК_ХР_обслуговування4 (РАДВ).
    • VK_KHR_format_feature_flags2 (RADV).
    • VK_KHR_shader_subgroup_extended_types (lavapipe).
    • VK_KHR_spirv_1_4 (лавапайп).
    • VK_KHR_timeline_semaphore (washpipe).
    • VK_EXT_external_memory_host (lavapipe).
    • VK_KHR_depth_stencil_resolve (lavapipe).
    • VK_KHR_shader_float16_int8 (промивна труба).
    • VK_EXT_color_write_enable(washpipe).

Джерело: opennet.ru

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