经过三个月的开发,OpenGL 和 Vulkan API 的免费实现 Mesa 25.2.0 已经发布。 Mesa 25.2.0 分支的第一个版本处于实验状态 - 在代码最终稳定后,将发布稳定版本 25.2.1。
Mesa 25.2 在英特尔 GPU 的 ANV 驱动程序、AMD GPU 的 RADV 驱动程序、NVIDIA GPU 的 NVK 驱动程序、苹果 GPU 的 Asahi 驱动程序、高通 GPU 的 Turnip 驱动程序、ARM Mali GPU 的 PanVK 驱动程序、Lavapipe 软件光栅化器 (lvp) 和模拟器模式 (vn) 中增加了对 Vulkan 1.4 图形 API 的支持。v3dv 驱动程序(用于树莓派 4+ 的 Broadcom VideoCore GPU)和 dzn 驱动程序(基于 Direct3D 12 的 Vulkan 实现)支持 Vulkan 1.0。
Mesa 还为 iris(英特尔第八代及以上 GPU)、radeonsi(AMD)、Crocus(老款英特尔第四代至第七代 GPU)、AMD(r4.6)、zink、llvmpipe、virgl(用于 QEMU/KVM 的 virgil8D 虚拟 GPU)、freedreno(高通 Adreno)、d4d7(DirectX 600 之上的 OpenGL 层)和 asahi(苹果 M3 和 M3 芯片中使用的 AGX GPU)提供完整的 OpenGL 12 支持。NVIDIA(nvc12)GPU 提供 OpenGL 1 支持。softpipe(软件光栅化器)和 nv2(NVIDIA NV4.5)驱动程序提供 OpenGL 0 支持。panfrost(ARM Mali GPU)和 v3.3d(Broadcom VideoCore GPU)驱动程序支持 OpenGL 50。
主要创新:
- 适用于基于 V10 架构的 ARM Mali GPU 设备(例如 Mali-G610 和 Mali-G310)的 PanVK Vulkan 驱动程序已更新,以支持 Vulkan 1.4 图形 API(之前支持 Vulkan 1.2)。
- 适用于较旧 AMD GPU(包括 Radeon HD 600 系列)的 r7000 OpenGL 驱动程序现在增加了对 OpenGL 4.6 图形 API 的支持(之前支持 OpenGL 4.5)。
- NVK Vulkan 驱动程序新增对 NVIDIA Blackwell 和 Kepler GPU(GTX 600/700)的支持。Blackwell GPU 支持 Vulkan 1.4,而 Kepler GPU 支持 Vulkan 1.2 API(由于硬件限制,不支持较新版本的 Vulkan)。NVIDIA Maxwell GPU 完全兼容 Vulkan 1.4。
- NVK 驱动程序中使用的 NAK 着色器编译器(使用 Rust 编写)已得到优化。rustc-hash crate 包已添加到 NVK 驱动程序依赖项中,这将着色器编译时间缩短了约 12%。
- NVIDIA Maxwell、Pascal 和 Volta GPU 的 OpenGL 支持已默认从 Nouveau 驱动程序切换到 Zink 驱动程序,并与 NVK Vulkan 驱动程序配合使用。Zink 还用于为搭载 Blackwell GPU 的系统提供 OpenGL 支持(Nouveau OpenGL 驱动程序不打算添加对 Blackwell GPU 的支持)。Zink 在 Vulkan 之上提供了 OpenGL 4.6 的实现,允许在支持 Vulkan API 的设备上实现硬件加速的 OpenGL。Zink 的性能接近原生 OpenGL 实现。
- Honeykrisp Vulkan 驱动程序针对 Apple M1/M2 芯片中的 GPU 的性能得到了显著提升。
- Vulkan 驱动程序 RADV(AMD GPU)和 ANV(Intel)已更新,支持硬件加速解码 VP9 格式的视频。此功能由 Vulkan 扩展 VK_KHR_video_decode_vp9 实现,该扩展由 Vulkan 工作组于春季开发。从基于 RDNA 10 微架构的 Navi 1.0 GPU 开始,AMD GPU 均可使用硬件加速。
- 适用于基于 RDNA3 和 RDNA4 微架构的 AMD GPU 的 RADV Vulkan 驱动程序提升了光线追踪性能,并改进了对 FSR 4(FidelityFX Super Resolution)超采样技术的支持。新增了配置命令流队列优先级的功能(OpenCL 扩展 cl_khr_priority_hints)。
- 适用于旧款 AMD Evergreen 和 Cayman GPU 系列的 radeonsi OpenGL 驱动程序现已支持 OpenGL 4.6。并新增了对共享虚拟内存 (SVM) 的支持。
- OpenGL Iris 驱动程序和 Vulkan ANV 驱动程序支持英特尔 Wildcat Lake 处理器中使用的 GPU。Iris 和 ANV 还宣布稳定支持基于 Xe3 架构的英特尔 GPU,该架构用于 Panther Lake 处理器。对 Xe2 和 Xe3 GPU 系列的支持已得到改进。Iris 驱动程序现在支持共享虚拟内存 (SVM)。
- freedreno OpenGL 驱动程序已更新,以支持 Qualcomm Snapdragon X Plus SoC 中使用的 Adreno X1-45 GPU。
- Rusticl OpenCL 驱动程序持续开发,该驱动程序以 Rust 语言编写,并将取代 Clover 驱动程序。Rusticl 现已支持 SVM(共享虚拟内存)、sRGB 色彩空间(CL_sRGBA 和 CL_sBGRA 格式)的图像以及 FP16 格式(适用于 asahi、freedreno、llvmpipe、panfrost、radeonsi 和 zink 驱动程序的 OpenCL 扩展 cl_khr_fp16)。
- 新增了 Gallium3D 前端 MFT(媒体基础变换),它允许使用 D3D12(Direct3D 12)驱动程序来实现其他图形 API。由 Microsoft 为 WSL 开发(Windows 子系统 Linux).
- 移除了对 DRI2(直接渲染基础架构)的支持,并将其替换为使用 DMA-BUF 来组织对视频适配器的直接访问的 DRI3 接口。原因是 DRI3 接口已存在 10 多年,而 DRI2 早已过时,并且所有受支持的 GPU 驱动程序早已实现了 DRI3 接口。
- 对于使用缓冲区的传统方法的支持已经停止 - 只保留使用 dma-buf 的能力。
- 对非线程安全的 libX11 版本的支持已被放弃,仅保留对使用 XInitThreads() 调用的 libX11 1.8(2022 年 XNUMX 月)及更新版本的支持。
- 已弃用并默认禁用为 Wayland 实现的 EGL 扩展 EGL_WL_bind_wayland_display 的功能。要在客户端和服务器之间交换像素缓冲区,需要使用其他方法。 服务器 Wayland 建议使用 linux_dmabuf Wayland 协议。重新启用该协议需要在构建过程中指定“-Dlegacy-wayland=bind-wayland-display”标志。从 24.1 版本(2024 年 5 月)开始,Xwayland 无需 EGL_WL_bind_wayland_display 即可正常运行。
- 过时的 OpenCL 驱动程序 Clover 已被移除。对于 OpenCL,建议使用 RustiCL 驱动程序,该驱动程序功能更强大,并且支持更多 OpenCL 版本。
- ANV 驱动程序(英特尔)实现了 Vulkan 扩展:
- VK_KHR_shader_bfloat16
- RADV 驱动程序 (AMD) 实现了 Vulkan 扩展:
- VK_KHR_shader_bfloat16
- VK_KHR_robustness2
- VK_EXT_zero_initialize_device_memory
- VK_EXT_标量_块_布局
- VK_KHR_维护9
- 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_合作_矩阵
- zink 驱动程序实现了 Vulkan 扩展:
- NV_timeline_semaphore
- v3d 驱动程序(适用于 Raspberry Pi 4+ 的 Broadcom VideoCore GPU)实现了 OpenGL 扩展:
- 在 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_维护4
- VK_KHR_维护5
- VK_EXT_direct_mode_display
- VK_EXT_扩展_动态_状态
- VK_KHR_shader_quad_control
- VK_KHR_draw_indirect_count
- VK_KHR_shader_integer_dot_product
- VK_KHR_shader_terminate_inspiration
- VK_EXT_shader_demote_to_helper_inspiration
- 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_描述符_索引
- VK_KHR_维护6
- VK_KHR_shader_clock
- VK_KHR_shader_atomic_int64
- VK_KHR_caliblated_timestamps
- VK_EXT_non_seamless_cube_map
- VK_ARM_shader_core_properties
- VK_KHR_host_image_copy
来源: opennet.ru
