Valve's got a new shader compiler for AMD GPUs ready for testing

From LinuxReviews
Jump to navigationJump to search

Valve's "open-source graphics group" has been working on an alternative to the LLVM shader compiler currently used by all free graphics drivers. Their ACO shader compiler, specific to AMD hardware, has now reached a level of performance, stability and maturity where Valve feels comfortable asking for public feedback and testing.

Linux's dwindling market-share on Steam has in no way discouraged it's owner Valve from investing millions in the Linux ecosystem. Their alternative shader-compiler code-named ACO, specific to AMD GPUs, is one fruit of that effort.

Counter-Strike 4K linux-5.1.16.jpg

Why would they do this?

The Low Level Virtual Machine (LLVM) Mesa is currently using for shader compilation was written with an entirely different purposes in mind. It is a huge project with a massive code-base and that projects goals that are not graphics-related. That Mesa uses LLVM for shader compilation has more to do with the fact that LLVM is there and capable of doing it than it has to do with it's performance compiling shaders and the compiled shaders performance.

A very long blog-post written by Valve asset Pierre-Loup A. Griffais tells the tale of how Valve's "open-source graphics group" decided to write their own shader compiler with only gaming in mind to see how that would compare with the current LLVM solution. The source code is now publicly available at Microsoft Github.

The numbers Valve shared indicate that shader compile times are almost halved compared to LLVM. In game performance on the other hand is barely faster. Put differently, you will get faster game loading times and 2 more frames per second.

Valve's posted some a message about it's ACO shader compiler on the Mesa mailing list titled "ACO: A New Compiler Backend for RADV". There is a long way from that to actual inclusion in the Mesa driver Linux distributions ship. It will take time but it will happen:

"We'd like to upstream ACO as experimental driver option to ease development synchronization, get more feedback, but ultimately also to give access to the performance enhancements we achieved."

Daniel Schürmann in a message to the Mesa mailing list on July 3rd, 2019

Valve's looking for testers

Valve is looking for people to take on unpaid work on their behest. The would, concretely, like you to compile their experimental Mesa branch and report bugs and issues you run into while using it. has detailed ACO testing instructions for Ubuntu and something called "arch".

published 2019-07-04last edited 2019-07-04

(0 votes)

Add your comment
LinuxReviews welcomes all comments. If you do not want to be anonymous, register or log in. It is free.