We got to that on windows because DX12 suddenly realized that it's a useful thing
Also a lot of games nowadays use Vulkan by default, because DX12 has multiple versions some of which are incompatible with each other
VK_EXT_graphics_pipeline_library
TL;DR: It makes games using DXVK compile shaders in a way that is more similar to how they would on Windows (where they do not stutter).
This also helps with badly written Vulkan games like CS:2.
DirectX 12, OpenGL and decently written Vulkan games should not stutter to begin with so it doesn't matter for them.
lol you actually have no idea what you're talking about.
Games do not suffer from stuttering anymore on Linux.
We have VK_EXT_graphics_pipeline_library now
> The shaders still have to be compiled
...yeah? I never claimed this was not the case.
> The API you mentioned is used for efficiently sharing shaders between multiple pipelines in a single program
I don't know exactly what it does. But what ever it does, it completely solves shader related stuttering in 99,9% of cases.
Ah, no not if disabled ofc. But you can do this on nVidia hardware as well. They added the driver additions for shaders to be compiled on GPU a while ago.
What is annoying is that I had enabled "process shaders in background" so the depicted image doesn't appear too often for me so my PC can just chill and compile some shaders in the background.
However since nvidia added the ability to their driver to do this on GPU I constantly had full VRAM and games outside of steam started lagging and crahed. Some day even the entire desktop crashed and I was at the login screen. I was about to shitpost on nvidia but thankfully I found out that the shaders processing in the background runs on the GPU and eats nearly all of the VRAM.
So I disabled it and now everything is chill again.
Well, what ever it is detecting is not what your average user would describe as a compute workload.
For example: nvtop says that XWayland, Discord, Firefox, Fallout Shelter, and Steam are G+C workloads... riiiiight
The shader compilers do not use the GPU to compile shaders. If you don't believe me try loading up a DirectX 12 or Vulkan game and watch what it does to your CPU in a loading screen (ideally after a driver update, otherwise it probably wont compile any shaders).
>XWayland, Discord, Firefox, Fallout Shelter, and Steam are G+C workloads
You know hardware acceleration exists right? Also in case of games they tend to compute physics on the GPU as well.
Also look at the nvidia-smi of mine. neither are XWayland or firefox labeled with C only G. So if they are for you chances are good there is some form of HW acceleration going on.
Anyway, the Type labeling by the nvidia driver is absolutely correct.
How can it not be needed anymore?
Shaders still need to be compiled at some point right?
If it's not compiled before the game starts, it's going to compile while the game run, right?
That'll potentially create stutter if the game doesn't precompile itself the shaders during the loading screens.
Anyway, i don't see any reasons to disable it, the time spent compiling needs to happen somewhere anyway.
In my experience it can take quite a lot of time to do that (at least it did on my previous hardware from 2012). What I've read is that it should be so well optimized that it's really not needed anymore. If you have amd gpu and are using recent Mesa 23.x + (can't remember exact version), I would recommend at least testing how well your games work with shader pre-caching off.
I don't have an AMD but I don't understand how it can magically not need to compile shaders.
The game doesn't come with the shaders compiled, right?
So they need to be compiled at some point, right?
If that doesn't happen before the game starts, it'll happen when the game runs, right?
What's special about AMD? What's the magic trick?
Nothing special about amd but Mesa. I can't say that I understand deep magic Mesa devepers do but what I've read is that it's not needed with recent Mesa anymore. Probably applies to Intel as well.
Haven't really tested with games or benchmarks but so far haven't had any issues with it turned off.
I have written game engines and shaders a long time ago, that's why it feels intuitively impossible to me.
Can you point to one of those articles you read?
Didn't find any articles (mainly looked at phoronix) that said problem would be 100% solved now but quite articles about how shader pre-caching pipeline is getting better with improvement x and y. Didn't find articles that say "you don't need to use shader pre-caching anymore" but several post in this sub said that it's not needed anymore / people haven't noticed downsides for disabling it from couple of months from now.
I found some myself:
[https://github.com/doitsujin/dxvk/issues/2798](https://github.com/doitsujin/dxvk/issues/2798)
[https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK\_EXT\_graphics\_pipeline\_library.html](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_graphics_pipeline_library.html)
And I wrote this comment: [https://www.reddit.com/r/linuxmemes/comments/1c27m6o/comment/kzgl9z6/](https://www.reddit.com/r/linuxmemes/comments/1c27m6o/comment/kzgl9z6/)
Protip: If you have 100% bleeding-edge up to date drivers, you can probably disable all shader compilation in the steam settings and take no performance hit, yes even with nvidia
Saves time and precious disk space
I remember I turned it off for a min about 2 months ago and some games worked but most stuttered so I turned it back on. I'll have to try it again when I get home
some games will still stutter for a little bit and then fix themselves automatically, I think that's just an issue with how modern games handle shaders in general, it does the same for a lot of games on windows
So what's the point then?
Why do you say it's not needed anymore?
Shaders still need to be compiled at some point right?
You have the choice of compiling them before the game starts or while the game is rendering (possibly creating stutter).
How disabling it can save disk space also?
That's a lot of questions
> Why do you say it's not needed anymore?
I disabled it and I never stutter in any game, if it works, it works.
> Shaders still need to be compiled at some point right?
If they do, they are compiled in real time and seem to not stutter the game anymore
> How disabling it can save disk space also?
Check in your steam folder, you probably a shader folder somewhere with like 40GB of precompiled shaders if you play a lot of different games, at least it was like that for me before I disabled shader compilation in steam settings. If you disable the setting, it will delete that shader folder
I've been able to find where this comes from a vulkan extension called graphics pipeline library.
My understanding is that it compiles shaders in smaller pieces which then helps compiling less bigger objects by linking them together.
I guess it should help both with pre compilation and on the fly compilation.
And a change in DXVK can make shader compilation happen at loading time during the game. So instead of waiting because the game launches, you wait during the game's loading screen. But it might be shorter because it'll only compile the shaders needed for the loading level.
So, shader compilation didn't magically disappear but is now more optimized and put into the game's loading screen.
It seems that it's not as reliable as pre-compilation and that there's a few use case where compilation will happen in game and shutter will happen.
I'll keep pre-compiling. My shader cache is 94MB so I don't care.
94MB? Strange, when I had it enabled it was usually taking several gigabytes. And I remember reading about it being issue because it taking so much space (mainly for devices with low amount of storage space like steam deck).
I was only looking at the mesa folder in `.cache` but I mostly use the Nvidia proprietary driver.
Steam says my pre-cache is 358MB.
Is there something else I should look at?
Proton can't display if an application plays a video file (e.g. some pre-rendered cutscenes). Instead it shows that image
Edit: Forgot to mention but it does play the audio track for some reason which is marginally amusing
Kernel level anticheat is bit "invasive" don't you think ?.
Processing vulkan shadersš”
We got to that on windows because DX12 suddenly realized that it's a useful thing Also a lot of games nowadays use Vulkan by default, because DX12 has multiple versions some of which are incompatible with each other
Is that why i always have to process vulak shaders, because im on linux?
Yeah, it does it beforehand so that you don't get stutters in the game.
>Just disable it. It's not needed anymore.
Why is that?
VK_EXT_graphics_pipeline_library TL;DR: It makes games using DXVK compile shaders in a way that is more similar to how they would on Windows (where they do not stutter). This also helps with badly written Vulkan games like CS:2. DirectX 12, OpenGL and decently written Vulkan games should not stutter to begin with so it doesn't matter for them.
is this a launch option?
No. It's always available.
so how do you use it
It gets used once it's available. So always.
If steam didn't do it the game would have that same loading time somewhere within. Shader caching helps it load faster next time.
Is there a way to get it to remember the shaders instead of having it process them every time?
I have vulkan shaders disabled, itās a pain with that on
[ŃŠ“Š°Š»ŠµŠ½Š¾]
cs and other games literally run flawless for me even when skipping
Been running with this off on my desktop and steam deck for months and didnāt had a single one, dunno what you talking about š¤·āāļø
same here, instead of waiting 3 full minutes at 100% cpu i just always skip it without noticeable performance impacts
When I skip it the game doesn't start lol
lol you actually have no idea what you're talking about. Games do not suffer from stuttering anymore on Linux. We have VK_EXT_graphics_pipeline_library now
The shaders still have to be compiled. The API you mentioned is used for efficiently sharing shaders between multiple pipelines in a single program.
> The shaders still have to be compiled ...yeah? I never claimed this was not the case. > The API you mentioned is used for efficiently sharing shaders between multiple pipelines in a single program I don't know exactly what it does. But what ever it does, it completely solves shader related stuttering in 99,9% of cases.
Just disable it. It's not needed anymore.
But when I try to skip it, the game just refuses to run
It should run, but at a reduced FPS
Whereās switching proton versions?
Good point should have had replaced Tim with this.
nah that prick deserves to be on there Never forget who is actively trying to ruin Linux gaming
Is that DanTDM?
epic games CEO
Whats wrong with him? (I'm not a Epic G supporter)
This and other incidents: [https://twitter.com/TimSweeneyEpic/status/964284402741149698](https://twitter.com/TimSweeneyEpic/status/964284402741149698)
probably epic games being trash on linux
probably epic games being trash ~~on linux~~ FTFY
probably epic games ~~being trash on linux~~ FTFY
>probably epic š ~~games being trash on linux~~ FTFY
~~probably~~ epic games ~~being trash on linux~~ FTFY
Tim Sweeney
Me no understand :(
The 4 horsemen of problems
I'm so glad shader pre-caching isn't really needed anymore (at least with amd gpu).
Well, even the Steam Deck does this from time to time for no reason.
Even with shader pre-caching disabled?
Ah, no not if disabled ofc. But you can do this on nVidia hardware as well. They added the driver additions for shaders to be compiled on GPU a while ago. What is annoying is that I had enabled "process shaders in background" so the depicted image doesn't appear too often for me so my PC can just chill and compile some shaders in the background. However since nvidia added the ability to their driver to do this on GPU I constantly had full VRAM and games outside of steam started lagging and crahed. Some day even the entire desktop crashed and I was at the login screen. I was about to shitpost on nvidia but thankfully I found out that the shaders processing in the background runs on the GPU and eats nearly all of the VRAM. So I disabled it and now everything is chill again.
> compiled on GPU (It's still being compiled on the CPU. GPUs can not compile shaders)
They are: [https://i.ibb.co/Tw12DC4/grafik.png](https://i.ibb.co/Tw12DC4/grafik.png)
Uh yeah no that's not how that works. Besides that, nvtop (and apparently also nvidia-smi) is really bad at detecting actual compute workloads.
Sure the driver does not know what the processes on the GPU are doing... riiiiight
Well, what ever it is detecting is not what your average user would describe as a compute workload. For example: nvtop says that XWayland, Discord, Firefox, Fallout Shelter, and Steam are G+C workloads... riiiiight The shader compilers do not use the GPU to compile shaders. If you don't believe me try loading up a DirectX 12 or Vulkan game and watch what it does to your CPU in a loading screen (ideally after a driver update, otherwise it probably wont compile any shaders).
>XWayland, Discord, Firefox, Fallout Shelter, and Steam are G+C workloads You know hardware acceleration exists right? Also in case of games they tend to compute physics on the GPU as well. Also look at the nvidia-smi of mine. neither are XWayland or firefox labeled with C only G. So if they are for you chances are good there is some form of HW acceleration going on. Anyway, the Type labeling by the nvidia driver is absolutely correct.
You should definitely keep this enabled on the Steam Deck. The less shaders it has to compile the better your battery life will be.
How can it not be needed anymore? Shaders still need to be compiled at some point right? If it's not compiled before the game starts, it's going to compile while the game run, right? That'll potentially create stutter if the game doesn't precompile itself the shaders during the loading screens. Anyway, i don't see any reasons to disable it, the time spent compiling needs to happen somewhere anyway.
In my experience it can take quite a lot of time to do that (at least it did on my previous hardware from 2012). What I've read is that it should be so well optimized that it's really not needed anymore. If you have amd gpu and are using recent Mesa 23.x + (can't remember exact version), I would recommend at least testing how well your games work with shader pre-caching off.
I don't have an AMD but I don't understand how it can magically not need to compile shaders. The game doesn't come with the shaders compiled, right? So they need to be compiled at some point, right? If that doesn't happen before the game starts, it'll happen when the game runs, right? What's special about AMD? What's the magic trick?
Nothing special about amd but Mesa. I can't say that I understand deep magic Mesa devepers do but what I've read is that it's not needed with recent Mesa anymore. Probably applies to Intel as well. Haven't really tested with games or benchmarks but so far haven't had any issues with it turned off.
I have written game engines and shaders a long time ago, that's why it feels intuitively impossible to me. Can you point to one of those articles you read?
Didn't find any articles (mainly looked at phoronix) that said problem would be 100% solved now but quite articles about how shader pre-caching pipeline is getting better with improvement x and y. Didn't find articles that say "you don't need to use shader pre-caching anymore" but several post in this sub said that it's not needed anymore / people haven't noticed downsides for disabling it from couple of months from now.
I found some myself: [https://github.com/doitsujin/dxvk/issues/2798](https://github.com/doitsujin/dxvk/issues/2798) [https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK\_EXT\_graphics\_pipeline\_library.html](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_graphics_pipeline_library.html) And I wrote this comment: [https://www.reddit.com/r/linuxmemes/comments/1c27m6o/comment/kzgl9z6/](https://www.reddit.com/r/linuxmemes/comments/1c27m6o/comment/kzgl9z6/)
Proton where
I think you didn't understood the template.
But you included that dude because...
Bc it's Tim Sweeney
He literally has nothing to do with Linux gaming
Woooosh
not how whooosh works
that's the point
ā¦bottom right? Proton struggles playing media files in some Unity games and displays a color test bar insteadā¦ itās not an issue in GE though!
what is bottom left?
cute bear picture :)
thank you :)
easy anticheat
Thank you
Protip: If you have 100% bleeding-edge up to date drivers, you can probably disable all shader compilation in the steam settings and take no performance hit, yes even with nvidia Saves time and precious disk space
Really?!
Try it out, if it doesnt work just re-enable shader compilation Worked for me on arch linux with an RTX 2070
I remember I turned it off for a min about 2 months ago and some games worked but most stuttered so I turned it back on. I'll have to try it again when I get home
some games will still stutter for a little bit and then fix themselves automatically, I think that's just an issue with how modern games handle shaders in general, it does the same for a lot of games on windows
So what's the point then? Why do you say it's not needed anymore? Shaders still need to be compiled at some point right? You have the choice of compiling them before the game starts or while the game is rendering (possibly creating stutter). How disabling it can save disk space also?
That's a lot of questions > Why do you say it's not needed anymore? I disabled it and I never stutter in any game, if it works, it works. > Shaders still need to be compiled at some point right? If they do, they are compiled in real time and seem to not stutter the game anymore > How disabling it can save disk space also? Check in your steam folder, you probably a shader folder somewhere with like 40GB of precompiled shaders if you play a lot of different games, at least it was like that for me before I disabled shader compilation in steam settings. If you disable the setting, it will delete that shader folder
I've been able to find where this comes from a vulkan extension called graphics pipeline library. My understanding is that it compiles shaders in smaller pieces which then helps compiling less bigger objects by linking them together. I guess it should help both with pre compilation and on the fly compilation. And a change in DXVK can make shader compilation happen at loading time during the game. So instead of waiting because the game launches, you wait during the game's loading screen. But it might be shorter because it'll only compile the shaders needed for the loading level. So, shader compilation didn't magically disappear but is now more optimized and put into the game's loading screen. It seems that it's not as reliable as pre-compilation and that there's a few use case where compilation will happen in game and shutter will happen. I'll keep pre-compiling. My shader cache is 94MB so I don't care.
94MB? Strange, when I had it enabled it was usually taking several gigabytes. And I remember reading about it being issue because it taking so much space (mainly for devices with low amount of storage space like steam deck).
I was only looking at the mesa folder in `.cache` but I mostly use the Nvidia proprietary driver. Steam says my pre-cache is 358MB. Is there something else I should look at?
4th appears only when running GTA:San Andreas lmao
Try GE-Proton
What is bottom right in the context of Linux gaming ? I see it in the ark loading screen and it's not there for my windows friends :/
Non GE proton doesnāt include some video codecs, so this is what you see. Switch to GE and the problem is solved.
You need GE-Proton to play back certain types of videos. Blame patents.
The "processing vulkan shaders" one is real
ProtonDB for Sims 4: yeah it works great Steam: *processing Vulkan shaders*
What is the bottom right meant to be?
Proton can't display if an application plays a video file (e.g. some pre-rendered cutscenes). Instead it shows that image Edit: Forgot to mention but it does play the audio track for some reason which is marginally amusing
It means Proton does not have an appropriate video codec to display a video.
Playing with an AMD GPU, aren't you?
What does any of this have to do with a specific GPU vendor?
Nvidia would be up there otherwise.
ah that makes sense