ACO: Implementation for Mesa Driver developed by Valve

In July this year, Valve announced that it was working on the project. STEEL (AMD Compiler). A new shader compiler designed to improve gaming performance on AMD GPUs on Linux.

action-implementation-for-driver-table-developed-by-valve

To put it very simply and extremely briefly: The Shader Compiler is the software used by your GPU to produce effects, post processing, and the appropriate color levels for an image to be displayed on your screen.

The shader compiler is included with Mesa Driver today, and we all use only a small part of a large project called LLVM (Low Level Virtual Machine). Precisely because it is only part of a larger project, LLVM maintainers focus on keeping the software functional and stable, but not on optimizing for games.

The reason for this is that the massive LLVM project, and a fast shader compiler does not make much difference in most cases. In games, on the other hand, the speed with which the shader compiler can work may be the difference between whether or not you can play a game.

With that in mind, Valve is starting to create its own shader compiler from scratch. Its main objective is to create software from the beginning thought and designed to improve gaming performance on Linux. Behold, the day has come, and on September 19 of this year (2019) all the more than 25,000 lines of code in the STEEL have been included in Mesa Driver 19.3.

In principle the Valve compiler will only work with the RADV driver (Vulkan Driver included with AMDGPU) in games and applications that use the Vulkan API. By all indications, the STEEL It will also be OpenGL compatible, but not for now.

Although already included in Table 19.3, as it is still in the experimental phase, the STEEL does not come enabled by default. To activate it you need to use the variable RADV_PERFTEST = action in each application you want to run using the compiler.

Check below Valve's own test results comparing the performance of the STEEL with LLVM at the end of March, when development was still much less advanced than now:

test-comparative-between-driver-table-with-steel-llvm

The test pictured in the image below was made by Renato from the blog. FastOS, on September 5, in the game Rise of the Tomb Raider.

comparative-test-action-vs-llvm-fastos Check out the full blog article FastOS.

Although the current version of STEEL has been included in Mesa Driver, the development of new features will continue in parallel with this version, outside of Mesa Driver, until they are stable enough to be included in Mesa.

Because it is still in the testing phase, the STEEL may present bugs and is not yet recommended to the average user. But if you want to help in software development, testing and reporting bugs, it sure will be of great help to developers. The more testing is done on different games and hardware, the more information developers will have to improve the software.

To report bugs or make suggestions go to this link.

What do you think about ACO? I do not think that a company like Valve would develop such software without the certainty of a good result. As to whether ACO is really better than LLVM, only time and testing will tell.

Do you like Linux and technology? Got a question or problem you can't solve? Come join our community in the Diolinux Plus!

For today all staff!

_____________________________________________________________________________

See an error or would you like to add any suggestions to this article? Collaborate, click here.