發布 Mesa 22.3,免費實施 OpenGL 和 Vulkan

OpenGL 和 Vulkan API 的免費實施版本 - Mesa 22.3.0 已經發布。 Mesa 22.3.0 分支的第一個版本處於實驗狀態——在代碼最終穩定後,將發布穩定版本 22.3.1。

在 Mesa 22.3 中,對 Vulkan 1.3 圖形 API 的支持在英特爾 GPU 的 anv、AMD GPU 的 radv、高通 GPU 的 tu 和模擬器模式 (vn) 中可用。 對 Vulkan 1.1 的支持在 lavapipe (lvp) 軟件光柵化器中實現,在 v1.0dv 驅動程序(來自 Raspberry Pi 3 的 GPU Broadcom VideoCore VI)中實現 Vulkan 4。

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 驅動程序(用於在 DirectX 上運行 OpenGL 的層) 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 光線追踪分析器。
  • Rusticl 驅動程序包含在 OpenCL 3.0 規範的實現中,該規範定義了用於組織跨平台並行計算的 C 語言的 API 和擴展。 該驅動程序是用 Rust 編寫的,使用 Mesa 中提供的 Gallium 接口開發,並充當 Mesa 中存在的 Clover OpenCL 前端的模擬。 Clover 長期以來一直處於廢棄狀態,而 rusticl 被定位為未來的替代品。 默認情況下禁用 Rust 和 rusticl 支持,需要使用顯式選項“-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021”進行構建。 構建時,需要 rustc 編譯器、bindgen、LLVM、SPIRV-Tools 和 SPIRV-LLVM-Translator 作為附加依賴項。
  • RadeonSI 驅動程序支持通過默認啟用的 OpenGL 進行多線程渲染。
  • 引入了 Mesa-DB,這是一種將數據存儲在單個文件中的新型著色器緩存。
  • 添加了對 OpenGL 擴展的支持:
    • 用於 llvmpipe 的 GL_ARB_shader_clock。
    • GL_KHR_blend_equation_advanced_coherent 用於 zink。
    • 用於 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。
    • 用於 lavapipe、RADV 和 ANV 的 VK_EXT_extended_dynamic_state3。
    • RADV 的 VK_EXT_extended_dynamic_state2。
    • v3dv 的 VK_EXT_pipeline_robustness。
    • 用於 ANV 的 VK_EXT_mesh_shader。

來源: opennet.ru

添加評論