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

После трёх месяцев разработки представлен релиз свободной реализации API OpenGL и Vulkan — Mesa 25.3.0. Тег нового выпуска в git был опубликован 15 ноября, но анонс на сайте появился только вчера (в рассылке релиз не объявлен до сих пор). Первый выпуск ветки Mesa 25.3.0 имеет экспериментальный статус — после проведения окончательной стабилизации кода будет выпущена стабильная версия 25.3.1.

В Mesa 25.3 доступна поддержка графического API Vulkan 1.4 в драйверах ANV для GPU Intel, RADV для GPU AMD, NVK для GPU NVIDIA, HoneyKrisp (hk) для GPU Apple, Turnip для GPU Qualcomm, PanVK для GPU ARM Mali, в программном растеризаторе lavapipe (lvp) и в режиме эмулятора (vn). В драйверах v3dv (GPU Broadcom VideoCore для Raspberry Pi 4+) и dzn (реализация Vulkan поверх Direct3D 12) поддерживается Vulkan 1.0, в драйвере kk (KosmicKrisp, Vulkan поверх Metal) — Vulkan 1.1, а драйвере pvr (GPU Imagination PowerVR) — Vulkan 1.2.

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

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

  • В состав включён новый Vulkan-драйвер KosmicKrisp (kk), реализующий графический API Vulkan поверх API Metal, развиваемого компанией Apple и применяемого в macOS. Драйвер создан компанией LunarG для использования на компьютерах Mac с чипами Apple Silicon. В текущем виде драйвер полностью совместим с API Vulkan 1.1, но отмечается, что он уже очень близок к реализации поддержки Vulkan 1.3.
  • Добавлен драйвер ethos для NPU Arm Ethos-U65.
  • В Vulkan-драйвере pvr, развиваемом для GPU Imagination PowerVR, обеспечена поддержка Vulkan 1.2.
  • В Vulkan-драйвер RADV добавлены оптимизации, существенно увеличивающие скорость работы движка выполнения больших языковых моделей Llama.cpp при использовании Vulkan-бэкенда на системах с GPU AMD. В некоторых тестах llama-bench конфигурация на базе драйвера RADV стала быстрее драйвера AMDVLK и стека ROCm на 31% при обработке запросов (тесты «pp» — prompt processing) и на 4% при генерации токенов (тесты «tg» — token generation).
  • Удалена поддержка программного интерфейса VDPAU (Video Decode and Presentation API for Unix) созданного компанией NVIDIA. В качестве причин удаления упоминается возможность использования VDPAU только на системах c X11 и OpenGL, из-за отсутствия поддержки Wayland и Vulkan. Кроме того, API VDPAU свойственны ограничения, не позволяющие корректно декодировать некоторые видеопотоки. Вместо VDPAU предложено использовать API VA-API (Video Acceleration API), который может применяться с Wayland и Vulkan и лучше поддерживается в приложениях.
  • В драйвере Zink, реализующий OpenGL 4.6 поверх Vulkan, реализована поддержка mesh-шейдеров, предоставляющих альтернативный способ генерации коллекций геометрических примитивов.
  • В драйвер rusticl добавлена поддержка расширений OpenCL для работы с семафорами (cl_khr_semaphore и cl_khr_external_semaphore).
  • В компилятор шейдеров добавлена функциональность для подмены шейдеров SPIR-V.
  • Реализован Vulkan-слой для поддержки технологии AMD Anti-Lag, минимизирующей задержки между вызовами vkQueueSubmit или vkQueueSubmit2 и началом выполнения операций, что позволяет сократить задержки при выводе на экран в игра
  • Добавлена поддержка OpenGL-расширений:
    • GL_EXT_mesh_shader для zink
    • GL_ARB_robust_buffer_access_behavior для Panfrost
    • GL_KHR_robust_buffer_access_behavior для Panfrost
    • GL_KHR_robustness для Panfrost и v3d
    • GL_ATI_meminfo для r300
    • GL_NVX_gpu_memory_info для r300
    • GL_NV_shader_atomic_int64 для radeonsi и Panfrost V9+
    • GL_NV_representative_fragment_test для zink
    • EGL_EXT_create_context_robustness для Panfrost V10+
  • В драйвере ANV (Intel) реализовано Vulkan-расширение: VK_KHR_shader_untyped_pointers
  • В драйвере RADV (AMD) реализованы Vulkan-расширения:
    • VK_EXT_ycbcr_2plane_444_formats
    • VK_KHR_shader_untyped_pointers
    • VK_KHR_video_encode_intra_refresh
    • VK_KHR_video_encode_quantization_map
  • В драйвере NVK (NVIDIA) реализованы Vulkan-расширения:
    • VK_AMD_buffer_marker
    • VK_KHR_maintenance8
    • VK_KHR_maintenance9
    • VK_NVX_image_view_handle
  • В драйвере HoneyKrisp (Apple) реализовано OpenGL-расширение: VK_KHR_maintenance9
  • В драйвере PanVK (GPU ARM Mali) реализованы Vulkan-расширения: ‘
    • VK_ARM_shader_core_builtins
    • VK_EXT_mutable_descriptor_type
    • VK_KHR_maintenance7
    • VK_KHR_maintenance8
    • VK_KHR_maintenance9
  • В драйвере pvr (GPU Imagination PowerVR) реализованы Vulkan-расширения:
    • VK_EXT_border_color_swizzle
    • VK_EXT_color_write_enable
    • VK_EXT_custom_border_color
    • VK_EXT_depth_clamp_zero_one
    • VK_EXT_depth_clip_enable
    • VK_EXT_extended_dynamic_state
    • VK_EXT_extended_dynamic_state2
    • VK_EXT_extended_dynamic_state3
    • VK_EXT_image_2d_view_of_3d
    • VK_EXT_line_rasterization
    • VK_EXT_map_memory_placed
    • VK_EXT_physical_device_drm
    • VK_EXT_provoking_vertex
    • VK_EXT_queue_family_foreign
    • VK_EXT_robustness2
    • VK_EXT_separate_stencil_usage
    • VK_EXT_shader_demote_to_helper_invocation
    • VK_EXT_shader_replicated_composites
    • VK_EXT_vertex_attribute_divisor
    • VK_EXT_zero_initialize_device_memory
    • VK_KHR_buffer_device_address
    • VK_KHR_create_renderpass2
    • VK_KHR_dedicated_allocation
    • VK_KHR_depth_stencil_resolve
    • VK_KHR_descriptor_update_template
    • VK_KHR_device_group
    • VK_KHR_device_group_creation
    • VK_KHR_imageless_framebuffer
    • VK_KHR_line_rasterization
    • VK_KHR_maintenance1
    • VK_KHR_maintenance2
    • VK_KHR_maintenance3
    • VK_KHR_map_memory2
    • VK_KHR_multiview
    • VK_KHR_robustness2
    • VK_KHR_sampler_mirror_clamp_to_edge
    • VK_KHR_separate_depth_stencil_layouts
    • VK_KHR_shader_draw_parameters
    • VK_KHR_shader_float_controls
    • VK_KHR_shader_non_semantic_info
    • VK_KHR_shader_relaxed_extended_instruction
    • VK_KHR_shader_subgroup_extended_types
    • VK_KHR_shader_terminate_invocation
    • VK_KHR_spirv_1_4
    • VK_KHR_swapchain_mutable_format
    • VK_KHR_vertex_attribute_divisor
    • VK_KHR_wayland_surface
  • Реализованы OpenCL-расширения:
    • cl_ext_immutable_memory_objects
    • cl_khr_external_semaphore для radeonsi и zink
    • cl_khr_external_semaphore_sync_fd для radeonsi и zink
    • cl_khr_semaphore для radeonsi и zink

Дополнительно можно отметить выпуск новой версии спецификации Vulkan 1.4.333, в которой предложено новое расширение VK_EXT_ray_tracing_invocation_reorder, повышающее производительность трассировки лучей в проведённых тестах на 47% при использовании SER (Shader Execution Reordering) в vk_gltf_renderer.

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

Добавить комментарий