Издание на Mesa 25.3, свободна реализация на OpenGL и Vulkan

След като беше разработвано три месеца, беше представено изданието на свободната реализация на API OpenGL и Vulkan — Mesa 25.3.0. Тагът на новото издание в git беше публикуван на 15 ноември, но анонсът на сайта се появи едва вчера (в насоките за изданията все още не е обявен). Първото издание на клона Mesa 25.3.0 има експериментален статус — след окончателна стабилизация на кода ще бъде пусната стабилна версия 25.3.1.

В Mesa 25.3 е налична поддръжка на графичния API Vulkan 1.4 в драйверите ANV за графични процесори Intel, RADV за графични процесори AMD, NVK за графични процесори NVIDIA, HoneyKrisp (hk) за графични процесори Apple, Turnip за графични процесори Qualcomm, PanVK за графични процесори ARM Mali, в софтуерния растеризатор lavapipe (lvp) и в емулаторния режим (vn). В драйверите v3dv (графичен процесор Broadcom VideoCore за Raspberry Pi 4+) и dzn (реализация на Vulkan върху Direct3D 12) се поддържа Vulkan 1.0, в драйвера kk (KosmicKrisp, Vulkan върху Metal) — Vulkan 1.1, а в драйвера pvr (графичен процесор 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, разработван за графичен процесор Imagination PowerVR, е осигурена поддръжка на Vulkan 1.2.
  • В Vulkan драйвера RADV са добавени оптимизации, които значително увеличават скоростта на работа на ефекта за големи езикови модели Llama.cpp при използване на Vulkan бекстенд на системи с графични процесори AMD. В някои тестове конфигурацията, базирана на драйвера RADV, стана по-бърза от драйвера AMDVLK и стека ROCm с 31% при обработка на заявки (тестове «pp» — обработка на подканяния) и с 4% при генериране на токени (тестове «tg» — генериране на токени).
  • Поддръжката на интерфейса VDPAU (Video Decode and Presentation API for Unix), създаден от компанията NVIDIA, е премахната. Като причини за премахването са посочени възможността за използване на VDPAU само на системи с X11 и OpenGL, поради липсата на поддръжка за Wayland и Vulkan. Освен това, VDPAU API притежава ограничения, които пречат на коректното декодиране на някои видео потоци. Вместо 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 разширения:
    • VK_EXT_ycbcr_2plane_444_formats
    • VK_KHR_shader_untyped_pointers
    • VK_KHR_video_encode_intra_refresh
    • VK_KHR_video_encode_quantization_map
  • В драйвера NVK (NVIDIA) са реализирани Vulkan разширения:
    • VK_AMD_buffer_marker
    • VK_KHR_maintenance8
    • VK_KHR_maintenance9
    • VK_NVX_image_view_handle
  • В драйвера HoneyKrisp (Apple) е реализирано OpenGL-разширение: VK_KHR_maintenance9
  • В драйвера PanVK (GPU ARM Mali) са реализирани Vulkan-разширения:
    • VK_ARM_shader_core_builtins
    • VK_EXT_mutable_descriptor_type
    • VK_KHR_maintenance7
    • VK_KHR_maintenance8
    • VK_KHR_maintenance9
  • В драйвера 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.

Източник: opennet.ru

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster