Release of Mesa 22.3, a free implementation of OpenGL and Vulkan

The release of the free implementation of the OpenGL and Vulkan APIs - Mesa 22.3.0 has been published. The first release of the Mesa 22.3.0 branch has an experimental status - after the final stabilization of the code, a stable version 22.3.1 will be released.

In Mesa 22.3, support for the Vulkan 1.3 graphics API is available in anv for Intel GPUs, radv for AMD GPUs, tu for Qualcomm GPUs, and in emulator mode (vn). Support for Vulkan 1.1 is implemented in the lavapipe (lvp) software rasterizer, and Vulkan 1.0 in the v3dv driver (GPU Broadcom VideoCore VI from Raspberry Pi 4).

Mesa also provides full OpenGL 4.6 support for the 965, iris (Intel), radeonsi (AMD), zink, and llvmpipe drivers. OpenGL 4.5 support is available for AMD (r600), NVIDIA (nvc0) and Qualcomm Adreno (freedreno) GPUs, OpenGL 4.3 for virgl (Virgil3D virtual GPU for QEMU/KVM), and OpenGL 4.2 for d3d12 driver (layer for running OpenGL over DirectX 12).

Main innovations:

  • The freedreno driver for Qualcomm Adreno GPUs supports the OpenGL 4.5 graphics API, and the emulator (vn) driver supports the Vulkan 1.3 API.
  • The Panfrost driver implements the ability to cache shaders on disk and adds support for the Mali T620 GPU. The driver is compatible with the OpenGL 3.1 specification and OpenGL ES 3.1.
  • Added support for GFX11/RDNA3 GPUs (Radeon RX 7000 series) in RADV (AMD) Vulkan Driver. The code for ray tracing has been optimized. Added support for R8G8B8, B8G8R8 and R16G16B16 pixel formats, as well as 64-bit vertex buffer formats. Added support for the extendedDynamicState2PatchControlPoints flag, which defines support for the VK_EXT_extended_dynamic_state2 extension. Integrated Radeon Raytracing Analyzer.
  • The Rusticl driver is included with the implementation of the OpenCL 3.0 specification, which defines the API and extensions of the C language for organizing cross-platform parallel computing. The driver is written in Rust, developed using the Gallium interface provided in Mesa and acts as an analogue of the Clover OpenCL frontend present in Mesa. Clover has long been in a derelict state and rusticl is positioned as its future replacement. Rust and rusticl support is disabled by default and requires building with explicit options "-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021". When building, the rustc compiler, bindgen, LLVM, SPIRV-Tools, and the SPIRV-LLVM-Translator are required as additional dependencies.
  • The RadeonSI driver has support for multi-threaded rendering via OpenGL enabled by default.
  • Mesa-DB is introduced, a new type of shader cache that stores data in a single file.
  • Added support for OpenGL extensions:
    • GL_ARB_shader_clock for llvmpipe.
    • GL_KHR_blend_equation_advanced_coherent for zink.
    • GL_NV_shader_atomic_float for llvmpipe.
  • Added support for Vulkan extensions:
    • VK_KHR_shader_clock for lavapipe.
    • VK_EXT_attachment_feedback_loop_layout for RADV, lavapipe.
    • VK_KHR_global_priority for RADV.
    • VK_EXT_load_store_op_none for RADV.
    • VK_EXT_mutable_descriptor_type for RADV.
    • VK_EXT_shader_atomic_float for lvp.
    • VK_EXT_shader_atomic_float2 for lvp.
    • VK_EXT_image_robustness for v3dv.
    • VK_EXT_extended_dynamic_state3 for lavapipe, RADV and ANV.
    • VK_EXT_extended_dynamic_state2 for RADV.
    • VK_EXT_pipeline_robustness for v3dv.
    • VK_EXT_mesh_shader for ANV.

Source: opennet.ru

Add a comment