Confused on Steam Play and Proton? Be sure to check out our guide.
We do often include affiliate links to earn us some pennies. See more here.

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:

YouTube Thumbnail
YouTube videos require cookies, you must accept their cookies to view. View cookie preferences.
Accept Cookies & Show   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
Article taken from GamingOnLinux.com.
20 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 checked 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. You can also follow my personal adventures on Bluesky.
See more from me
The comments on this article are closed.
All posts need to follow our rules. For users logged in: please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Guest readers can email us for any issues.
12 comments

ben-green Jan 19, 2023
Doesn't this also require clearing the shader cache?
Blisto Jan 19, 2023
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
FauconNoir Jan 19, 2023
Are there any benchmark test between DXVK 1 and DXVK 2 ? I guess there should not be any major difference, but it still might be interesting.
Gabry0988 Jan 19, 2023
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
iWeaker4You Jan 19, 2023
It was never the best option, there are always visual effects, only in very specific cases was it worth it

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%
Derheim Jan 19, 2023
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.
Purple Library Guy Jan 19, 2023
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?
Phlebiac Jan 19, 2023
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.
aufkrawall Jan 20, 2023
It was never the best option, there are always visual effects, only in very specific cases was it worth it
It 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.
Nocifer Jan 22, 2023
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.
ripper81358 Jan 23, 2023
I never used dxvk-async because stuttering became more and more of a lesser issue for me. Having Shader-Prechaching and Vulkanshader-processing turned on in steam, reduced stuttering on my end very well. But after reading this article i decided to try out the VK_EXT_graphics_pipeline_library extension with my Radeon RX 6700 XT and the latest stable MESA Release. I used it with two very different games, i tried Doom Eternal (Vulkan API) and Tiny Tina's Wonderland (DirectX 12 API/Proton VK3D).

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
Grogan Jan 24, 2023
"RADV_PERFTEST=gpl"

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.
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.