В 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-расширения:
- В драйвере NVK (NVIDIA) реализованы Vulkan-расширения:
- В драйвере HoneyKrisp (Apple) реализовано OpenGL-расширение:
VK_KHR_maintenance9 - В драйвере PanVK (GPU ARM Mali) реализованы Vulkan-расширения: ‘
- В драйвере 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.
Источник: http://www.opennet.ru/opennews/art.shtml?num=64283
