protonscr

[nvidia] Games not working in fullscreen mode

protonclosed
ValveSoftware/Proton#7894 · opened 2024-07-12 by jstolarek · updated 2026-08-23 · 1 comments · github
1 matching comments, n / p to jump
Jjstolarek 2024-07-12 github

Compatibility Report

  • Name of the game with compatibility issues: Persona 5 Royal, Soul Calibur VI
  • Steam AppID of the game: 1687950, 544750

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.

Symptoms

For the past couple of months (roughly since March-April) some of the games I try to run from the Steam client freeze in full screen mode - I tested with Persona 5 Royal and Soul Calibur VI. Upon launch, the game just renders a frame of animation from the loading sequence, which in the majority of cases means just a black screen, though occasionally there might be some graphic from the loading animation. No further rendering happens and the game remains unresponsive. I can Alt-Tab out of the game, but it takes about 30 seconds between pressing the keys and the switch to another window actually happening. Once the game window is not in focus I can normally use the desktop, and if I switch back to the game it remains unresponsive and must be killed, e.g. from the Steam client.

I have made following observations:

  1. The problem only happens in full screen. If I launch the game in windowed mode (e.g. via command line switches) it runs perfectly fine.

  2. Not all games are affected. Dune: Spice Wars (Steam AppID: 1605220) runs fine.

  3. Installing a new Proton version solves the problem for some time (usually a couple of launches), but things eventually break. Once a given Proton version has "broken" it remains as such. For example, the problem first started with Proton experimental. When the problem started happening I switched to 9.0 and for a while it work, until the problem began happening with 9.0. I then switched to 8.0 and for a while it also worked. Note that if I switch to a previously broken version it still doesn't work.

  4. I have recently changed my GPU from RTX 2070 Super to RTX 4070 Super. The problem happens on both.

  5. I updated the nvidia driver from 525.147.05 to 555.42.06 and the problem happens on both versions.

  6. Here's the most interesting observation of all. Suppose I launch a game that experiences the freeze, e.g. Persona 5 Royal, and kill it. If I then run glxgears from the terminal, the application remains unresponsive for about first 10 seconds or so, and there is only one still frame drawn on the screen - no actual animation of gears happens. I also can't immediately Alt-Tab to desktop, just like with frozen games. However, if I wait for about 10 seconds, gears begin to animate and the glxgears becomes fully responsive (also on subsequent runs). Again, this only happens in fullscreen mode. Here's a log from running glxgears after killing Persona 5 Royal first:

$ glxgears -fullscreen
Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
3 frames in 8.1 seconds =  0.372 FPS
305 frames in 5.0 seconds = 60.907 FPS
299 frames in 5.0 seconds = 59.700 FPS

I have found a similar ticket, #7693, but point (5) above seems to be different than in that ticket, hence I decided to submit a new report. I am happy to provide more details if needed - this bug has made Steam practically unusable for me. Also, I was unable to reproduce this problem for any game that I run directly through wine (outside of Steam client).

steam-1687950.log.tar.gz

Jjstolarek 2026-08-23 github

Over two years later, I have managed to find a solution to this bug. The problem is caused by enabling ForceCompositionPipeline and ForceFullCompositionPipeline in nVidia driver settings. A workaround is to dynamically disable these options with gamemode using the following ~/.config/gamemode.ini file:

[custom]
start= nvidia-settings -a CurrentMetaMode="nvidia-auto-select +0+0 { ForceCompositionPipeline=Off, ForceFullCompositionPipeline=Off }"
end= nvidia-settings -a CurrentMetaMode="nvidia-auto-select +0+0 { ForceCompositionPipeline=On, ForceFullCompositionPipeline=On }"

Proton versions