contador web Skip to content

Implementation for Mesa Driver developed by Valve

Diolinux

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.

Speaking in very layman’s terms and in an extremely concise way: 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 included in Mesa Driver today, which we all use, is only a small part of a large project called LLVM (Low Level Virtual Machine). Precisely because it is only a part of a larger project, LLVM maintainers focus on keeping the software functional and stable, but not on optimization for games.

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

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

At first the Valve compiler will only work with the RADV driver (Driver Vulkan included in AMDGPU) in games and applications that use the Vulkan API. Apparently, the STEEL it will also be compatible with OpenGL, but not for now.

Although it is already included in Mesa 19.3, as it is still in an experimental phase, the STEEL it is not enabled by default. To activate it, it is necessary 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 it is now:

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

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

comparative-test-steel-vs-llvm-fastos

Check out the full article on the blog FastOS.

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

As it is still in the testing phase, the STEEL may have bugs and is not yet recommended for the average user. However, if you want to help in the development of the software, testing and reporting bugs, it will certainly be of great help to the developers. The more tests that are 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 software of this proportion without the certainty of a good result. As for whether the ACO will actually be better than the LLVM, only time and testing will tell.

Do you like Linux and technology? Have a question or problem that you can’t solve? Come be part of our community in Diolinux Plus!

It’s all personal for today! ?

Sources: Phoronix, Steam.


Have you seen any errors or would you like to add any suggestions to this article? Collaborate, click here.