this post was submitted on 18 Apr 2024
114 points (97.5% liked)

Linux Gaming

15285 readers
348 users here now

Gaming on the GNU/Linux operating system.

Recommended news sources:

Related chat:

Related Communities:

Please be nice to other members. Anyone not being nice will be banned. Keep it fun, respectful and just be awesome to each other.

founded 4 years ago
MODERATORS
 

So after one of my recent comments about if Linux is ready for gaming, I decided to pick-up a new Intel based wifi adapter (old one was broadcom and the drivers on fedora sucked and would drop connection every few minutes).

So far everything is great! Performance wise I can usually run every game about one tier higher graphically (med -> high) with the same or better performance than on Windows. This is on an rx 5700 and an ultrawide.

Bazzite is running great as always. Still getting used to the immutability of the system as I usually use Arch btw, but there are obviously workarounds to that.

Overall I'm still getting used to the Steam "processing vulkan shaders" pretty much every time a game updates, but it's worth it for the extra performance. Now I'm 100% Linux for my gaming between my Steamdeck and PC.

top 28 comments
sorted by: hot top controversial new old
[–] [email protected] 32 points 4 months ago (1 children)

Overall I’m still getting used to the Steam “processing vulkan shaders” pretty much every time a game updates, but it’s worth it for the extra performance.

That can be turned off, though. Haven't noticed much of a difference after doing so (though, I am a filthy nvidia-user). Also saving quite a bit of disk space while too.

[–] [email protected] 17 points 4 months ago* (last edited 4 months ago) (1 children)

Yeah I saw that when I was previously running into this, but wasn't sure if it would leave performance on the table. Also, I'm curious if you could run it once, turn it off so you don't process them again, and if that would be beneficial for subsequent runs of the game even after updates (assuming not since they'd probably be invalidated).

[–] [email protected] 15 points 4 months ago (2 children)

turning it off will wipe the cached shaders. That cleaned up like ~40 GB (IIRC) for me, without any noticeable difference in performance, stability or smoothness. Though my set of games at the time wasn't all that big: path of exile, subnautica: below zero, portal 2 and some random smaller games.

[–] [email protected] 18 points 4 months ago* (last edited 4 months ago) (1 children)

Turning it off just pushes the shader cashe-ing to runtime. You might have micro stutters, but it's temporary as things get cashed as you play.

[–] [email protected] 1 points 4 months ago (1 children)

yep, I'm aware. I just haven't observed* any compilation stutters - so in that sense I'd rather keep it off and save the few minutes (give or take) on launch

*Now, I'm sure the stutters are there and/or the games I've recently played on linux haven't been susceptible to them, but the tradeoff is worth it for me either way.

[–] [email protected] 6 points 4 months ago* (last edited 4 months ago) (1 children)

If you're using AMD, you probably have ACO compilation which tends to be much faster than LLVM.
For me I use pre-compilation + ACO + DXVK Async so it compiles and cache super quickly.

[–] [email protected] 1 points 4 months ago (1 children)

amd cpu, but nvidia gpu, so as far as I'd understand, not using ACO then?

[–] [email protected] 4 points 4 months ago* (last edited 4 months ago)

Correct. Your GPU is probably just really fast.
NVK is going to be killer on your system.

[–] [email protected] 4 points 4 months ago (3 children)

Aah okay that makes sense. I wouldn't mind the extra space.

If that's turned off, do you know if the game generates and caches shaders as you play? If so, does that also apply to games run outside of Steam?

Currently I'm just playing games like Hunt Showdown and Helldivers.

[–] [email protected] 4 points 4 months ago

For Hunt Showdown specifically, I have tried skipping pre-caching before and the load into a level took so long that I got disconnected from the match. I recommend keeping it enabled for multiplayer games for that reason.

[–] [email protected] 2 points 4 months ago* (last edited 4 months ago)

It's usually disabled outside of steam. However you can use environment variables :

DXVK_ASYNC=1
DXVK_STATE_CACHE=true
DXVK_SHADER_CACHE=true
DXVK_STATE_PATH=
DXVK_STATE_CACHE_PATH=
[–] [email protected] 2 points 4 months ago* (last edited 4 months ago)

well, I do have this one game I've tried to play, Enshrouded, it does do the shader compilation on it's own, in-game. The compiled shaders seem to persist between launches, reboots, etc, but not driver/game updates. So it stands to reason they are cached somewhere. As for where, not a clue.

And since if it's the game doing the compilation, I would assume non-steam games can do it too. Why wouldn't they?

But, ultimately, I don't know - just saying these are my observations and assumptions based on those. :P

[–] [email protected] 18 points 4 months ago (1 children)

If you allow background processing of shaders, and leave steam running while your doing other stuff a bit. You won't even notice them. At least I don't.

[–] [email protected] 8 points 4 months ago

Hmm that's not a bad idea. I am running an older setup so I'll have to see how that fairs while I do normal tasks.

[–] [email protected] 8 points 4 months ago

I’m not excusing it, but it makes sense technically because we can’t directly execute the D3D shaders, and converting it just-in-time could cause initial stuttering. It’s a kind of vendor lock-in in my view, and some translation step is needed. Steam even goes a step further and tries to ship you pre-compiled shaders, but it’s not perfect and especially games that update often can end up generating the shaders locally on a regular basis.

I’ve definitely noticed this, but it hasn’t stopped me from enjoying my games so far.

[–] [email protected] 7 points 4 months ago (1 children)
[–] [email protected] 3 points 4 months ago

Thanks! It feels good to be back.

[–] [email protected] 2 points 4 months ago (2 children)

I went through Ubuntu, PopOS, and Nobara before I landed on Bazzite and so far it’s been the one that just works for me. I love all the built in tools like cooler control and the fact that I can just roll it back on boot if I mess something up. The only thing I’m missing so far is that I was using the Barrier app to control my work pc during the day but it doesn’t work on Wayland. I also just made the switch to an AMD gpu and I really like the adrenaline software on windows.

[–] [email protected] 2 points 4 months ago (1 children)

When you log in there's a gear icon on the right where you can switch to Xorg

[–] [email protected] 1 points 4 months ago

Ah, that’s right. I was having issues with xorg at one point and started using Wayland and completely forgot I could switch. I’ll see if it works now.

[–] [email protected] 1 points 4 months ago (1 children)

LACT isn't a bad stand-in for some of adrenaline's features, but it obviously doesn't cover everything.

[–] [email protected] 1 points 4 months ago

So, what about stuff like frame generation, anti lag, boost, etc? Is there no way to use these on Linux? It’s not a dealbreaker to me but it was cool to play with.

[–] [email protected] -4 points 4 months ago (2 children)

Overall I’m still getting used to the Steam “processing vulkan shaders” pretty much every time a game updates

Start game, see popup, go to kitchen to grab some snacks, bring out trash, have a quick chat with the neighbor, go back inside, use the bathroom, come back to computer - game is just starting.

[–] [email protected] 10 points 4 months ago (1 children)

Usually takes like 30 seconds or less on my games.

[–] [email protected] 2 points 4 months ago (1 children)
[–] [email protected] 1 points 4 months ago

I wonder if it’s the games we play or our systems. Only one that has ever taken more for me is Spider-Man.

[–] [email protected] 5 points 4 months ago (1 children)

For me more often it goes like this:

Friend: Wanna play [game]?

Me: sure. launches game

Friend: Alright the game lobby's ready, come and join it.

Me: (Processing vulkan shaders, 2%) I'll be there in a bit, it's taking a while to start.

[–] [email protected] 2 points 4 months ago

I only have this with Overwatch not sure why