this post was submitted on 22 Nov 2023
19 points (85.2% liked)

Linux Gaming

15512 readers
104 users here now

Discussions and news about gaming on the GNU/Linux family of operating systems (including the Steam Deck). Potentially a $HOME away from home for disgruntled /r/linux_gaming denizens of the redditarian demesne.

This page can be subscribed to via RSS.

Original /r/linux_gaming pengwing by uoou.

Resources

WWW:

Discord:

IRC:

Matrix:

Telegram:

founded 2 years ago
MODERATORS
 

Hey all, I have a RTX 3060 and a Ryzen 5600G and I'm on Ubuntu 22.04. Since Steam has shader pre-processing on Linux I thought I'd ask on a Linux gaming community about this. I noticed that when Steam processes Vulkan shaders, it uses the CPU (my CPU heats up a lot and the process manager shows CPU being used while GPU is not used at all). Is there a way to make Steam use the GPU to process Vulkan shaders instead, or am I wrong and Vulkan shaders have to be processed on CPU? I'd presume that things like shaders would process faster on a GPU (it takes a long time for them to process on the CPU). Anyone know anything about this?

top 12 comments
sorted by: hot top controversial new old
[–] flubba86@lemmy.world 32 points 1 year ago (1 children)

Your CPU compiles shaders, the GPU runs them. Vulkan shader pre-processing is a form of pre-compiling all the possible shaders your GPU might need before it runs the game (to avoid stutters and freezes later). This is done on the CPU.

[–] Mounticat@kbin.social 3 points 1 year ago

Thanks! Makes sense. I saw "shaders" and linked it to the GPU.

[–] tal@lemmy.today 26 points 1 year ago (1 children)

I don't believe that there's a shader compiler that runs on the GPU.

[–] deathmetal27@lemmy.world 0 points 1 year ago (1 children)

Valve created the ACO shader compiler, but it's only for AMD GPUs.

[–] tal@lemmy.today 16 points 1 year ago (1 children)

ACO runs on the CPU.

The output it produces is for AMD GPUs.

[–] deathmetal27@lemmy.world 1 points 1 year ago

Oh, my bad. I think I misremembered.

[–] Peafield@programming.dev -1 points 1 year ago* (last edited 1 year ago) (3 children)

I ran into this exact same problem and spent a painfully long week trying to fix it. Unfortunately I couldn't... My only solution was to switch distros and the problem disappeared. I went with Fedora and now every game works like a dream. I still don't know what the issue was but it seems to be something to do with having an AMD system and using steam on Ubuntu.

Probably not the solution you're looking for, but it is a solution!

[–] tal@lemmy.today 12 points 1 year ago* (last edited 1 year ago) (1 children)

You can turn off shader precompilation in Steam, but that's not tied to the distro.

If you have it off, you won't need to have the pass run before starting a game, but then the problem that it was aimed at solving comes up -- shader compilation has to happen during gameplay, and this can cause momentary hiccups when a shader is used for the first time.

Steam can optionally do background shader compilation, in which case it'll run at some point after updating a game, rather than right before a game runs. That may or may not be what one wants.

[–] Mounticat@kbin.social 2 points 1 year ago

Interesting! I think I'll keep it on and just deal with the fact that it runs on CPU and takes a while, then. I was just wondering if it running on CPU was a mistake or something wrong on my part.

[–] madmonki@lemmy.world 2 points 1 year ago (1 children)

My guess is your mesa driver was old so you didn't have graphics pipeline library enabled by default. distros doesn't differ but packages.

[–] Peafield@programming.dev 1 points 1 year ago

Nope. Had the latest mesa drivers I could get and it still didn't work.

[–] ichbinjasokreativ@lemmy.world 1 points 1 year ago

All-amd Ubuntu user here. No issues.