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

The release of the free implementation of the OpenGL and Vulkan APIs - Mesa 21.0.0 is presented. The first release of the Mesa 21.0.0 branch has an experimental status - after the final stabilization of the code, a stable version 21.0.1 will be released. Mesa 21.0 has 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) and NVIDIA (nvc0) GPUs, and OpenGL 4.3 for virgl (Virgil3D virtual GPU for QEMU/KVM). Vulkan 1.2 is supported for Intel and AMD cards, and Vulkan 1.0 for VideoCore VI (Raspberry Pi 4).

Main innovations:

  • The Zink driver (an implementation of the OpenGL API on top of Vulkan) provides support for OpenGL 4.6. Zink allows you to get hardware accelerated OpenGL if you have drivers in your system that are limited to supporting only the Vulkan API. The performance of Zink is close to that of native OpenGL implementations.
  • The llvmpipe driver, designed for software rendering, supports OpenGL 4.6.
  • The Freedreno driver, which is used for the graphics subsystem of Qualcomm chips, supports OpenGL ES 6 for the Adreno a3.0xx GPU.
  • The Panfrost driver for GPU Midgard (Mali-T7xx, Mali-T8xx) and Bifrost (Mali G3x, G5x, G7x) supports OpenGL 3.1, as well as support for OpenGL ES 3.0 for GPU Bifrost.
  • The radeonsi driver supports the OpenGL extensions GL_EXT_demote_to_helper_invocation and GL_NV_compute_shader_derivatives. For the game "Counter-Strike: Global Offensive" the optimization mode "mesa_glthread" is enabled by default, which allows to increase performance by 10-20%. Implemented optimizations that affect the passing of SPECViewPerf tests. Added support for the Radeon GPU Profiler (RGP) profiling tool. Added support for Smart Access Memory technology for Zen 3 and RDNA 2 GPUs. Added support for HEVC SAO encoders (Sample Adaptive Offset, for GPUs supporting VCN2, VCN2.5 and VCN3 engines) and AV1 decoders (for RDNA 2/RX 6000 and only through the OpenMAX interface).
  • RADV Vulkan driver (for AMD cards) adds support for Rapid packed math (16-bit vectorization) and Sparse memory (allows you to lay out resources such as images and textures inconsistently and reattach them to different memory allocations). Optimized performance for RX 6000 series cards. Added VK_VALVE_mutable_descriptor_type and VK_KHR_fragment_shading_rate extensions (RDNA2 only).
  • Intel ANV and Iris drivers add performance optimizations and offer initial support for Vulkan ray tracing extensions implemented in Xe HPG graphics cards.
  • Added support for the EGL_MESA_platform_xcb extension, which allows applications to create EGL resources from X11 resources without using Xlib.
  • The Vulkan driver V3DV, developed for the VideoCore VI graphics accelerator used in Raspberry Pi 4 boards based on the Broadcom BCM2711 chip, has added support for Wayland WSI (Windowing System Integration), which allows accessing the Vulkan API from Wayland-based environments.
  • The initial implementation of the layer that translates OpenGL calls to the DirectX 12 API was adopted to organize the work of graphic applications in the WSL (Windows Subsystem for Linux) environment. In addition, the spirv_to_dxil library is included for converting the intermediate representation of SPIR-V shaders to DXIL (DirectX Intermediate Language), developed by Microsoft.
  • Redesigned and significantly improved support for Haiku OS.
  • Removed glx_disable_oml_sync_control, glx_disable_sgi_video_sync and glx_disable_ext_buffer_age settings from driconf.
  • Removed support for DRI1 and stopped loading DRI drivers from versions of Mesa below 8.0.
  • Removed the swrast driver, built on the basis of the classic DRI interface and intended for OpenGL software rendering (the remaining software rendering drivers llvmpipe and softpipe are noticeably ahead of swrast in terms of performance and functionality). The removal of swrast was facilitated by the presence of many unresolved problems and the occurrence of regressions, despite the fact that this driver is no longer used in distributions.
  • The old classic version of the OSMesa API has been removed (Gallium-based OSMesa is left), which allows rendering not to the screen, but to a buffer in memory.

    Source: opennet.ru

Add a comment