Every article tag can be clicked to get a list of all articles in that category. Every article tag also has an RSS feed! You can customize an RSS feed too!
We do often include affiliate links to earn us some pennies. See more here.

The work to improve gaming performance on Steam Deck and Linux desktops for AMD GPUs is always ongoing, and it seems we're set for another nice improvement to how smooth games are.

One of the biggest problems is shader compile stutter, where you play through a game first-time and see it stuttering about all over the place until the shaders get built. It's less of a problem in plenty of games if Valve have them ready for download but that's not always possible, and doesn't always solve it. Some games also update a lot and need shader cache updates often, this will again help with those times where it’s not yet available. For games not on Steam, it will also be a huge bonus win for performance.

DXVK 2.0 released back in November 2022 included some major changes to work around it, and work is ongoing in the AMD GPU driver RADV to make use it what's needed. Later NVIDIA drivers have it and the improvements there are quite impressive but the current experimental work in the AMD GPU driver needed work.

As Valve contractor Mike Blumenkrantz blogged about recently going over work they and others have done regarding the VK_EXT_graphics_pipeline_library Vulkan API extension, and the blog post is well worth a read for some background into it but to cut to the chase — the result of the work is a "50,000%" improvement in fast-linking which for gamers should result in a much improved experience for certain games.

The work should hopefully come in Mesa 23.1 due later this year where use of the noted Vulkan extension above should hopefully be turned on by default, and then for Steam Deck players specifically hopefully in something like SteamOS 3.5.

This and more was covered in my recent video:

YouTube Thumbnail
YouTube videos require cookies, you must accept their cookies to view. View cookie preferences.
Accept Cookies & Show   Direct Link
Article taken from GamingOnLinux.com.
28 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 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. Find me on Mastodon.
See more from me
The comments on this article are closed.
9 comments

soulsource Jan 31, 2023
Blumenkrantz' blog is worth reading. He has a very entertaining way to write about code optimization.
Ehvis Jan 31, 2023
View PC info
  • Supporter Plus
I've enabled proton experimental for a couple of games and it works nicely. It doesn't completely eliminate stutter, but it's definitely a big step up. The biggest test for it was Star Citizen, which still has noticeable stutter but more in line with DXVK_ASYNC builds. And a far cry from the multiple second stalls with plain DXVK.
Eike Jan 31, 2023
View PC info
  • Supporter Plus
Quoting: soulsourceBlumenkrantz' blog is worth reading. He has a very entertaining way to write about code optimization.

Thanks for saying that, I wouldn't have read the post without this.

(One takeaway for me is though that I'm still fine with having an Nvidia.)
t3g Jan 31, 2023
So this is going to be fixed later this year? Ouch it’s still January.
ripper81358 Jan 31, 2023
I wonder if VK3D-Proton also has support for this Vulkan Extension. Would make sense as most of the newer games rely on DirectX 12.
mr-victory Jan 31, 2023
Quoting: ripper81358I wonder if VK3D-Proton also has support for this Vulkan Extension. Would make sense as most of the newer games rely on DirectX 12.
As far as I know this extension isn't necessary for vkd3d due to differences between DX11 and DX12. For example Apex Legends has recently gained a DX12 mode which has not stuttered for me, at all.
Grogan Jan 31, 2023
View PC info
  • Supporter Plus
vkd3d-proton uses its own shader pipeline cache library mechanism (I think it was introduced in v2.6 I've been seeing messages on console related to it). It caches some DXIL/SPIRV primitives to reduce the work when the pipeline has to be compiled.

-rwxr-xr-x 1 grogan grogan 116238904 Dec 18 02:13 Borderlands3.exe
-rw-r--r-- 1 grogan grogan 1123144 Jan 30 20:21 vkd3d-proton.cache
-rw-r--r-- 1 grogan grogan 4572840 Jan 31 02:43 vkd3d-proton.cache.write

If that is disabled the pipeline library reverts to storing full info (if I'm understanding it correctly)

I think the best thing for DirectX 12 games is to NOT have RADV_PERFTEST=gpl set. This is from personal experience, but also inline with what I've (now) read.
lod Feb 1, 2023
Quoting: EhvisI've enabled proton experimental for a couple of games and it works nicely. It doesn't completely eliminate stutter, but it's definitely a big step up. The biggest test for it was Star Citizen, which still has noticeable stutter but more in line with DXVK_ASYNC builds. And a far cry from the multiple second stalls with plain DXVK.

If you use GPL right now, the shader cache gets disable. So your games will stutter much more at the beginning because it hast to build all shaders for each session. DXVK_ASYNC still works much better, even though it might corrupt your cache, it's still better than not having one at all.

BTW for all who want to check it out. It got introduced in mesa 22.3.0 and you have to set RADV_PERFTEST=gpl


Last edited by lod on 1 February 2023 at 12:34 pm UTC
Kuduzkehpan Feb 5, 2023
Quoting: lod
Quoting: EhvisI've enabled proton experimental for a couple of games and it works nicely. It doesn't completely eliminate stutter, but it's definitely a big step up. The biggest test for it was Star Citizen, which still has noticeable stutter but more in line with DXVK_ASYNC builds. And a far cry from the multiple second stalls with plain DXVK.

If you use GPL right now, the shader cache gets disable. So your games will stutter much more at the beginning because it hast to build all shaders for each session. DXVK_ASYNC still works much better, even though it might corrupt your cache, it's still better than not having one at all.

BTW for all who want to check it out. It got introduced in mesa 22.3.0 and you have to set RADV_PERFTEST=gpl

İ have started Star Citizen installed with LUG installer script (linux user group for star citizen)
and it has has very little stutters time to time. Almost 1 sec or so. BTW user name is KUDUZ if you wanna play with in star citizen.
also looking forward for Vulkan Api update for Star Citizen.
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.