След три месеца разработка е представена версия на свободната реализация на API OpenGL и Vulkan — Mesa 25.1.0. Първото издание на версия 25.1.0 има експериментален статус — след окончателна стабилизация на кода ще бъде издадена стабилна версия 25.1.1.
В Mesa 25.1 е налична поддръжка за графичния API Vulkan 1.4 в драйверите ANV за GPU на Intel, RADV за GPU на AMD, NVK за GPU на NVIDIA, Asahi за GPU на Apple, Turnip за GPU на Qualcomm, в софтуерния растеризатор lavapipe (lvp) и в режим на емулатор (vn). В драйвера PanVK за GPU ARM Mali — Vulkan 1.2, а в драйверите v3dv (GPU Broadcom VideoCore за Raspberry Pi 4+) и dzn (реализация на Vulkan над Direct3D 12) — Vulkan 1.0.
В 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). В драйверите panfrost (GPU ARM Mali) и v3d (GPU Broadcom VideoCore) се поддържа OpenGL 3.1.
Основни нововъведения:
- В драйвера PanVK е реализирана поддръжка на графичния API Vulkan 1.2 за GPU ARM Mali на базата на микроархитектура v10+. Добавена е поддръжка за цветови пространства YCbCr. Реализирани са типовете storagePushConstant16, storageInputOutput16 и shaderFloat16. Добавена е поддръжка за GPU Mali G720 и G725. Осигурена е поддръжка на метода на анти_ALIASING MSAA (Multisample anti-aliasing) в режимите с 8 и 16 проби за всеки пиксел.
- В OpenGL драйвера Panfrost е реализирана поддръжка за GPU Mali G720, G725 и G925.
- В режим на емулатор (vn) е добавена поддръжка за API Vulkan 1.4.
- Разработката на драйвера Asahi за GPU Apple AGX, използвани в чиповете Apple Silicon, е изцяло интегрирана в Mesa, а UAPI за него е приета в ядрото на Linux. Дистрибуциите вече не е необходимо да използват отделни сборки на този драйвер.
- Vulkan драйверът NVK е активиран по подразбиране за GPU на NVIDIA Maxwell (GTX 700/800/900), Pascal (GTX 1000) и Volta (TITAN V), за които е реализирана пълна поддръжка на Vulkan 1.4. По-рано съвместимостта с Vulkan 1.4 в NVK беше осигурена само за GPU на NVIDIA на базата на микроархитектуры Turing (серии GeForce GTX 16xx, RTX 20xx и Quadro RTX), Ampere (серии GeForce RTX 30xx и RTX A2000/4000/5000/6000) и Ada (серии GeForce RTX 4xxx, RTX 4000 SFF, RTX 4xxx/5000/6000 Ada). Добавена е поддръжка на Vulkan разширението VK_MESA_image_alignment_control.
- Поддръжката на OpenGL за GPU NVIDIA, започвайки от микроархитектурата Turing, по подразбиране е преместена от драйвера Nouveau (nvc0) на OpenGL драйвера Zink в комбинация с Vulkan драйвера NVK. Zink предоставя реализация на OpenGL 4.6 върху Vulkan, което позволява получаването на хардуерно ускорен OpenGL на устройства, поддържащи API Vulkan. Производителността на Zink е близка до производителността на нативните реализации на OpenGL.
- В интерфейса за интеграция на графичния API Vulkan с операционни системи (WSI, Windowing System Integration) е реализирана поддръжка на Wayland протокола за управление на цветове, предоставяща възможности за управление на цвета и поддръжка на разширен динамичен диапазон на яркостта (HDR, High Dynamic Range).
- В Vulkan драйвера ANV (Intel) е подобрена поддръжката на GPU Intel, базирани на архитектурата Xe2, като Intel Core Ultra Xe2 с интегрирана графика Intel Arc и дискретни GPU Intel Arc B580/B570 „Battlemage“.
- В Vulkan драйвера RADV (AMD) е подобрена поддръжката на GPU от серията Radeon RX 9000 (RDNA4/GFX12). Добавен е режим за кодиране на видео с ниски закъснения. Осигурена е поддръжка на Vulkan разширения VK_EXT_device_memory_report и VK_EXT_sample_locations.
- В OpenGL драйвера Etnaviv за GPU Vivante е добавена поддръжка на OpenGL разширението KHR_partial_update.
- В OpenGL драйвера v3d (GPU Broadcom VideoCore за Raspberry Pi) е добавена поддръжка на OpenGL разширенията EXT_shader_framebuffer_image_fetch, EXT_shader_framebuffer_image_fetch_coherent, KHR_blend_equation_advanced и KHR_blend_equation_advanced_coherent.
- Обявен за остарял е OpenCL драйвера Clover, на който му е наследник драйвера Rusticl, написан на езика Rust.
- В драйвера Rusticl е добавена поддръжка на OpenCL разширението cl_khr_spirv_linkonce_odr.
- В драйвера PanVK са реализирани Vulkan разширения:
- VK_KHR_depth_stencil_resolve
- VK_KHR_separate_depth_stencil_layouts
- VK_EXT_separate_stencil_usage
- VK_KHR_sampler_ycbcr_conversion
- VK_EXT_ycbcr_2plane_444_formats
- VK_EXT_ycbcr_image_arrays
- VK_KHR_imageless_framebuffer
- VK_KHR_uniform_buffer_standard_layout
- VK_EXT_border_color_swizzle
- VK_KHR_shader_subgroup_uniform_control_flow
- VK_KHR_shader_maximal_reconvergence
- VK_KHR_shader_subgroup_extended_types
- VK_KHR_display
- VK_EXT_display_control
- VK_KHR_line_rasterization
- VK_EXT_line_rasterization
- VK_KHR_shader_float_controls
- VK_KHR_shader_float_controls2
- VK_KHR_spirv_1_4
- VK_KHR_dynamic_rendering_local_read
- VK_EXT_subgroup_size_control
- VK_KHR_format_feature_flags2
- VK_EXT_direct_mode_display
- Обявен за остарял и е планиран за премахване в следващото издание, трекерът на състояния gallium-nine, осигуряващ поддръжка на API Direct3D 9.
- Обявен за остарял и е планиран за премахване в следващото издание, трекерът на състояния „gallium-xa“, осигуряващ поддръжка на виртуален GPU VMWare („vmwgfx“).
Източник: opennet.ru
