Mesa 21 Is Released With Many Improvements For AMD Graphics Users
The latest version of the Mesa graphics stack for Linux adds support for sparse memory, rapid packed math, dynamic fragment shading and resizable bar to the RADV Vulkan driver for AMD, improved OpenGL support to the Panfrost driver for Mali graphics chips on ARM devices, some Intel speedups and a whole lot more.
The Fr-041: d e b r i s PC demo, released by the German demo group Farbrausch in 2007, running in Wine with DXVK converting Direct3D to Vulkan which is then rendered by the RADV Vulkan driver for AMD graphics cards.
Mesa is a large collection of graphics-related libraries that handle all the free software graphics drivers, OpenGL support, Vulkan support and much more. It is a fundamental part of GNU/Linux desktop systems.
The release-cycle for Mesa 21 was a bit hectic with quite a few hiccups and delays along the way. The shiny new Mesa version is finally out and on its way to the more bleeding-edge GNU/Linux distributions thanks to the hard work of release-manager Dylan Baker and a whole lot of other hard-working developers.
Marek Olšák is one of them. He was pretty much alone on team AMD this release-cycle, but he managed to make up for it with a whopping 278 commits. That makes him the single largest contributor to Mesa 21, outperforming Collabora's Alyssa Rosenzweig by a whopping 108 commits. Olšák contributed a whole lot to the various AMD drivers, but he is not the sole reason there is so many improvements on the AMD side in this release. Valve's Daniel Schürmann and Google's Bas Nieuwenhuizen are also notable for their many contributions to the AMD RADV Vulkan driver and the ACO shader compiler in this Mesa release.
Sparse Memory, "Rapid Packed Math" And Resizable BAR On AMD
"Sparse Memory" means that memory resources can be non-contiguous and re-bound to different memory allocations. It also relaxes the memory descriptor requirements. Most Vulkan objects, such as
VkImage, need to be completely and contiguously bound to a single
VkDeviceMemory object. Some objects do not and those objects, that are in the Vulkan API specification, can now be made as sparse resources when the AMD RADV Vulkan driver is used.
Software like the development version of VKD3D can already use this functionality for things like Direct3D 12 sparse texture support.
"Rapid Packed Math" is a marketing term AMD uses to describe two half-precision floating-point (FP16) operations within a single single-precision floating-point format (FP32) operation. The AMD RADV Vulkan driver can now use AMD-specific "Rapid Packed Math" operations on Vega and newer graphics cards from AMD. Most games do half-precision floating-point operations now and then, so this is helpful on the hardware that supports it, but it is not something that will have a gigantic impact since it is just one small part of a typical game's workload.
Those who happen to own a brand new Radeon RX 6000 card will be happy to know that there's also support for the
VK_KHR_fragment_shading_rate extension in Mesa 21. This extension can be used to dynamically adjust how parts, or fragments, of a scene are shaded on a per-region, per-draw or per-primitive basis. This extension is only available on brand new RDNA 2 based graphics cards (RX 6000-series), the vast majority of AMD graphics cards out there lack the necessary hardware.
Mesa 21 brings support for AMD Smart Access Memory, also known as resizable BAR, to both the RadeonSI OpenGL driver and the AMD RADV Vulkan driver. Very recent hardware and a fairly new kernel (5.10+) is required to use this functionality, and it must be enabled by a BIOS setting on the hardware where it is available.
Some who have tested it have mentioned that they get reduced performance in certain games with Mesa 21 when resizable BAR is turned on in BIOS, so your mileage may vary.
A few of the improvements to the AMD RADV Vulkan driver are more general in nature. The Stormblood Final Fantasy XIV Benchmark for Windows improved from a score of 5648 using Wine 6.3, DXVK 1.8.1 and Mesa 20.3.4 to 5850 with Mesa 21 on a box with an older RX 470 graphics card.
The difference between 5648 and 5850 is less than one percent, there is no huge general performance improvement in the AMD RADV Vulkan driver in Mesa 21 but there is, at least, a slight improvement to enjoy in graphical applications.
The compute performance the AMD RADV Vulkan driver offers has not improved since Mesa 20.3, not even a little. Our Vulkan compute image up-scaling benchmarks using RealSR and waifu2x are within the same half a second run-to-run variation with both Mesa 20.3 and Mesa 21. There is nothing new for those using Vulkan compute on AMD graphics cards. There are equally few improvements to enjoy in the Mesa Clover OpenCL driver. It is still stuck at OpenCL 1.1 and it couldn't produce a valid and correctly LuxMark benchmark result if its existence depended on it. Those who want to use OpenCL on AMD graphics hardware will still have to install the alternative AMD ROCm stack.
Intel were not very active during this Mesa release-cycle, but they did manage to squeeze some overall performance improvements to both their Intel Iris OpenGL driver and their ANV Vulkan driver into this release.
Intel put several pieces of code for Vulkan ray-tracing in place during the Mesa 21 release-cycle. Intel's existing CPU-integrated graphics chips won't be able to take advantage of this code, but their new dedicated Xe HPG cards will. It is quite possible that Intel will have cards fully supporting Vulkan ray-tracing before AMD gets there.
The Panfrost drivers for the Mali graphics chips that are very common on the ARM side have seen a lot of improvements mostly thanks to Alyssa Rosenzweig. The Panfrost t760+ driver can now do OpenGL 3.1 and the g31/g52/g72 driver can now do OpenGL ES 3.0.
The Freedreno driver for Qualcomm Adreno graphics has gained OpenGL 3.3 support.
OpenGL Without OpenGL By The Power Of Vulkan
Erik Faye-Lund from Collabora has done a lot of work on a very special Gallium driver called Zink that turns intermediary Gallium graphics calls into Vulkan API calls instead of graphics driver output. The idea is to make OpenGL work on platforms that do not support OpenGL but to support Vulkan.
"The Zink driver is a Gallium driver that emits Vulkan API calls instead of targeting a specific GPU architecture. This can be used to get full desktop OpenGL support on devices that only support Vulkan."
Devices with Vulkan support that do not support OpenGL are not common today, but Zink is a pretty neat technology that could be very useful for compatibility on future devices.
Valve had the most code commits overall with a total of 378, most of which came from Samuel Pitoiset and Rhys Perry. The developers-for-hire at Collabora (325) came in second place with 325 commits thanks to a strong team effort lead by Alyssa Rosenzweig, Boris Brezillon and Gert Wollny. Google came in third place with 306 commits and AMD got fourth price even though Marek Olšák was theor only notible contributor Intel, with just 186 commits in total, were barely trying.
|278||Marek Olšák||AMD Open Source Lab|
|Notable contributors to Mesa 21|
|70||Dylan Baker||Intel||36||Adam Jackson||Red Hat|
|69||Dave Airlie||Red Hat||33||Michel Dänzer||Red Hat|
|63||Jason Ekstrand||Intel||33||Iago Toral Quiroga||Igalia|
|57||Bas Nieuwenhuizen||32||Nanley Chery||Intel|
|55||Vinson Lee||San Diego Community College District||23||Ian Romanick||The Khronos Group|
|54||James Park||23||Andres Gomez||Igalia|
|53||Daniel Schürmann||Valve||22||Danylo Piliaiev||globallogic|
|37||Christian Gmeiner||Chaos Computing||21||Lionel Landwerlin||Intel|
|Mesa contributors with 2 to 20 commits|
The source-code for Mesa 21 can be acquired from mesa.freedesktop.org/archive/. The more bleeding-edge distributions will probably have it available in their repositories by next week while more stable-focused distributions will likely stick with Mesa 20 for the foreseeable future. Don't expect Debian to get it any time soon. You can check the Mesa 21.0.0 release notes if you want to see all the tiny details that where changed since Mesa 20 was released.