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

Опубліковано реліз вільної реалізації API OpenGL та Vulkan - Mesa 22.3.0. Перший випуск гілки Mesa 22.3.0 має експериментальний статус – після проведення остаточної стабілізації коду буде випущено стабільну версію 22.3.1.

У Mesa 22.3 доступна підтримка графічного API Vulkan 1.3 у драйверах anv для GPU Intel, radv для GPU AMD, tu для GPU Qualcomm та в режимі емулятора (vn). Підтримка Vulkan 1.1 реалізована у програмному розтеризаторі lavapipe (lvp), а Vulkan 1.0 у драйвері v3dv (GPU Broadcom VideoCore VI із Raspberry Pi 4).

Mesa також забезпечується повна підтримка OpenGL 4.6 для драйверів 965, iris (Intel), radeonsi (AMD), zink і llvmpipe. Підтримка OpenGL 4.5 доступна для GPU AMD (r600), NVIDIA (nvc0) і Qualcomm Adreno (freedreno), OpenGL 4.3 для virgl (віртуальний GPU Virgil3D для QEMU/KVM), а OpenGL 4.2 для драйвера d3d12 (просло) 12).

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

  • У драйвері freedreno для GPU Qualcomm Adreno забезпечена підтримка графічного API OpenGL 4.5, а драйвері для емулятора (vn) підтримка API Vulkan 1.3.
  • У драйвері Panfrost реалізовано можливість кешування шейдерів на диску та додано підтримку GPU Mali T620. Драйвер сумісний із специфікацією OpenGL 3.1 та OpenGL ES 3.1.
  • У Vulkan-драйвері RADV (AMD) додано підтримку GPU GFX11/RDNA3 (серія Radeon RX 7000). Проведено оптимізацію коду для трасування променів. Додано підтримку піксельних форматів R8G8B8, B8G8R8 та R16G16B16, а також 64-розрядних форматів вершинного буфера. Додано підтримку прапора extendedDynamicState2PatchControlPoints, що визначає підтримку розширення VK_EXT_extended_dynamic_state2. Інтегрований Radeon Raytracing Analyzer.
  • До складу включено драйвер Rusticl з реалізацією специфікації OpenCL 3.0, що визначає API та розширення мови С для організації крос-платформних паралельних обчислень. Драйвер написаний мовою Rust, розроблений з використанням інтерфейсу Gallium, що надається в Mesa, і виступає в ролі аналога присутнього в Mesa OpenCL-фронтенду Clover. Clover вже давно перебуває у занедбаному стані та rusticl позиціонується як його майбутня заміна. Підтримка Rust і rusticl за замовчуванням відключена і вимагає складання з явною вказівкою опцій "-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021". При збиранні як додаткові залежності необхідні компілятор rustc, генератор прив'язок bindgen, LLVM, інструментарій SPIRV-Tools і транслятор SPIRV-LLVM-Translator.
  • У драйвері RadeonSI включена за замовчуванням підтримка багатопотокового відтворення через OpenGL.
  • Представлений Mesa-DB, новий тип кешу шейдерів, що зберігає дані в одному файлі.
  • Додано підтримку розширень OpenGL:
    • GL_ARB_shader_clock для llvmpipe.
    • GL_KHR_blend_equation_advanced_coherent для zink.
    • GL_NV_shader_atomic_float для llvmpipe.
  • Додана підтримка Vulkan-розширень:
    • VK_KHR_shader_clock для lavapipe.
    • VK_EXT_attachment_feedback_loop_layout для RADV, lavapipe.
    • VK_KHR_global_priority для RADV.
    • VK_EXT_load_store_op_none для RADV.
    • VK_EXT_mutable_descriptor_type для RADV.
    • VK_EXT_shader_atomic_float для lvp.
    • VK_EXT_shader_atomic_float2 для lvp.
    • VK_EXT_image_robustness для v3dv.
    • VK_EXT_extended_dynamic_state3 для lavapipe, RADV та ANV.
    • VK_EXT_extended_dynamic_state2 для RADV.
    • VK_EXT_pipeline_robustness для v3dv.
    • VK_EXT_mesh_shader для ANV.

Джерело: opennet.ru

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