There's another release of the community-made compatibility layer GE-Proton with version 7-45 out now, and this one removes a popular patch to help game performance but there's a good reason for that.
When DXVK 2.0 released, the software that does the Direct3D 9 / 10 / 11 translation to Vulkan, it came with major changes to shader compilation. Thanks to pulling in support for the VK_EXT_graphics_pipeline_library extension, it allows it to compile the shaders when games load their D3D shaders, rather than at draw time — the result is that games should perform better and reduce the stutter.
To work with it, you do need updated drivers with the recommended versions being 520.56.06 for NVIDIA and 22.2 for Mesa (AMD / Intel). AMD RADV users need to use "RADV_PERFTEST=gpl" to enable it.
So, with it mostly taking over the job of the old dxvk-async patch, GE-Proton has removed it. Another reason though, as pointed out in the release notes, is that dxvk-async causes problems with the dxvk-cache and it seems the developer on dxvk-async no longer uses it either.
For those who still need it, for whatever reason, you can just use older versions of GE-Proton.
Need a primer on how to actually use GE-Proton? You can see my previous guide here but to save you clicking around the video and steps are below:
Direct Link
Text Guide:
- Download
- Desktop: head to the official website, scroll down and pick your favourite download option either AppImage or Flathub.
- Steam Deck: simply download ProtonUp-Qt from Discover in Desktop Mode (Steam Button -> Power - Switch to Desktop).
- Load ProtonUp-Qt.
- Make sure it's set to Steam at the top and select to install GE-Proton.
- Reload Steam to update the compatibility layer list.
- In Steam:
- Desktop: right click a game and go to Properties.
- Steam Deck: find the game in your library, go to the little COG on the right and then select Properties.
- Compatibility menu -> Tick the box, select GE-Proton from the drop-down
Doesn't this also require clearing the shader cache?
Not unless there is a bug
Also note that the ANV MR hasn't been merged yet. It's been sitting for 9 months.
Radv support via the env var should first come in Radv 23.0 afaik
Last edited by Blisto on 19 January 2023 at 11:51 am UTC
I am a number one fan of dxvk async. I use that for games in other non-steam client for a stutter free experience and this proton-ge update was a bit disappointing for me. can you please describe why they removed it from proton ge?
thank you.
Keep up the good work
If you want to enable Graphic Pipeline on Steam Deck or on Linux with Radeon
In the steam game parameters put this:
RADV_PERFTEST=gpl %command%
Hello Liam! can you please make a video tutorial to use graphic pipeline library on the steam deck?
I am a number one fan of dxvk async. I use that for games in other non-steam client for a stutter free experience and this proton-ge update was a bit disappointing for me. can you please describe why they removed it from proton ge?
thank you.
Keep up the good work
Tha would be awesome, yep.
Ive trying to test it on my steamdeck but I'm not sure I'm doing it correctly.
Also note that the ANV MR hasn't been merged yet. It's been sitting for 9 months.The Aggressive Nano Virus Mega Replicator? I can see why they'd hesitate to merge that.
No, seriously, what's an ANV MR?
Also note that the ANV MR hasn't been merged yet. It's been sitting for 9 months.The Aggressive Nano Virus Mega Replicator? I can see why they'd hesitate to merge that.
No, seriously, what's an ANV MR?
ANV = Intel Vulkan driver (supposed to be short for Anvil, I guess?). MR = merge request, for the patch that adds the new code.
It was never the best option, there are always visual effects, only in very specific cases was it worth itIt was/is a good option in many cases and the visual issues often aren't even noticeable.
Still true in e.g. Assassin's Creed Odyssey, there is still atrocious stutter when riding through settlements with VK_EXT_graphics_pipeline_library pre-compile vs. async.
It's also popular among some Windows users to mitigate shader compile stutter in various Unreal Engine games.
Hello Liam! can you please make a video tutorial to use graphic pipeline library on the steam deck?
I am a number one fan of dxvk async. I use that for games in other non-steam client for a stutter free experience and this proton-ge update was a bit disappointing for me. can you please describe why they removed it from proton ge?
thank you.
Keep up the good work
1) GPL has superseded it in most all important use cases, and it will only get better in the future because it's developed and supported by the DXVK developer(s) themselves (and Valve as well).
2) It's always been a bit iffy and prone to bugs (such as the possibility to corrupt your whole state cache) and bans (in the case of multiplayer games).
3) It's been left to bit-rot for like a year now, and its original developer has abandoned it since even earlier.
But mostly it's because of reason #1: it's a hack that was always meant to be a kind-of-works placeholder until something better came along, and it's simply not needed anymore because something better has come along.
Doom Eternal worked flawless. Tiny Tina's Wonderland behaved very different. The time needed to load the game was much longer. I got heavy stuttering at the first run even in the game menu. After running the game a second time i noticed that the stuttering was now mostly gone.
The MESA implementation of VK_EXT_graphics_pipeline_library seems to be pretty underdeveloped at least on the stable branch. I guess this is the reason for it beeing still hidden behind the RADV_PERFTEST=gpl variable.
Last edited by ripper81358 on 23 January 2023 at 4:06 am UTC
You know, I scoffed at that. Why would I not want that? So I set it globally in /etc/profile.d and I've been using it for some time (since mesa 22.3.0-rc) without issue with latest DXVK's and vkd3d-proton's. The only side effect is that on first use, some games sat with a black screen during load for several seconds, or simply took longer (e.g. Borderlands 3, during the dancing claptrap animation... it's compiling/optimizing DirectX 12 shader bytecode there). It was beneficial though, for initial shader compiles.
However, I ran into one game last night that I hadn't played in a while that absolutely will not load, Rage 2 (which uses a Vulkan renderer). It won't even draw anything, it just sits there in the "running" state in Steam until killed. I gave it a good 5 minutes, but something is waiting for something that's not coming.
RADV_PERFTEST="" %command%
on invocation that game then (or any others if I discover any, since there won't be many)
So it's for good reason, that the extension is still not being enabled by default, I guess.
See more from me