RadeonSI Driver Now Uses ACO By Default For Pre-RDNA GPUs

Written by Michael Larabel in Mesa on 30 December 2024 at 07:08 AM EST. 18 Comments
MESA
As a very interesting end-of-year change for Mesa 25.0, AMD is now using the ACO compiler by default for pre-GFX10 (before RDNA / Navi) GPUs with the RadeonSI Gallium3D driver.

This open-source AMD OpenGL driver is now using the Valve-developed ACO compiler by default in place of the AMDGPU LLVM shader compiler for older generations of AMD Radeon graphics. For Vega (GFX9) / CDNA and prior generations of AMD graphics, the ACO compiler back-end is used by default beginning with Mesa 25.0. The Mesa RADV Vulkan driver has long been using the ACO compiler by default for all supported GPU generations with Valve engineers working significantly on both. Now ACO has proven itself well enough to become the default for older AMD GPUs with the RadeonSI Gallium3D/OpenGL driver on Linux systems.

Radeon VII GFX9 graphics card


Qiang Yu of AMD made the change to enable ACO by default for pre-GFX10 GPUs. The AMD_DEBUG=usellvm environment variable can be used for falling back to the AMDGPU LLVM back-end if so desired.

RadeonSI ACO default pre-RDNA


See this merge for more details on this exciting change. Samuel Pitoiset of Valve and one of the leading RADV/ACO developers commented in there about making ACO the default for RDNA GPUs too. The explanation given was that more testing needs to be done before ACO will become the default there given more Linux users with RDNA graphics.

In another ticket around great Rusticl performance when using ACO, AMD's Marek Olšák commented:
"We will also need to re-evaluate ACO performance on gfx10-12. ACO's biggest performance advantage is VMEM clauses - something as mundane as putting some instructions next to each other has great positive impact on performance in some cases. That's why ACO is already enabled for clears, copies, and blits in radeonsi because there is simply no other choice. The next one is gfx12 streamout where ACO has a clear performance lead over LLVM and no ACO developers even have the hw. (or anybody else really)

gfx6-9 (excluding CDNA) is old hw. There is arguably no benefit in supporting 2 compilers for it, so let's have just one."

Exciting times for the open-source AMD Linux graphics stack in 2025.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week