Support us on Patreon to keep GamingOnLinux alive. This ensures we have no timed articles and no paywalls. Just good, fresh content! Alternatively, you can donate through PayPal, Flattr, Liberapay or Buy us a Coffee. You can also buy games using our partner links for GOG and Humble Store.

Valve continues to improve Linux Vulkan Shader Pre-Caching

By - | Views: 25,974

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
47 Likes, Who?
We do often include affiliate links to earn us some pennies. We are currently affiliated with GOG, Humble Store and Paradox Interactive. See more here.
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly came back to check 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.
See more from me
44 comments
Page: «2/5»
  Go to:

Vundult 30 May
Does anyone know if this will work with non-steam games added to your library?
F.Ultra 30 May
Quoting: VundultDoes anyone know if this will work with non-steam games added to your library?

I have a hard time believing that they even could make that work.
Xpander 30 May
Quake Champions runs super smooth™ now. Compared to stuttery mess it used to be on every new map.
Not liking the game itself much though. The class ability thing is a bit weird for game like this imo and the game is quite slow paced compared to say Xonotic.

Some random testing action:
https://youtu.be/5abdFqxp01E


Last edited by Xpander on 30 May 2020 at 4:08 pm UTC
AwesamLinux 30 May
I solved the issue with the background shader processing stalling at 0%, by uninstalling Steam and nuking the whole ".steam" folder the shadercache folder at where I have the Steam library. Then reinstalled Steam and the processing went without issues.

So the results are in, the TOP 10 games with the largest shader caches I currently have installed are:

261MB TEKKEN 7
204MB RESIDENT EVIL 2
198MB The LEGO NINJAGO Movie Video Game
176MB Street Fighter V
141MB Prey
131MB Vampyr
129MB A Plague Tale: Innocence
106MB SOULCALIBUR VI
89MB Planet Coaster
83MB Redout: Enhanced Edition

Not surprising to see TEKKEN 7 up there as it was a stutter fest :P
kokoko3k 30 May
Quoting: AwesamLinux
Quoting: kokoko3k
Quoting: Laboratoryo_ni_NeilIs this new feature of the Linux Steam client the answer to my question linked below?

https://www.reddit.com/r/linux_gaming/comments/gpnhr5/stuttering_due_to_shader_compilation_why_not_just/
Nope.
It downloads precompiled shaders, but it does not precompile.

There is a new "allow background processing of Vulkan shaders" option, that when enabled does appear to precompile :)

Maybe i'm missing something, but how can it knows in advance what shaders the game will need?
Do you have a source?
kuhpunkt 30 May
Quoting: VundultDoes anyone know if this will work with non-steam games added to your library?

Definitely not. You can do it with Remote Play, though.
AwesamLinux 30 May
Quoting: kokoko3k
Quoting: AwesamLinux
Quoting: kokoko3k
Quoting: Laboratoryo_ni_NeilIs this new feature of the Linux Steam client the answer to my question linked below?

https://www.reddit.com/r/linux_gaming/comments/gpnhr5/stuttering_due_to_shader_compilation_why_not_just/
Nope.
It downloads precompiled shaders, but it does not precompile.

There is a new "allow background processing of Vulkan shaders" option, that when enabled does appear to precompile :)

Maybe i'm missing something, but how can it knows in advance what shaders the game will need?
Do you have a source?

I don't understand how magic works myself and would like to see someone explain it in simple terms (Liam future article suggestion here :P )

But from my understanding, it uses Fossilize to somehow explore/record/replay the pipelines without having to actually play the game. If one searches Fossilize you find only a couple of articles on GOL and Phoronix about it like this for example.

I don't have better sources than that. But somehow it does work and is noticeable with certain games. Redout for example is so fast-paced it is easy to spot any stutter. With the background processing enabled the game is smooth on the very first run :)
tuubi 30 May
Quoting: AwesamLinuxI solved the issue with the background shader processing stalling at 0%, by uninstalling Steam and nuking the whole ".steam" folder the shadercache folder at where I have the Steam library. Then reinstalled Steam and the processing went without issues.

So the results are in, the TOP 10 games with the largest shader caches I currently have installed are:

261MB TEKKEN 7
204MB RESIDENT EVIL 2
198MB The LEGO NINJAGO Movie Video Game
176MB Street Fighter V
141MB Prey
131MB Vampyr
129MB A Plague Tale: Innocence
106MB SOULCALIBUR VI
89MB Planet Coaster
83MB Redout: Enhanced Edition

Not surprising to see TEKKEN 7 up there as it was a stutter fest :P
1.9GB for native Borderlands 2 here. :O No wonder it took a while to process.
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%.
Beamboom 30 May
If I have understood what a shader is, I can not fathom how this works? Can someone explain in very simple terms, please?

Shaders are what's deciding on how things will look with lights, shades and effects like glares, wetness, fire, all those things that happens on top of textures, right?

Well, in most games that will depend on what you do, when you do it and where you go? Like in GTA, there's time of day and weather, not to mention where on the map I drive?!
And - if there are some generally applicable pre-rendered work, then why not include that as part of the game install to begin with? And why are these pre-caching files handed out in small bits now and then?

I'm like... 100% blank!


Last edited by Beamboom on 30 May 2020 at 8:39 pm UTC
While you're here, please consider supporting GamingOnLinux on:

Patreon, Liberapay or PayPal Donation.

We have no adverts, no paywalls, no timed exclusive articles. Just 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!

You need to Register and Login to comment, submit articles and more.


Or login with...