RadeonSI Completes ACO Compiler Support With Mesa 24.0
With the newly-started Mesa 24.0 development cycle a very exciting feature landed today... The ACO compiler integration for the RadeonSI Gallium3D driver has appeared to effectively wrap up for optionally making use of this Valve-developed shader compiler as an alternative to the AMDGPU LLVM shader back-end.
RADV has long been using the ACO compiler for delivering quicker game load times and better performance overall. It's worked out very well and then over the past year we've seen ACO compiler support slowly come together for the RadeonSI Gallium3D (OpenGL) driver. With the newest code today for Mesa 24.0-devel, it appears to be largely over the finish line.
AMD engineer Qiang Yu had this merge request land for enabling ACO compilation for the part-mode merged shader and allowing RadeonSI to optionally build without LLVM support at all. Qiang Yu wrote in that merge request:
With this code in Mesa 24.0-devel, the ACO compiler will now be used if RadeonSI is built without the LLVM integration. Alternatively the AMD_DEBUG=useaco environment variable continues to work for switching over to the ACO compiler back-end compared to the default LLVM compiler back-end.
It's great to see this milestone finally achieved and I'll be running some RadeonSI ACO comparison benchmarks soon on Phoronix.
RADV has long been using the ACO compiler for delivering quicker game load times and better performance overall. It's worked out very well and then over the past year we've seen ACO compiler support slowly come together for the RadeonSI Gallium3D (OpenGL) driver. With the newest code today for Mesa 24.0-devel, it appears to be largely over the finish line.
AMD engineer Qiang Yu had this merge request land for enabling ACO compilation for the part-mode merged shader and allowing RadeonSI to optionally build without LLVM support at all. Qiang Yu wrote in that merge request:
"This is the final part to support aco compilation for all shader stages and modes."
With this code in Mesa 24.0-devel, the ACO compiler will now be used if RadeonSI is built without the LLVM integration. Alternatively the AMD_DEBUG=useaco environment variable continues to work for switching over to the ACO compiler back-end compared to the default LLVM compiler back-end.
It's great to see this milestone finally achieved and I'll be running some RadeonSI ACO comparison benchmarks soon on Phoronix.
18 Comments