След три месеца разработка беше представен релиз на свободна имплементация на API OpenGL и Vulkan — Mesa 26.0.0. Първият изход на версијата Mesa 26.0.0 има експериментален статус — след окончателна стабилизация на кода ще бъде пусната стабилна версия 26.0.1.
В Mesa 26.0 е налична поддръжка на графичния 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.
Основни нововъведения:
- Драйверът RadeonSI беше преместен на използване по подразбиране на междинното представяне (IR) на шейдърите NIR и бекенда за компилация на шейдери ACO, разработван от Valve като алтернатива на компилатора за шейдери LLVM. Бекендът ACO е насочен към осигуряване на възможно най-оптимално генериране на код за шейдъри от игрални приложения, както и постигане на много висока скорост на компилация. Използването на ACO позволява увеличаване на скоростта на компилация на шейдъри, намаляване на потреблението на памет, свиване на размера на бинарното представяне на шейдерите и генериране на по-оптимизиран код. В сравнение с LLVM, използването на бекенда ACO позволява намаляване на времето за компилация на шейдъри до 8 пъти, което значително съкращава времето за стартиране на приложения.
- Представен е Vulkan-драйверът KosmicKrisp (kk), реализиращ графичния API Vulkan върху API Metal, разработван от Apple и използван в macOS. Драйверът е създаден от LunarG за използване на компютри Mac с чипове Apple Silicon.
- В Vulkan-драйвера RADV (AMD GPU) значително е повишена производителността на трасировката на лъчи.
- В променливата на средата RADV_DEBUG е прекратена поддръжката на остарели опции invariantgeom, nodynamicbounds, nongg_gs и splitfma, вместо тях в driconf трябва да се използват променливи radv_invariant_geom, radv_no_dynamic_bounds, radv_disable_ngg_gs и radv_split_fma.
- В драйвера panfrost (ARM Mali GPU) е добавена поддръжка на OpenGL-разширението GL_EXT_shader_pixel_local_storage.
- Добавена е поддръжка на Vulkan-разширенията:
- VK_KHR_relaxed_block_layout за pvr
- VK_KHR_storage_buffer_storage_class за pvr
- VK_EXT_external_memory_acquire_unmodified за panvk
- VK_EXT_discard_rectangles за NVK
- VK_KHR_present_id за HoneyKrisp
- VK_KHR_present_id2 за HoneyKrisp
- VK_KHR_present_wait за HoneyKrisp
- VK_KHR_present_wait2 за HoneyKrisp
- VK_KHR_maintenance10 за ANV, NVK, RADV
- VK_EXT_shader_uniform_buffer_unsized_array за ANV, HK, NVK, RADV
- VK_EXT_device_memory_report за panvk
- VK_VALVE_video_encode_rgb_conversion за radv
- VK_EXT_custom_resolve за RADV
- VK_EXT_image_drm_format_modifier за panvk/v7
- VK_KHR_sampler_ycbcr_conversion за panvk/v7
- VK_KHR_surface_maintenance1 за anv, hk, lvp, nvk, radv, tu, v3dv, vn
- VK_KHR_swapchain_maintenance1 за anv, hk, lvp, nvk, radv, tu, v3dv, vn
-
Източник: opennet.ru
