We do often include affiliate links to earn us some pennies. See more here.

Recently we wrote about a new feature for Linux in the Steam Client Beta, where Steam can now sort out Vulkan shaders before running a game. With the latest build, it gets better.

The idea of it, as a brief reminder, is to prepare all the shaders needed for Vulkan games while you download and / or before you hit Play. This would help to stop constant stuttering seen in some games on Linux, mostly from running Windows games in the Proton compatibility layer, as native / supported Linux games would usually do it themselves. Just another way Valve are trying to get Linux gaming on Steam in all forms into tip-top shape.

Here's what's changed in the latest Steam Beta:

Linux Shader Pre-Caching

  • Added support for merging NVIDIA per-thread cache files after processing new Vulkan pipelines and after a game exits
  • Adjusted core count of background Vulkan pipeline processing to a quarter of logical cores by default
  • Changed processing tasks to idle priority
  • Updated Vulkan layer API version

Want to try out the latest Steam Beta? Go into Settings on Steam and it's on the first section you see:


Steam will then restart to do the update.

Will be great when this is rolled out to everyone, as it's a very clever way to get around the Proton shader stuttering issue using the open source Fossilize library and Vulkan layer.

Article taken from GamingOnLinux.com.
Tags: Beta, Steam, Update, Vulkan
46 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly. You can also follow my personal adventures on Bluesky.
See more from me
The comments on this article are closed.
All posts need to follow our rules. For users logged in: please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Guest readers can email us for any issues.
44 comments
Page: «2/3»
  Go to:

awesam May 30, 2020
This is interesting.

I've seen this Vulkan shader pre-compile feature try to compile shaders for OpenGL games like Deus Ex Mankind Divided?

It also tries to do it with Proton games that have other launchers like Uplay behind them and just get stuck at 0%.

Hmm... For me, the processing got stuck at 0% trying to pre-compile games that weren't even installed. My theory was that the issue got triggered when uninstalling a game as I reported on Steam for Linux Github

But there could be more to this problem than that, so anyone seeing problems with processing getting stuck infinitely at 0% should probably report it on Github to get to the bottom of this. I think it should at least time-out, and move on to the next game if for whatever reason it is unable to process a game.
CatKiller May 30, 2020
View PC info
  • Supporter Plus
If I have understood what a shader is, I can not fathom how this works?

Shaders are programs that run on your graphics card. When GPUs first became programmable, rather than fixed-function hardware pipelines, the first programs they could handle were for light calculations, so they're called shaders, but every part is programmable now.

The programs are written in whatever language and compiled to a portable Intermediate Representation, which is compatible with whichever cards follow the relevant standards. Those IRs are generally what get distributed with games, but they still can't be run directly. They need to be compiled into a form that will run on the specific hardware.

Once you've compiled the programs it would be handy if you could save them somewhere so that you didn't need to compile them again; that's the shader cache.


Last edited by CatKiller on 31 May 2020 at 4:07 am UTC
randyl May 30, 2020
Is there a way to check which games are using Vulkan shader preloading? When I first enabled it I saw Borderlands 3, No Man's Sky, ARK, and maybe Elite Dangerous, but I'm not sure about the last one.


Last edited by randyl on 30 May 2020 at 10:54 pm UTC
Leopard May 30, 2020
Is there a way to check which games are using Vulkan shader preloading? When I first enabled it I saw Borderlands 3, No Man's Sky, ARK, and maybe Elite Dangerous, but I'm not sure about the last one.

Every game that can be used with DXVK+vkd3d ( D3D9,10,11, even d3d8 titles that people use with d3d8on9 with Proton ) + native Vulkan games are suitable canditates.

So you can even see some shader compiling for native OGL games on your system despite you're not using them with dxvk etc, because some people ran those via Proton and and they have Foz pipelines on Steam's servers.
edo May 31, 2020
Very cool, but I also realized that if you use proton without steam you will not get any advantage, so this is a way to lock Linux players to steam
Laboratoryo_ni_Neil May 31, 2020
Anyone else having problems with the background processing getting stuck at 0% processing shaders with certain games?

I experience that in STRIDER
randyl May 31, 2020
Very cool, but I also realized that if you use proton without steam you will not get any advantage, so this is a way to lock Linux players to steam
That's a silly baseless claim. Proton is a custom wine compile and has nothing to do with shader pre-loading or its advantages. Lock-in means something can only be accessed through that lock or gate. Pre-caching shaders in no way locks anyone into anything. There is no lock-in here.
TheRiddick May 31, 2020
VALVE / Gabe if your listening, please put some extra effort into communicating when we might see EasyAntiCheat and BattlEye compatibility sometime Or what needs to happen to make it happen. :)

I can't properly play games like War Thunder or ARMA3 under Linux Proton atm due to it, and yes I know WarThunder has a OpenGL3.1 old client that works, its pretty dated and not fun to use! (their vulkan test client crashes/blacks out).

We need EAC and BE! If that can be made to happen (hell I'd pay money to help it happen!) it would be a HUGE game changer for Linux and Proton! (and by extension Wine I'd take a gander, unless its something specially done within Steam Client itself!)
Shmerl May 31, 2020
Do they cache it for each existing GPU architecture?
Kallestofeles May 31, 2020
This is crazy. I tried The Witcher 3 a few months ago and the shader-cache buildup was the last issue that I had with it - now I just fire up the game with the latest proton and it runs exactly the same as on Windows, if not even a bit better. Truly amazing work has been put into the whole Wine project. (I mean to wine, proton, dxvk and all the other derivatives of getting dx calls translated onto Vulkan)
It is truly an amazing time for anyone to give Linux desktop a go when looking into alternatives to Windows.
Shmerl May 31, 2020
With aco, shader compilation stuttering became a non issue practically anyway.
vivian-botte May 31, 2020
I'm waiting CS:GO with Source 2 under Vulkan to thank them :3
Leopard May 31, 2020
Do they cache it for each existing GPU architecture?

Foz pipelines are gpu and driver agnostic , which client utilize them to build shaders.

There is also shader cache sharing system too. That is gpu and driver specific. Mostly viable for OGL games because they don't have a shader building mechanism like Vulkan has on the client.
Leopard May 31, 2020
With aco, shader compilation stuttering became a non issue practically anyway.

I can't agree to this statement.

Games like Quake Champions ( has absurd amount of shaders and game is online ) are still a pain without Fossilize.

For my case ( i'm on NV but ACO and NV are not too far when it comes to shader compiling ) , Quake Champions basically gone from stutter fest to perfectly smooth. Literally at first run ; it is perfectly smooth.
Shmerl May 31, 2020
For my case ( i'm on NV but ACO and NV are not too far when it comes to shader compiling

How did you compare that? In my experience ACO made stutter a non issue. Especially combined with general shader cache and dxvk pipeline cache.


Last edited by Shmerl on 31 May 2020 at 3:07 pm UTC
Leopard May 31, 2020
For my case ( i'm on NV but ACO and NV are not too far when it comes to shader compiling

How did you compare that? In my experience ACO made stutter a non issue. Especially combined with general shader cache and dxvk pipeline cache.

Do you play a game like QC , Overwatch , Warframe,Dishonored etc?

If you don't , try one of them without any cache and see if ACO is enough or not.

Clearly not enough.
Shmerl May 31, 2020
If you don't , try one of them without any cache and see if ACO is enough or not.

Star Citizen is pretty shader heavy. Before aco it was stuttering a lot, with aco it became very playable. I don't have access to any others you mentioned.


Last edited by Shmerl on 31 May 2020 at 5:17 pm UTC
Sputnik_tr_02 May 31, 2020
Do they cache it for each existing GPU architecture?

Foz pipelines are gpu and driver agnostic , which client utilize them to build shaders.


I am using an optimus laptop with prime render offload (Which means my desktop and Steam runs on intel gpu but games run on Nvidia), does that mean my system will benefit from this as well?
jens May 31, 2020
  • Supporter
For my case ( i'm on NV but ACO and NV are not too far when it comes to shader compiling

How did you compare that? In my experience ACO made stutter a non issue. Especially combined with general shader cache and dxvk pipeline cache.

As far as I understood that is exactly the point: to provide an already built-up shader- and/or (not sure) dxvk pipeline cache for games that have never been touched. Of course the effect differs per games, but for some the already built-up cache can make quite a difference when starting for the first time or entering certain areas for the first time (and only then afaik).


Last edited by jens on 31 May 2020 at 6:34 pm UTC
kuhpunkt May 31, 2020
I'm waiting CS:GO with Source 2 under Vulkan to thank them :3

Probably very soon.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.