Релиз Mesa 24.3, свободной реализации OpenGL и Vulkan

После трёх месяцев разработки опубликован релиз свободной реализации API OpenGL и Vulkan — Mesa 24.3.0. Первый выпуск ветки Mesa 24.3.0 имеет экспериментальный статус — после проведения окончательной стабилизации кода будет выпущена стабильная версия 24.3.1.

В Mesa 24.3 доступна поддержка графического API Vulkan 1.3 в драйверах anv для GPU Intel, radv для GPU AMD, NVK для GPU NVIDIA, tu для GPU Qualcomm, в программном растеризаторе lavapipe (lvp), в режиме эмулятора (vn) и в v3dv (GPU Broadcom VideoCore для Raspberry Pi 4+). Поддержка Vulkan 1.0 реализована в драйверах dzn (реализация Vulkan поверх Direct3D 12) и panvk (GPU ARM Mali).

В Mesa также обеспечивается полная поддержка OpenGL 4.6 для драйверов iris (GPU Intel Gen 8+), radeonsi (AMD), Crocus (старые GPU Intel Gen4-Gen7), zink, llvmpipe, virgl (виртуальный GPU Virgil3D для QEMU/KVM), freedreno (Qualcomm Adreno), d3d12 (прослойка для организации работы OpenGL поверх DirectX 12) и asahi (GPU AGX, используемый в чипах Apple M1 и M2). Поддержка OpenGL 4.5 доступна для GPU AMD (r600) и NVIDIA (nvc0). Поддержка OpenGL 3.3 присутствует в драйверах softpipe (программный растеризатор) и nv50 (NVIDIA NV50).

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

  • В драйвере v3dv обеспечена полная поддержка графического API Vulkan 1.3 для GPU VideoCore, используемых на платах Raspberry Pi 4 и Raspberry Pi 5.
  • Добавлен новый Vulkan-драйвер gfxstream-vk, который может применяться для виртуализации API Vulkan и доступа к данному графическому API из гостевых систем на базе Linux, Android и Fuchsia. Драйвер используется Google в эмуляторе Android, эмуляторе Fuchsia, в облачных сервисах c Android и в Android Automotive OS (AAOS).
  • В интерфейс интеграции графического API Vulkan с оконными системами (WSI, Windowing System Integration) добавлена поддержка Vulkan-расширения VK_PRESENT_MODE_FIFO_KHR для применения в окружениях на базе Wayland протокола FIFO, позволяющего при выводе использовать ожидание завершения вертикальной развёртки (vblank) вместо использования callback-вызовов при каждой готовности отобразить новый кадр, что решает проблему с высокой нагрузкой на GPU при использовании VSync.
  • На системах с GPU Intel на базе архитектуры Xe2 по умолчанию включено сжатие буферов глубины (z-буферов).
  • В OpenGL-драйвер iris и Vulkan-драйвер ANV добавлена начальная поддержка GPU Intel на базе архитектуры Xe3, задействованной в процессорах Panther Lake.
  • В драйвер NVK (NVIDIA) добавлена поддержка Vulkan-расширений:
    • VK_EXT_descriptor_buffer
    • VK_EXT_post_depth_coverage
    • VK_EXT_legacy_vertex_attributes
    • VK_KHR_maintenance7
    • VK_KHR_dynamic_rendering_local_read
    • VK_NV_compute_shader_derivatives
    • VK_KHR_compute_shader_derivatives
    • VK_KHR_shader_float_controls2
    • VK_EXT_host_image_copy (для GPU Turing+)
    • VK_KHR_shader_quad_control
    • VK_KHR_fragment_shading_rate
    • VK_EXT_depth_clamp_zero_one
    • VK_EXT_device_generated_commands
  • В драйвер RADV (AMD) добавлена поддержка Vulkan-расширений:
    • VK_KHR_video_maintenance1
    • VK_KHR_pipeline_binary
    • VK_KHR_compute_shader_derivatives
    • VK_KHR_shader_float_controls2
    • VK_EXT_device_generated_commands
    • VK_KHR_shader_relaxed_extended_instruction
  • В драйвер ANV (Intel) добавлена поддержка Vulkan-расширений
    • VK_KHR_compute_shader_derivatives
    • VK_KHR_shader_relaxed_extended_instruction
    • VK_EXT_depth_clamp_control
  • В драйвер hasvk (Intel Ivy Bridge, Haswell и Broadwell) добавлена поддержка Vulkan-расширений:
    • VK_EXT_depth_clamp_control
    • VK_KHR_shader_relaxed_extended_instruction
  • В драйверы hk, tu, v3dv и lvp добавлена поддержка Vulkan-расширения VK_KHR_shader_relaxed_extended_instruction.
  • Добавлена поддержка новых расширений OpenGL:
    • GL_KHR_shader_subgroup в драйвер radeonsi
    • GL_OVR_multiview в драйвер zink
    • GL_OVR_multiview2 в драйвер zink
    • GL_ARB_draw_indirect в драйвер etnaviv/HALTI5+
    • GL_EXT_draw_buffers2 в драйвер etnaviv/HALTI5+
    • GL_ARB_draw_buffers_blend в драйвер etnaviv/HALTI5+
    • GL_ARB_framebuffer_no_attachments в драйвер etnaviv
    • GL_ARB_timer_query в драйвер Panfrost
    • GL_EXT_disjoint_timer_query в драйвер Panfrost

Источник: opennet.ru