发布 Mesa 22.3,免费实施 OpenGL 和 Vulkan

OpenGL 和 Vulkan API 的免费实现版本 - Mesa 22.3.0 - 已经发布。 Mesa 22.3.0分支的第一个版本处于实验状态——代码最终稳定后,将发布稳定版本22.3.1。

在 Mesa 22.3 中,Intel GPU 的 anv 驱动程序、AMD GPU 的 radv 驱动程序、Qualcomm GPU 的 tu 驱动程序以及模拟器模式 (vn) 中提供了对 Vulkan 1.3 图形 API 的支持。 Vulkan 1.1 支持在 lavapipe (lvp) 软件光栅器中实现,Vulkan 1.0 在 v3dv 驱动程序(来自 Raspberry Pi 4 的 Broadcom VideoCore VI GPU)中实现。

Mesa 还为 4.6、iris (Intel)、radeonsi (AMD)、zink 和 llvmpipe 驱动程序提供完整的 OpenGL 965 支持。 OpenGL 4.5 支持适用于 AMD (r600)、NVIDIA (nvc0) 和 Qualcomm Adreno (freedreno) GPU,OpenGL 4.3 适用于 virgl(用于 QEMU/KVM 的 virgil3D 虚拟 GPU),OpenGL 4.2 适用于 d3d12 驱动程序(用于组织 OpenGL 的层)在 DirectX 12 之上工作)。

主要创新:

  • Qualcomm Adreno GPU 的 freedreno 驱动程序提供对 OpenGL 4.5 图形 API 的支持,模拟器驱动程序 (vn) 支持 Vulkan 1.3 API。
  • Panfrost 驱动程序实现了在磁盘上缓存着色器的功能,并增加了对 Mali T620 GPU 的支持。 该驱动程序与 OpenGL 3.1 规范和 OpenGL ES 3.1 兼容。
  • RADV (AMD) Vulkan 驱动程序添加了对 GFX11/RDNA3 GPU(Radeon RX 7000 系列)的支持。 光线追踪的代码已经过优化。 添加了对 R8G8B8、B8G8R8 和 R16G16B16 像素格式以及 64 位顶点缓冲区格式的支持。 添加了对 ExtendedDynamicState2PatchControlPoints 标志的支持,该标志确定对 VK_EXT_extended_dynamic_state2 扩展的支持。 集成 Radeon 光线追踪分析器。
  • 该软件包包括 Rusticle 驱动程序以及 OpenCL 3.0 规范的实现,该规范定义了用于组织跨平台并行计算的 API 和 C 语言扩展。 该驱动程序是用 Rust 编写的,使用 Mesa 中提供的 Gallium 接口进行开发,并充当 Mesa 中存在的 Clover OpenCL 前端的模拟。 Clover 已经被废弃很长时间了,rusticl 被定位为它未来的替代品。 默认情况下禁用对 Rust 和 rustcl 的支持,并且需要使用显式选项“-D gallium-rustcl=true -Dllvm=enabled -Drust_std=2021”进行构建。 构建时,需要 rustc 编译器、bindgen 绑定生成器、LLVM、SPIRV-Tools 和 SPIRV-LLVM-Translator 作为附加依赖项。
  • 默认情况下,RadeonSI 驱动程序支持通过 OpenGL 进行多线程渲染。
  • 推出了 Mesa-DB,这是一种将数据存储在单个文件中的新型着色器缓存。
  • 添加了对 OpenGL 扩展的支持:
    • llvmpipe 的 GL_ARB_shader_clock。
    • zink 的 GL_KHR_blend_equation_advanced_coherent。
    • llvmpipe 的 GL_NV_shader_atomic_float。
  • 添加了对 Vulkan 扩展的支持:
    • Lavapipe 的 VK_KHR_shader_clock。
    • RADV、lavapipe 的 VK_EXT_attachment_feedback_loop_layout。
    • RADV 的 VK_KHR_global_priority。
    • RADV 的 VK_EXT_load_store_op_none。
    • RADV 的 VK_EXT_mutable_descriptor_type。
    • LVP 的 VK_EXT_shader_atomic_float。
    • VK_EXT_shader_atomic_float2 用于lvp。
    • v3dv 的 VK_EXT_image_robustness。
    • VK_EXT_extended_dynamic_state3 用于 lavapipe、RADV 和 ANV。
    • RADV 的 VK_EXT_extended_dynamic_state2。
    • v3dv 的 VK_EXT_pipeline_robustness。
    • ANV 的 VK_EXT_mesh_shader。

来源: opennet.ru

添加评论