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

После трёх месяцев разработки представлен релиз свободной реализации 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 (GPU AMD) значительно повышена производительность трассировки лучей.

  • В переменной окружения RADV_DEBUG прекращена поддержка устаревших опций invariantgeom, nodynamicbounds, nongg_gs и splitfma вместо которых в driconf следует использовать переменные radv_invariant_geom, radv_no_dynamic_bounds, radv_disable_ngg_gs и radv_split_fma.

  • В драйвер panfrost (GPU ARM Mali) добавлена поддержка 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 VK_KHR_dynamic_rendering.html VK_KHR_dynamic_rendering]] для PowerVR
    • VK_EXT_multisampled_render_to_single_sampled для panvk
    • VK_KHR_pipeline_binary для HoneyKrisp
    • VK_KHR_incremental_present для pvr
    • VK_KHR_xcb_surface для pvr
    • VK_KHR_xlib_surface для pvr
    • VK_KHR_robustness2 для panvk v10+, HoneyKrisp, hasvk, NVK, Turnip, lavapipe, venus



    Источник: http://www.opennet.ru/opennews/art.shtml? num=64780

© OpenNet