Домой Новости Железо Релиз Mesa 26.1, свободной реализации OpenGL и Vulkan

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

Вышла новая версия свободной графической библиотеки Mesa 26.1 с поддержкой Vulkan 1.4 и множеством улучшений для различных GPU.

Открытая библиотека графических драйверов Mesa
Релиз Mesa 26.1, свободной реализации OpenGL и Vulkan — иллюстрация к материалу. Источник: linux.org.ru

После трех месяцев активной разработки разработчики представили релиз Mesa 26.1 — свободной реализации графических API OpenGL и Vulkan. Первый выпуск новой ветки имеет экспериментальный статус: после завершения финальной стабилизации кода команда выпустит стабильную версию с индексом 26.1.1.

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

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

Главные нововведения и улучшения

  • В фирменные драйверы для графических чипов Intel (Iris, Crocus и ANV) добавлена возможность прямой работы с GPU из виртуальных машин с использованием нативных контекстов (native context) в VirtIO-GPU. Подобный подход позволяет заметно повысить производительность виртуального графического процессора (virtio-gpu-gl) в гостевой системе за счет прямой передачи команд на хостовый GPU.

  • Для аппаратных решений PowerVR реализована поддержка OpenGL ES 2.0 через прослойку Zink, что позволяет использовать ускоренный на уровне железа OpenGL на устройствах с поддержкой интерфейса Vulkan.

  • Для OpenCL-драйвера rusticl теперь требуется статически собранная стандартная библиотека C++ stdlib, что необходимо для корректного запуска приложений, использующих собственные варианты C++ stdlib.

  • Драйвер radeonsi (AMD) получил поддержку полезного OpenGL-расширения GL_NV_timeline_semaphore.

  • В драйвер panfrost (ARM Mali) добавлена поддержка расширения OpenGL GL_EXT_shader_image_load_store.

  • Драйвер v3d (Broadcom VideoCore) обзавелся поддержкой расширения OpenGL GL_ARB_sample_shading.

  • Существенно расширена поддержка стандартов Vulkan. В частности, добавлены следующие расширения:

    • VK_ARM_scheduling_controls для panvk

    • VK_EXT_acquire_drm_display для panvk

    • VK_EXT_astc_decode_mode для panvk

    • VK_EXT_attachment_feedback_loop_dynamic_state для panvk

    • VK_EXT_attachment_feedback_loop_layout для panvk

    • VK_EXT_blend_operation_advanced для lavapipe

    • VK_EXT_color_write_enable для panvk

    • VK_EXT_conditional_rendering для panvk

    • VK_EXT_depth_clamp_control для panvk

    • VK_EXT_descriptor_heap для RADV (активируется при установке переменной окружения «export RADV_EXPERIMENTAL=heap»)

    • VK_EXT_hdr_metadata для v3dv

    • VK_EXT_image_drm_format_modifier для pvr

    • VK_EXT_image_view_min_lod для panvk

    • VK_EXT_legacy_dithering для panvk

    • VK_EXT_map_memory_placed для panvk

    • VK_EXT_nested_command_buffer для panvk

    • VK_EXT_non_seamless_cube_map для pvr

    • VK_EXT_present_timing для RADV, NVK, Turnip, ANV, Honeykrisp и panvk

    • VK_EXT_primitive_restart_index для RADV

    • VK_EXT_rgba10×6_formats для panvk

    • VK_EXT_shader_atomic_float для panvk

    • VK_EXT_shader_stencil_export для panvk

    • VK_EXT_zero_initialize_device_memory для panvk

    • VK_KHR_copy_memory_indirect для nvk и RADV/GFX8+

    • VK_KHR_device_address_commands для RADV

    • VK_{KHR, EXT}_{surface, swapchain}_maintenance1 для panvk

    • VK_KHR_get_display_properties2 для panvk

    • VK_KHR_get_surface_capabilities2 для panvk

    • VK_KHR_internally_synchronized_queues для RADV

    • VK_KHR_maintenance4 для pvr

    • VK_KHR_pipeline_executable_properties для pvr

    • VK_KHR_present_id для panvk и v3dv

    • VK_KHR_present_wait для panvk и v3dv

    • VK_KHR_sampler_ycbcr_conversion для pvr

    • VK_KHR_shader_integer_dot_product для pvr

    • VK_KHR_shader_untyped_pointers для panvk

    • VK_KHR_swapchain_mutable_format для panvk

    • VK_QCOM_image_processing для Turnip

    • VK_VALVE_mutable_descriptor_type для panvk

    • VK_VALVE_shader_mixed_float_dot_product для RADV (для архитектур Vega20, Navi14 и RDNA2+)

  • Реализован целый набор новых OpenCL-расширений:

    • cl_khr_subgroup_ballot для asahi, iris, llvmpipe, radeonsi и zink

    • cl_khr_subgroup_clustered_reduce для asahi, llvmpipe, radeonsi и zink

    • cl_khr_subgroup_extended_types для asahi, iris, llvmpipe, radeonsi и zink

    • cl_khr_subgroup_non_uniform_arithmetic для asahi, iris, llvmpipe, radeonsi и zink

    • cl_khr_subgroup_non_uniform_vote для asahi, iris, llvmpipe, radeonsi и zink

    • cl_khr_subgroup_rotate для asahi, llvmpipe и zink

  • Популярный драйвер VirGL, отвечающий за работу виртуального графического процессора в QEMU, на данный момент остался без постоянного сопровождения. Если в сообществе не найдется энтузиаст, готовый взять на себя его поддержку, компонент будет удален из будущих релизов проекта.

Источник: https://www.linux.org.ru