protonscr

NVIDIA 535, VK_KHR_present_wait, and ForceFullCompositionPipeline

protonopen NVIDIA drivers
ValveSoftware/Proton#6869 · opened 2023-06-23 by tgurr · updated 2025-07-06 · 31 comments · github
1 matching comments, n / p to jump
Ttgurr 2023-06-23 github

Compatibility Report

  • Name of the game with compatibility issues: Diablo IV
  • Steam AppID of the game: -

System Information

I confirm:

  • [x] that I haven't found an existing compatibility report for this game.
  • [x] that I have checked whether there are updates for my system available.

steam-14950642966836805632.log.zip

Symptoms

Before the latest update to experimental-8.0-20230624 a few minutes ago the previous proton experimental (2023/06/06) worked well but since the update after launching the game from within Battle.net I get a black screen with the music playing and the intro movies not playing anymore and while it eventually gets further when being patient you can see the login to Battle.net inside diablo happening and getting to the character selection screen, however the performance is absolutely crawling to the point even the menu is unusable. Also even Alt+Tabbing is taking ages to be able to manually force-stopping the game.

Reproduction

  1. Launch Diablo IV
  2. Observe issue

Additional note

  • Adding or removing PROTON_ENABLE_NVAPI=1 to get DLSS working in the game doesn't make a difference for the issue
  • I'm unable to reproduce this issue on another machine running Fedora, there however the nvidia driver is still at 530.41.03 instead of the latest 535.54.03.
Ttgurr 2023-06-24 github

I have to update my initial report pointing out that it appears not to be an actual problem with Diablo IV but rather a general problem for me since the latest Proton Experimental update since I've now tested other games I played/started just recently like System Shock (the new one) and STEINS;GATE ELITE and both behave the same like Diablo IV now. I've also tested native games just to be sure it's not a general problem but games like e.g. Crusader Kings III or Return to Monkey Island are not affected and work fine. I had a look at the Proton Experimental betas to opt in as to see if the previous Proton Experimental version is offered to be able to really nail it down but apparently it sadly is not - it would be nice of you could also add that as a selectable beta for such cases to ease problem finding in regards to possible regressions.

Edit: I just also additionally installed Proton 8.0-2 and selecting that for either System Shock or STEINS;GATE ELITE the games work fine indicating it might indeed be a problem introduced by the latest update to Proton Experimental.

@kisak-valve I've refrained from changing the topic of my initial report to a more fitting one now that it has nothing to do with Diablo IV in specific since I don't know what you'd like in the topic, would be nice if you could change it to your liking. Thanks in advance.

Kkisak-valve maintainer 2023-06-24 github

Hello @tgurr, this is a blind guess, but it might be interesting to test if running the game with VKD3D_DISABLE_EXTENSIONS=VK_KHR_present_id,VK_KHR_present_wait.

Ttgurr 2023-06-24 github

VKD3D_DISABLE_EXTENSIONS=VK_KHR_present_id,VK_KHR_present_wait

@kisak-valve That is interesting as I thought we'd finally be done with this with recent nvidia drivers however it indeed works for Diablo IV and makes it playable again with the latest Proton Experimental release! But neither for System Shock which is DirectX 11 nor STEINS;GATE ELITE which is DirectX 9, is there a similiar parameter for DXVK? I thought the whole present stuff only affects vkd3d-proton to begin with, however I'm by far no expert.

HHansKristian-Work 2023-06-24 github

DXVK recently got present_wait support. Is it possible you're using force composition pipeline or something like that? I recall someone saying that was an issue.

Ttgurr 2023-06-24 github

Fedora today also got the update from nvidia-drivers 530.41.03 to 535.54.03 and the problem with Diablo IV is reproducible there as well now, adding VKD3D_DISABLE_EXTENSIONS=VK_KHR_present_id,VK_KHR_present_wait works there as well.

@HansKristian-Work it is indeed yes! Removing ForceFullCompositionPipeline allowed DXVK games like the mentioned System Shock and STEINS;GATE ELITE to be playable again as well.

--- 50-nvidia-before.conf       2021-11-27 14:20:50.927834285 +0100
+++ 50-nvidia.conf      2023-06-24 17:09:42.923875035 +0200
@@ -16,7 +16,7 @@
     Identifier     "Screen0"
     Device         "Device0"
     Monitor        "Monitor0"
-    Option         "MetaModes" "nvidia-auto-select +0+0 {ForceFullCompositionPipeline=On}"
+    Option         "MetaModes" "nvidia-auto-select +0+0"
     Option         "AllowIndirectGLXProtocol" "off"
     Option         "TripleBuffer" "on"
 EndSection

So all that appears to be just a problem with the latest nvidia-driver 535.54.03 while things were working with 530.41.03 as could be seen on Fedora while for me personally things got broken with the latest Proton Experimental and were working nicely before with 535.54.03. 530.41.03 however also already had working present_wait support right? So is it purely a driver problem in the end? Has this already been reported to nvidia? Should I do so (not knowing any technical details)?

HHansKristian-Work 2023-06-24 github

I just reported it to NV.

88836290 2023-07-22 github

Tested a Unity 3D game Empyrion-Galactic survival with VKD3D_DISABLE_EXTENSIONS=VK_KHR_present_id,VK_KHR_present_wait
nvidia's currently latest proprietary driver 535.86.05 on Ubuntu 22.04.2 LTS
Proton experimental
Kept ForceFullCompositionPipeline active
and I confirm the issue does not occur any more with this configuration.

Ttgurr 2023-08-01 github

The above mentioned Empyrion-Galactic appears to be a DirectX 11 according the steam system requirements so VKD3D shouldn't play any role here.

For the "Need Retest" label, the initial reported problems are still valid for the current latest non-beta nvidia-drivers 535.86.05, as in:

  • VKD3D (e.g. Diablo IV) still requires VKD3D_DISABLE_EXTENSIONS=VK_KHR_present_id,VK_KHR_present_wait
  • DXVK (e.g. STEINS;GATE ELITE) still fails to work with {ForceFullCompositionPipeline=On} set
88836290 2023-08-03 github

The above mentioned Empyrion-Galactic appears to be a DirectX 11 according the steam system requirements so VKD3D shouldn't play any role here.

For the "Need Retest" label, the initial reported problems are still valid for the current latest non-beta nvidia-drivers 535.86.05, as in:

  • VKD3D (e.g. Diablo IV) still requires VKD3D_DISABLE_EXTENSIONS=VK_KHR_present_id,VK_KHR_present_wait
  • DXVK (e.g. STEINS;GATE ELITE) still fails to work with {ForceFullCompositionPipeline=On} set

I stand corrected. I messed something up and need to retest.

JJenrikku 2023-08-26 github

I have had a similar issue with multiple Unity games which was solved after downgrading my nvidia drivers to 530. This issue does not seem to be related to any proton new update as I have been using version 8.3
Not even Proton 7 seems to work.

88836290 2023-08-26 github

What I did, until a solution to the issue, was to disable the composition pipeline (un-ticking both force and force full composition pipeline) in the nvidia-settings, under X-server display configuration/Advanced.

AArcitec 2023-09-24 github

DXVK recently got present_wait support. Is it possible you're using force composition pipeline or something like that? I recall someone saying that was an issue.

@HansKristian-Work You're completely right. NVIDIA's "Force Full Composition Pipeline" breaks all Vulkan applications on X11 if they use the "present id / present wait" Vulkan features.

I just discovered the same thing in DXVK 2.3 which recently re-enabled those Vulkan extensions since NVIDIA "has fixed" their drivers. But the desktop crashes if composition pipeline is enabled:

https://github.com/doitsujin/dxvk/issues/3670#issuecomment-1732691158

I just reported it to NV.

Was this reported via NVIDIA's normal forums? If there's a public thread about it, I can add my voice to it if that helps.

Mmozo78 2023-09-25 github

It not fixed, there's a problem and most of the games doesn't working with VK_KHR_present_wait, and ForceFullCompositionPipeline. Do we have to post a report on NVIDIA's forums or HansKristian report is enough?

AArcitec 2023-09-28 github

@mozo78 I wasn't able to find his report (I searched for keywords in the entire Linux NVIDIA forum), which leads me to assume that he has reported it to them privately.

It might help to also report it publicly just in case, so I made a thread via a trash account here:

https://forums.developer.nvidia.com/t/complete-gpu-crash-on-x11-with-force-full-composition-pipeline-and-vk-khr-present-wait-100-reproducible/267934

If you have an NVIDIA account (or can make one with a trash email quickly), you could add your voice to that if you wanna show NVIDIA that it's a confirmed issue.

Other than that, there's nothing else we can do but wait for NVIDIA to fix it.

Mmozo78 2023-09-28 github

Thanks, I made a post :)

DDarkSattis 2023-11-05 github

In case the link goes bad or someone else stumbles on this:

nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceCompositionPipeline=Off, ForceFullCompositionPipeline=Off }"

For my setup (Ubuntu 22.04) this was equivalent to changing /etc/X11/xorg.conf Option "metamodes" and set ForceFullCompositionPipeline to off. (I removed ForceCompositionPipeline as well, but unsure if needed)

Then Diablo IV did work for me again without having 1 frame/minute.

Nvidia Driver Version: 545.29.02

SSamuraiScientist 2023-11-25 github

I am also having similar on my system with Proton 8.0 and experimental. Though, my workaround was different. I'm using the KDE Plasma Desktop and my fix was to go to Display and Monitor > Compositor and turn off "Allow applications to block compositing". Some of the games I tested that would not work without the workaround were Fallout 4, Deep Rock Galactic and Postal Brain Damaged. Though, Warframe and XCOM2 worked on Proton 8.0 without a workaround.

OS: Debian Testing
GPU: GTX 1060 6GB(tested with Debian's provided driver, 525.125.06-3 and a more up-to date Nvidia driver, 545.23.08-1)

KDE Plasma Version: 5.27.9
KDE Frameworks Version: 5.107.0
Qt Version: 5.15.10
Kernel Version: 6.5.0-4-amd64
Graphics Platform: X11

I'm adding this here since this could be related.

MMikkoMMM 2023-12-10 github

545.29.06-3 is also affected. Other games that are affected by this bug include Borderlands 3 and ARK: Survival Evolved.

Ccfasnacht 2023-12-18 github

I am also having similar on my system with Proton 8.0 and experimental. Though, my workaround was different. I'm using the KDE Plasma Desktop and my fix was to go to Display and Monitor > Compositor and turn off "Allow applications to block compositing". Some of the games I tested that would not work without the workaround were Fallout 4, Deep Rock Galactic and Postal Brain Damaged. Though, Warframe and XCOM2 worked on Proton 8.0 without a workaround.

@SamuraiScientist Thank you that did work for me as well!
Display and Monitor > Compositor and turn off "Allow applications to block compositing
Although I did not have KDE installed but installed it to try if it makes any difference.

I was bugged with this issue for months and could not play most of the steam games.

Uupupupa 2024-02-06 github

I can confirm 545.29.06 is also affected. Unfortunately, turning off ForceCompositionPipeline didn't work for me as well as disabling the "Allow applications to block compositing" in KDE settings.

The symptoms are the same as described in the original post.

Proton version: >=8.0
OS: Manjaro XFCE
GPU: GTX 1070
Kernel Version: 6.6.10-1-MANJARO
Graphics Platform: X11
Vulkan Instance Version: 1.3.274

88836290 2024-02-07 github

I can confirm 545.29.06 is also affected. Unfortunately, turning off ForceCompositionPipeline didn't work for me as well as disabling the "Allow applications to block compositing" in KDE settings.

The symptoms are the same as described in the original post.

Proton version: >=8.0 OS: Manjaro XFCE GPU: GTX 1070 Kernel Version: 6.6.10-1-MANJARO Graphics Platform: X11 Vulkan Instance Version: 1.3.274

And how is ForceFullComposition pipeline set, enabled or disabled?

Uupupupa 2024-02-16 github

@8836290 hey! Sorry for the delay, ForceFullComposition pipline is also disabled. The game which I'm trying to launch is CP2077. Downgrading proton to 7.0-6 helps, the game works as expected.

Not sure if this has an impact, but I have 2 monitors, one of which is oriented vertically. (in nvidia-settings it is rotated left)

I can hear the sounds from the game, but the video doesn't play further than CDPR logo: the mouse and any inputs stucks for 10-20 seconds, then I can close the game using steam and while it is shutting down, I can't move the mouse/alt tab for 10-20 seconds.

88836290 2024-02-19 github

Replying to https://github.com/ValveSoftware/Proton/issues/6869#issuecomment-1948984357

I remember discussing proton versions on discord on GE's channel and it was recommended that it is not mandatory to always upgrade proton versions to the latest to have a game work. Instead the version that helps the game run without issues is the proper one for it. So in your case if you find that v7.0-6 does work with CP2077 stick with this version for that game. Of course you can have multiple versions for other games to work too. Needless to say, always read the release notes for Proton AND GPU drivers, to find useful information regarding the games you are interested and various fixes applied for them on your hardware/software configuration.

TTritibellum 2024-08-26 github

Hi! I have come across this issue recently with 550.100 version with Vulkan applications (with and without Steam Proton), turning off both ForceCompositionPipeline and ForceFullCompositionPipeline did fix the issue for me, pardon me if I missing something.

OS: OpenSUSE Tumbleweed
GPU: GTX 1650
Kernel Version: 6.10.5-1-default
KDE Plasma Version: 6.14
KDE Frameworks Version: 6.50
Graphics Platform: X11
Vulkan Instance Version: 1.3.290

I can also confirm that SamuraiScientist's workaround is also a viable solution for me.

Ccfasnacht 2024-08-27 github

Sadly for me without ForceCompositionPipeline and ForceFullCompositionPipeline the tearing is so bad that most games under proton are unplayable.

CCraigeryTheKid 2024-11-22 github
* VKD3D (e.g. Diablo IV) still requires `VKD3D_DISABLE_EXTENSIONS=VK_KHR_present_id,VK_KHR_present_wait`

* DXVK (e.g. STEINS;GATE ELITE) still fails to work with `{ForceFullCompositionPipeline=On}` set

I have been following several threads/issues with this fix, as I am having similar problems, but for the LIFE OF ME I cannot find where to edit these settings or .conf files. Where do I need to place either/both of these settings? This is a case of trying to follow along with a massive knowledge gap. Please and thank you!

[System]
OS: GNOME 45 Flatpak runtime
Arch: x86_64
Kernel: 6.9.3-76060903-generic
Desktop: pop:GNOME
Display Server: x11
Vulkan Version: 1.3.261
Vulkan Drivers: Intel(R) Graphics (ADL GT2) (1.3.289), NVIDIA GeForce RTX 3060 Laptop GPU (1.3.280)

MMAGGen-hub 2025-01-13 github

Well... I am confused... And need help...

  1. Tryed to nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceCompositionPipeline=Off, ForceFullCompositionPipeline=Off }"
    Got:
ERROR: Error resolving target specification '' (No targets match target specification),
       specified in assignment 'CurrentMetaMode=nvidia-auto-select +0+0 {
       ForceCompositionPipeline=Off, ForceFullCompositionPipeline=Off }'.
  1. Additng the same string: Option "MetaModes" "nvidia-auto-select +0+0 {ForceCompositionPipeline=Off, ForceFullCompositionPipeline=Off } into "Screen0" section in xorg.conf does nothing.

  2. Useing setup_vkd3d_proton and VKD3D_DISABLE_EXTENSIONS=VK_KHR_present_id,VK_KHR_present_wait does nothing. It helps but a few Alt+Tabs freezes the game completly.

  3. Disabeling composing in xfwm4 helps a bit with Alt+Tabs, but still not solves the problem (still can freese).

  4. Setting fullscreen mode in the game breaks Alt+Tab, game window will always be on top, whit no ability to swap focus.

  5. My current solution: launch second X server on DISPLAY=:1 using startx without window manager, it OK with games like DeepRockGalactic but it does nothing to games with launcher like Crossout. Focus stands on AntiCheat window and changeing it 100% will freeze the game.

System:
Laptop: HP Pavilion Gaming 17
OS: Arch Linux 6.12.8-arch1-1
Desctop: xfce4 (latest)
iGPU: Intel Corporation CometLake-H GT2 [UHD Graphics] (rev 05) [PCI:00:02.0]
dGPU: NVIDIA Corporation TU116M [GeForce GTX 1660 Ti Mobile] (rev a1) [PCI:01:00.0]
Nvidia Drivers: nvidia-dkms-565.77-3
Proton: GE-Proton9-20 (same results in Proton9)

I want this command to work correctly: nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceCompositionPipeline=Off, ForceFullCompositionPipeline=Off }"
Or correct xorg file... Can this metaoption be set to this section?

Section "Device"
    Identifier     "dGPU"
    Driver         "nvidia"
    BusID          "PCI:1:0:0"
    Option         "MetaModes" "nvidia-auto-select +0+0 {ForceFullCompositionPipeline=Off, ForceCompositionPipeline=Off}"
EndSection

My current xorg config:xorg.conf.txt
If anyone can tell me how to solve this problem, please help and thank you in advance.

Aatommo999 2025-07-06 github

I have this issue too.

OS: Debian GNU/Linux 12 (bookworm) x86_64
Steam client: Freedesktop SDK 24.08 (Flatpak runtime) (64 bit)
Kernel: 6.1.0-37-amd64
DE: Plasma 5.27.5 (X11)
WM: KWin
GPU: NVIDIA GeForce GTX 1650
NVidia driver: 550.144.03

The fix that works for me is:

To start with, make sure the compositor is set to 'Allow applications to block compositing'. Reboot your machine to be sure its properly applied.

Once rebooted, open a terminal and paste the following: nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceCompositionPipeline=Off, ForceFullCompositionPipeline=Off }"

Then uncheck the 'Allow applications to block compositing' setting and apply.

After that, it works for me. Problem is reboots don't seem to keep the setting so I have to constantly re-apply. Bit of a pain.

Hoping there will be a proper resolution soon.

Mmozo78 2025-07-06 github

You can set it in nvidia-settings or in xorg.conf and the setting will persist.

Aatommo999 2025-07-06 github

You can set it in nvidia-settings or in xorg.conf and the setting will persist.

Ahh, good shout. Have just done that so lets see if it helps.

For anyone not quite as technically-minded, this is what I have done if you also want to try:

In a terminal, type sudo -i
Then cd /etc/X11
Install vim if not already on your system
Then type vim xorg.conf
Now find the section of the file 'Device' section which looks something like:

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    Option         "MetaModes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline=Off, ForceCompositionPipeline=Off }"
EndSection

You won't see the 'Option' part- add that in by pressing 'i' on the keyboard to enter insert mode. Then copy/paste that line.

Once done, press 'esc', then type :x. That will save and exit.

The change should apply from the next reboot.

Mmozo78 2025-07-06 github

It' not the right way.
kate /etc/X11/xorg.conf
Enter your changes, save them, it'll ask for a password - done.