ACO should become the standard shader compiler in Mesa 20.2


Did you know that ACO (AMD Compiler) is a shader compiler created by Valve with the goal of replacing the LLVM? And consequently improve the performance of games on Linux?

Depending on what your hardware is, using ACO can make a significant difference in the performance of your games on Linux. Since, it was created from scratch with the aim of making games running on Linux and using an AMD GPU manage to get the most out of their hardware.

ACO what?

It’s been 9 months since we brought the first information about ACO here on the blog. Since then, the project is in constant evolution, having announced performance improvements, new features and even a increased compatibility adding support for AMD GPU’s of the GCN 1.0 microarchitectures.

After reporting all the main steps in the evolution of the ACO, we produced a article teaching you how to use it. And, to demonstrate that it’s not just “bullshit”, we also did several tests using the software and detailed the results for you in one more article (in which we even address, if the GameMode also brings good results).

The use of ACO became possible for a long time, since the software became part of the Mesa Driver in version 19.3 (currently distros like Ubuntu and Fedora already use version 20 of Mesa3D). However, because it is still in the experimental phase, ACO never became the standard shader compiler for Mesa Driver, which continues to use LLVM.

However, the growth that the ACO has experienced has had an effect, and today (06/24/2020) the software created by Valve was implemented as the standard shader compiler in the development version 20.2 of Mesa Driver.

ACO: the new Mesa Driver standard shader compiler

The procedures for such an implementation started in the beginning of this month (June), and since then the developers have been working hard to make this objective possible.

The next version of Mesa3D will have its “freezing” stage, which is the moment when the software versions are “frozen” so that the final stages of development can be carried out, in about a month. And that, if everything goes as expected, it should be enough time for all the implementation work to be carried out. Thus, making the ACO actually be the standard shader compiler in Mesa 20.2, which is due to be released in late August.

Even if expectations are actually met and ACO becomes the standard shader compiler, it does not mean that LLVM will be left out. At least not yet.

In order for ACO to be used, it is necessary to use an initialization parameter, if no parameter is informed, the standard LLVM compiler is used. When the ACO becomes the default, the situation will be exactly the opposite, so that a parameter will be needed to activate the LLVM, while failure to use this parameter will result in the use of the ACO.

The reasons for not immediately excluding LLVM are to make it easier to compare the performance of both shader compilers in specific cases, and then use these comparisons to help track bugs and improve the performance of the ACO itself.

A deserved victory

I have been testing the ACO for several months now, having seen several cases in which the software has caused an improvement in game performance, and also, some other cases in which there was no significant difference. Anyway, to date, I have not come across any “cons” in using ACO. And that’s why I think it’s great news that it is about to become the standard shader compiler.

This is undoubtedly a deserved victory for Valve and all the people directly and indirectly involved in the development of the ACO. And for all users who will increasingly be able to take advantage of this excellent feature.

Have you heard or tested the ACO? Tell us how your experience with the software has been, and what are your expectations for its future.

That’s all, folks! ?