Mesa is a long-running project that started life as an open-source driver, bringing the OpenGL graphics API to a host of different platforms. Today, developers from AMD, Google, Intel, and others all take part. One of the most well-known Mesa drivers is RADV: A Vulkan-based driver specifically for AMD’s GPUs running on a Linux operating system. A recent update to them, created by Valve’s developers, has added a neat little performance boost for any device using them.
Naturally, what’s been done is all very complicated, but it comes down to this: Drivers for graphics cards contain a program called a compiler that converts shader programs that a game or application has issued into a binary format that the GPU can then run.
AMD’s Linux driver for its Radeon graphics chip has its own compiler (known as LLVM) but RADV uses one that Valve created, called ACO (literally Amd COmpiler).
And it’s this that has been given a vital update by software developers within the Steam Deck team, as reported by Phoronix. The tweaks to the compiler have resulted in a reduction in the number of instructions the GPU has to process for the same outcome, helping to decrease the overall code size and boosting runtime performance.
According to Phoronix, some people have experienced performance gains in games like Cyberpunk 2077 by as much as 14%. It’s not clear under what circumstances such an increase was seen but even if it’s only a small percentage gain for the most part, it’s still a completely free uplift.
Why would Valve be involved in all of this? It’s all down to the Steam Deck, as the software that runs it (SteamOS) is Linux-based and uses the RADV driver for the integrated GPU inside the AMD custom processor that powers the handheld PC. Valve’s contributions to the Mesa project don’t just benefit itself, as anyone can download the driver and use it on their own PC.
Given that all this work is entirely open-source, AMD’s graphics developers will be able to view the changes and possibly implement some of them into their compiler. Or perhaps not, as the consensus is that ACO is better than LLVM, though it is specifically designed to work in RADV and not directly with AMD’s own Linux drivers.
Shader compilers in GPU drivers are put under a lot of stress in today’s uber-graphics games so any improvements, no matter how small they are, are going to be well received. Making them better is not a trivial thing and Valve deserves plenty of hat-tipping for its work in this area.
If you own a Steam Deck, just make sure you keep the software and drivers as up-to-date as possible, if you want to join the compiler performance party.