RadeonSI Driver Now Uses ACO By Default For Pre-RDNA GPUs
([Mesa] 5 Hours Ago
Mesa 25.0 RadeonSI)
- Reference: 0001515683
- News link: https://www.phoronix.com/news/RadeonSI-ACO-Default-Pre-GFX10
- Source link:
As a very interesting end-of-year change for [1]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.
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.
See [2]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 [3]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.
[1] https://www.phoronix.com/search/Mesa+25.0
[2] https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32742
[3] https://gitlab.freedesktop.org/mesa/mesa/-/issues/12332#note_2711430
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.
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.
See [2]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 [3]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.
[1] https://www.phoronix.com/search/Mesa+25.0
[2] https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32742
[3] https://gitlab.freedesktop.org/mesa/mesa/-/issues/12332#note_2711430
fitzie