ACO (short for AMD Compiler) is a new compiler backend with the goal to replace LLVM for Radeon hardware for the RADV driver.

ACO currently supports only VS, PS and CS on VI and Vega. Note that there are some optimizations missing because of unmerged NIR changes which may decrease performance.

Full commit history can be found at https://github.com/daniel-schuermann/mesa/commits/backend

Co-authored-by: Daniel Schürmann daniel@schuermann.dev

Co-authored-by: Rhys Perry pendingchaos02@gmail.com (The second main author)

Co-authored-by: Bas Nieuwenhuizen bas@basnieuwenhuizen.nl (Initial setup and interface)

Co-authored-by: Connor Abbott cwabbott0@gmail.com (Initial shader_ballot implementation)

Co-authored-by: Michael Schellenberger Costa mschellenbergercosta@googlemail.com (Refactoring with modern C++)

Co-authored-by: Timur Kristóf timur.kristof@gmail.com (Initial Navi bits, more to come...)

For full performance, the following MRs are required: !1240 (merged) !1239 (merged) !1236 (closed) !1664 (closed) !1893 (merged)

As experimental feature development will continue out-of-tree on the master branch (at least for a while), for best performance, bug reports and requests, please refer to https://github.com/daniel-schuermann/mesa