Skip to content

Game launchers hang, show connection timeouts or render incorrectly #5882

Description

@kakra

Proton version: Experimental and any 7.x I tried
Hardware: i7-12700K, NVIDIA GTX 1660 Ti 6GB, driver series 515 (and before)
OS: Gentoo Linux with custom-patched kernel (adding fsync support), 5.15.44
Desktop: KDE Plasma 5.25 with Kwin/X11
Monitors: 3840x2160, 3840x2160, 1920x1080

I'm seeing a lot of problems with different launchers that I cannot attribute to using fsync/esync although they look similar. After chatting with @ivyl I tried a few different things to narrow the problem down. This does not seem to be a problem specific to one launcher or one game but rather something within Proton or the graphics stack, so I'm just linking the game-specific issues here and create a new report.

Affected games:

Observation:

Uplay Connect will usually launch into a busy loop, not showing any window. The CPU fans do speed up to a clearly audible level. This situation will not timeout. This won't be solved by running with fsync/esync disabled. The game needs to be force-closed from within Steam because no window will be shown. Perf screenshots:
image
image

Rockstar Launcher will show a window, but will just sit there playing the nice "R-STAR" animation (from the first small window) until it eventually times out (usually after two or more minutes). CPU fans will speed up. After the error message, the Rockstar launcher cannot be closed from the system tray and has to be force-closed via top or force-closing via Steam. It's probably busy-looping, too.

Elite Launcher for Elite Dangerous Odyssey will actually launch and can also run the game but the launcher won't render correctly (already mentioned in #150 (comment) where @redmcg mentioned it could be a multi-GPU issues but I run only a single GPU): Window controls (close, minimize), the launch button and the game edition selector won't render. The launcher web contents render just fine. The game itself is not affected and runs fine (at least under the estimations of its current performance). The launcher does quit correctly when (blindly) clicking the close button.
image

TESO Launcher will usually launch but may hang for multiple minutes before it starts checking / downloading updates. This may lead to a timeout situation but if it manages to start the connection, it reliably works and starts the game. So this may be a different problem.

Steps to analyze:

Running a vanilla kernel doesn't fix issues. Also, running with fewer CPU cores doesn't fix the issues. Running with or without "simulate sched quantum" doesn't fix the issues. I'm running with some ClearLinux glibc patches but running vanilla glibc does not fix the issues either.

Running with disabled e-cores (12th gen has asymmetric core architecture) doesn't fix the issues.

By chance, in 1 of 100 tries, all launchers will work flawlessly for some hours. This doesn't need a reboot. It just works and affects all launchers at the same time. In the same manner, the launchers will stop working all at the same time again for no obvious reason, completely out of the blue, no reboot required.

Running the games within gamescope will 100% fix all launchers.

Running the games with wine virtual desktop enabled will 100% fix all launchers. (protontricks APPID vd=3840x2160)

So that gave some interesting clue: I now disabled all but one of my three monitors in nvidia-settings, and the launchers will work 100% now. Enabling at least one additional monitor makes the launchers fail again. This is 100% reproducible: Disable all but one monitor = launchers work, enable more than one monitor = launchers won't work.

Using gamescope or wine virtual desktop exposes the launchers to just one monitor, so it seems that's basically the same as running native X11 with just one monitor. But this interferes with fullscreen mode (seems it overrides borderless mode) and captures the mouse into the game screen (and at least for Elite Dangerous, I need to be able to move it out of the game).

As vsync on nvidia seems broken, I tried a few other settings: change kwin tearing modes, force-enable vsync, using forced composition mode, disable/enable kwin composition, enable/disable framebuffer flipping - but nothing helped. This seems purely a multi-monitor issue. It looks like generally launchers using Chrome components seem to be affected but others may be, too.

Maybe related:

Rarely, launchers would flicker the screens when initializing graphics and then simply crash. It seems, I can no longer reproduce this with current Proton versions. Usually, it does not flicker and then there's no crash. This may be related to enabling flipping mode in nvidia-settings and may be a driver issue.

History:

I'm pretty sure this worked fine before Proton 5.x, during 5.x it probably happened sometimes and looked like it may be related to fsync/esync but retrospectively, I'm not so sure now. Since Proton 7, it permanently doesn't work (except for 1 of 100 tries). Other changes to the system seem to not affect the issue although I cannot completely exclude the NVIDIA drivers here, as vsync is broken at least since using multiple monitors, too (but it is not fixed now when disabling all other monitors).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions