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

След като тримесечно разработване, беше представена свободната реализация на API OpenGL и Vulkan — Mesa 25.2.0. Първото издание на клон Mesa 25.2.0 има експериментален статус — след окончателна стабилизация на кода, ще бъде пусната стабилна версия 25.2.1.

В Mesa 25.2 е налична поддръжка за графичния API Vulkan 1.4 в драйверите ANV за GPU Intel, RADV за GPU AMD, NVK за GPU NVIDIA, Asahi за 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.

В 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 драйвера PanVK за устройства с GPU ARM Mali, базирани на архитектура V10, като Mali-G610 и Mali-G310, е добавена поддръжка за графичния API Vulkan 1.4 (по-рано се поддържаше Vulkan 1.2).
  • В OpenGL драйвера r600 за стари GPU AMD (до серия Radeon HD 7000 включително) е добавена поддръжка за графичния API OpenGL 4.6 (по-рано се поддържаше OpenGL 4.5).
  • В Vulkan драйвера NVK е добавена поддръжка за GPU NVIDIA, базирани на микроархитектурите Blackwell и Kepler (GTX 600/700). За GPU Blackwell е реализирана поддръжка на Vulkan 1.4, а за GPU Kepler — API Vulkan 1.2 (по-нови версии на Vulkan не се поддържат поради хардуерни ограничения). За GPU NVIDIA, базирани на микроархитектурата Maxwell, е осигурена пълна съвместимост с Vulkan 1.4.
  • Оптимизирана е работата на компилатора на шейдъри NAK, написан на Rust и използван в драйвера NVK. В зависимостите на драйвера NVK е включен crate пакет rustc-hash, благодарение на който времето за компилация на шейдерите е намалено с около 12%.
  • Поддръжката на OpenGL за графични процесори NVIDIA Maxwell, Pascal и Volta по подразбиране е превключена от драйвера Nouveau към използването на драйвера Zink в комбинация с Vulkan драйвер NVK. Zink също е участвал в осигуряването на поддръжка на OpenGL на системи с GPU Blackwell (в OpenGL драйвера Nouveau не планират добавяне на поддръжка за GPU Blackwell). Zink предоставя реализация на OpenGL 4.6 върху Vulkan, позволяваща получаване на хардуерно ускорен OpenGL на устройства, които поддържат API Vulkan. Производителността на Zink е близка до производителността на оригиналните реализации на OpenGL.
  • Значително е повишена производителността на Vulkan драйвера Honeykrisp за графични процесори, доставяни в чиповете Apple M1/M2.
  • В Vulkan драйверите RADV (GPU AMD) и ANV (Intel) е добавена поддръжка на хардуерно ускорение за декодиране на видео в формат VP9. Възможността е реализирана чрез Vulkan разширението VK_KHR_video_decode_vp9, подготвено от работната група Vulkan WG през пролетта. Хардуерното ускорение е достъпно за GPU AMD, започвайки от GPU Navi 10, базиран на микроархитектура RDNA 1.0.
  • В Vulkan драйвера RADV за GPU AMD, базирани на микроархитектурите RDNA3 и RDNA4, е повишена производителността на трасировката на лъчи и е подобрена поддръжката на технологията за супермостиране FSR 4 (FidelityFX Super Resolution). Добавена е възможност за настройка на приоритетите на опашката на командите (OpenCL разширение cl_khr_priority_hints).
  • В OpenGL драйвера radeonsi за стари семейства GPU AMD Evergreen и Cayman е реализирана поддръжка на OpenGL 4.6. Добавена е поддръжка на споделена виртуална памет (SVM, Shared Virtual Memory).
  • В OpenGL драйвера Iris и Vulkan драйвера ANV е реализирана поддръжка на GPU, използвани в процесорите Intel Wildcat Lake. В Iris и ANV също е обявена стабилна поддръжка за GPU Intel, базирани на архитектурата Xe3, използвани в процесорите Panther Lake. Подобрена е поддръжката на семейства GPU Xe2 и Xe3. В драйвера Iris е добавена поддръжка на споделена виртуална памет (SVM, Shared Virtual Memory).
  • В OpenGL драйвера freedreno е добавена поддръжка на GPU Adreno X1-45, използван в SoC Qualcomm Snapdragon X Plus.
  • Продължава развитието на OpenCL драйвера Rusticl, написан на езика Rust и заменил драйвера Clover. В Rusticl е добавена поддръжка на SVM (Shared Virtual Memory), изображения в цветното пространство sRGB (формати CL_sRGBA и CL_sBGRA), и формата FP16 (OpenCL разширение cl_khr_fp16 за драйверите asahi, freedreno, llvmpipe, panfrost, radeonsi и zink).
  • Добавен е Gallium3D фронтенд MFT (Media Foundation Transform), който позволява използването на D3D12 (Direct3D 12) драйвер за реализиране на други графични API. Разработен е от Microsoft за WSL (Windows Subsystem for Linux).
  • Премахната е поддръжката на DRI2 (Direct Rendering Infrastructure), която е заменена от интерфейса DRI3, използващ DMA-BUF за директен достъп до видео адаптера. Причината е, че интерфейсът DRI3 съществува от повече от 10 години, DRI2 е остарял, а всички поддържани GPU драйвери отдавна са реализирали DRI3 интерфейса.
  • Поддръжката на остарели методи за работа с буфери е прекратена — оставена е само възможността за използване на dma-buf.
  • Поддръжката на версии libX11, които не осигуряват безопасна работа в многопоточни приложения, е прекратена. Оставена е само поддръжката на libX11 1.8 (април 2022) и по-нови версии, които използват извикването на XInitThreads().
  • Обявена е за остаряла и е деактивирана по подразбиране поддръжката на EGL разширението EGL_WL_bind_wayland_display, осъществено за Wayland. За обмен на пикселови буфери между клиента и сървър Wayland се предлага да се използва Wayland протокола linux_dmabuf. За възстановяване на поддръжката е необходимо указване на флага «-Dlegacy-wayland=bind-wayland-display» по време на компилация. Xwayland поддържа коректна работа без EGL_WL_bind_wayland_display, започвайки от версия 24.1 (май 2024).
  • Премахнат е остарелият OpenCL драйвер Clover. За OpenCL следва да се използва драйверът RustiCL, който е по-функционален и поддържа повече версии на OpenCL.
  • В драйвера ANV (Intel) е реализирано Vulkan разширение:
    • VK_KHR_shader_bfloat16
  • В драйвера RADV (AMD) са реализирани Vulkan разширения:
    • VK_KHR_shader_bfloat16
    • VK_KHR_robustness2
    • VK_EXT_zero_initialize_device_memory
    • VK_EXT_scalar_block_layout
    • VK_KHR_maintenance9
    • VK_KHR_unified_image_layouts
    • VK_KHR_shader_float8
    • VK_EXT_host_image_copy
  • В драйвера NVK (NVIDIA) са реализирани Vulkan разширения:
    • VK_EXT_zero_initialize_device_memory
    • VK_KHR_cooperative_matrix
  • В драйвера zink е реализирано Vulkan разширение:
    • NV_timeline_semaphore
  • В драйвера v3d (GPU Broadcom VideoCore за Raspberry Pi 4+) е реализирано OpenGL разширение:
    • on v3d GL_ARB_blend_func_extended
  • В драйвера panfrost са реализирани OpenGL разширения:
    • GL_KHR_texture_compression_astc_hdr
    • GL_ARB_shader_clock
    • GL_EXT_shader_realtime_clock
  • В драйвера asahi (Apple) е реализирано OpenGL разширение:
    • GL_KHR_texture_compression_astc_hdr
  • В драйвера r600 (AMD) са реализирани OpenGL разширения
    • GL_EXT_window_rectangles
    • GL_EXT_shader_image_load_store
  • В драйвера PanVK (GPU ARM Mali) са реализирани Vulkan разширения:
    • VK_EXT_vertex_input_dynamic_state/vertexInputDynamicState
    • VK_EXT_vertex_input_dynamic_state
    • VK_EXT_vertex_attribute_divisor
    • VK_KHR_maintenance4
    • VK_KHR_maintenance5
    • VK_EXT_direct_mode_display
    • VK_EXT_extended_dynamic_state
    • VK_KHR_shader_quad_control
    • VK_KHR_draw_indirect_count
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_terminate_invocation
    • VK_EXT_shader_demote_to_helper_invocation
    • VK_EXT_shader_replicated_composites
    • VK_EXT_depth_bias_control
    • VK_EXT_primitive_topology_list_restart
    • VK_EXT_image_2d_view_of_3d
    • VK_EXT_texel_buffer_alignment
    • VK_EXT_shader_subgroup_ballot
    • VK_EXT_shader_subgroup_vote
    • VK_KHR_load_store_op_none
    • VK_EXT_load_store_op_none
    • VK_EXT_inline_uniform_block
    • VK_EXT_texture_compression_astc_hdr
    • VK_EXT_depth_clamp_zero_one
    • VK_KHR_depth_clamp_zero_one
    • VK_EXT_depth_clip_control
    • VK_KHR_unified_image_layouts
    • VK_KHR_vulkan_memory_model
    • VK_EXT_descriptor_indexing
    • VK_KHR_maintenance6
    • VK_KHR_shader_clock
    • VK_KHR_shader_atomic_int64
    • VK_KHR_calibrated_timestamps
    • VK_EXT_non_seamless_cube_map
    • VK_ARM_shader_core_properties
    • VK_KHR_host_image_copy

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

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