ACO Radeon Shader Back-End Adds Unit Testing Framework To Help Test Optimizations

Written by Michael Larabel in Radeon on 30 July 2020 at 03:17 PM EDT. 4 Comments
The popular "ACO" shader compiler back-end that recently was promoted to the default shader compiler for Mesa's open-source Radeon Vulkan driver (RADV) has long been testing with shaders and traces while now a proper unit testing framework is being introduced for verifying optimizations are correctly handled, ensuring no regressions, etc.

ACO continues on a nice upward trajectory this year with being the default over AMDGPU LLVM for the RADV driver in Mesa 20.2, Valve continuing to fund the developers working on it, RadeonSI OpenGL driver support still being worked on, and various performance optimizations continuing. For helping to keep on that trajectory, today a unit testing framework was merged for ACO.

To complement their shader-based testing, this unit testing framework is focused on looking at the generated shader intermediate representation (IR) and GPU Assembly. This can help diagnose optimizations gone awry or not having their intended impact. This unit testing can also work without an AMD GPU even being present on the system in just looking at the shader compiler output.

More details on this unit testing framework for ACO via this Mesa merge request. This framework has been in the works for roughly the past half-year by developers working under contract for Valve.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of 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 automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via

Popular News This Week