Currently the AMD OpenGL and Vulkan drivers both use a compiler thatâ€™️s part of the LLVM project, but Valve says that this project is â€œmassive,â€ÂÂ that it has many different goals, and with the â€œonline compilation of game shaders only being one of them.â€ÂÂ It also mentions that, because of their focus on different things, sometimes shader compilation times can be accidentally broken by devs working on other LLVM purposes. So the Valve team is working on a gaming-specific compiler for the open source Mesa driver project as an alternative to LLVM.
And while the actual gaming frame rate boosts maybe arenâ€™️t anything to really write home about the dramatic reduction in the time it takes to compile the shaders is massive. Changing from the RADV Mesa drivers using LLVM to the RADV drivers running ACO there is a decrease in compile time of over 45%.
Valve's ACO AMD Shader Compiler Now Can Handle Vertex Shaders
Valve's interestingÂ ACO shader compiler alternative to AMDGPU LLVMÂ currently for the RADV Vulkan driver as well as for RadeonSI OpenGL in the future now can handle vertex shaders.
Gaming on Linux is getting better and easier, not regretting the move.
I was doing most of my PC stuff on Linux but kept a Windows partition for playing games until the day Proton was launched. I wrapped up things and deleted my Windows partition and I'm not regretting it one bit either.
Today I tested NieR: Automata with ACO and I was able to run it at constant [email protected] with a RX 580 8GB after improving bit by bit from about ~50 FPS. I think the new driver had a lot to do with it but it is great nonetheless.
ACO now has vertex shader support which lowers compile time even lower. So glad Valve is addressing compile time. Main reason I hate gaming on Linux. This only applies to Vulkan.
“The AMD OpenGL and Vulkan drivers currently use a shader compiler that is part of the upstream LLVM project. That project is massive, and has many different goals, with online compilation of game shaders only being one of them. That can result in development tradeoffs, where improving gaming-specific functionality is harder than it otherwise would, or where gaming-specific features would often accidentally get broken by LLVM developers working on other things. In particular, shader compilation speed is one such example: it’s not really a critical factor in most other scenarios, just a nice-to-have. But for gaming, compile time is critical, and slow shader compilation can result in near-unplayable stutter.”
Until this is addressed for DirectX titles I'll still call Wine gaming a stuttering mess. Especially with how frequently I upgrade my video card drivers.