ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
23.88k stars 1.04k forks source link

Proton crashes when any monitor is turned on/off #7021

Open DomiStyle opened 1 year ago

DomiStyle commented 1 year ago

When a monitor is turned on or off while running Proton, the game will always crash or freeze. Tested with a wide range of games and also verified that it doesn't happen in native (OpenGL and Vulkan) games. Tested on Wayland but can vaguely remember that the same thing happened on X11 a year or so ago.

Seems to happen on both AMD and Nvidia. Workaround for Nvidia is in this Reddit post: https://old.reddit.com/r/linux_gaming/comments/15k9sko/whenever_i_turn_my_monitor_off_most_wine/

Here's a log file of Blasphemous freezing while turning on my secondary monitor: steam-774361.log

System info:

System:
  Host: domi-pc Kernel: 6.4.10-201.fsync.fc38.x86_64 arch: x86_64 bits: 64
    Desktop: KDE Plasma v: 5.27.6 Distro: Fedora release 38 (Thirty Eight)
CPU:
  Info: 8-core AMD Ryzen 7 5800X3D [MT MCP] speed (MHz): avg: 3408
    min/max: 2200/4549
Graphics:
  Device-1: AMD Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] driver: amdgpu
    v: kernel
  Display: wayland server: X.org v: 1.20.14 with: Xwayland v: 22.1.9
    compositor: kwin_wayland driver: X: loaded: amdgpu
    unloaded: fbdev,modesetting,radeon,vesa dri: radeonsi gpu: amdgpu
    resolution: 3440x1440
  API: OpenGL v: 4.6 Mesa 23.1.5 renderer: AMD Radeon RX 6900 XT (navi21
    LLVM 16.0.6 DRM 3.52 6.4.10-201.fsync.fc38.x86_64)
kisak-valve commented 1 year ago

Hello @DomiStyle, since obs-vkcapture is mentioned right at the end of your Proton log, can you temporarily remove or disable that Vulkan layer to rule it out as a factor?

A couple lines of interest from the log:

X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  28 (X_GetDeviceButtonMapping)
  Serial number of failed request:  176
  Current serial number in output stream:  176
[...]
warn:seh:handle_syscall_fault backtrace: --- Exception 0xc0000005 at 0x7ff3aa1b8a90: /usr/lib/pressure-vessel/overrides/lib/x86_64-linux-gnu/libX11.so.6 + 0x2ea90.
[...]
warn:seh:dwarf_virtual_unwind backtrace: 0x7ff3aa1c7c9d: /usr/lib/pressure-vessel/overrides/lib/x86_64-linux-gnu/libX11.so.6 + 0x3dc9d (XSendEvent + 0x4d).
DomiStyle commented 1 year ago

@kisak-valve Yes, good point. I disabled obs-vkcapture but the issue still happens.

Here's the log without obs-vkcapture: steam-774361.log

Zamundaaa commented 11 months ago

Can confirm. I tested with The Entropy Center, Red Dead Redemption 2 and Horizon Zero Dawn, all of them freeze when the only monitor is unplugged. Linux native games like CS:GO and Xonotic don't have this problem.

We also have a kde bug report from someone else confirming the same issue: https://bugs.kde.org/show_bug.cgi?id=473807

simifor commented 11 months ago

I was able to reproduce with snake pass 8.0.4RC by turning off and on my only monitor. Interestingly when I turned it off during the intro videos, it didn't freeze, but it froze when I turned it off/on in the save selection screen (twice). steam-544330.log Also tried exanima (opengl game) with proton experimental BE, same result: the game freezes. steam-362490.log Systerm information https://gist.github.com/simifor/430ffaf01091ab807ffbe91563bcd1c3

Managor commented 11 months ago

I can't reproduce using Apex Legends on Wayland. I have RX 5700 and cable that goes from DP in the graphics card to DVI in my monitor. I feel like the connection type might have something to do with it but I don't have the resources to test

simifor commented 11 months ago

In my case I'm using HDMI both ways, unfortunately I can't test DP.

DomiStyle commented 11 months ago

Both of my displays are connected via DP, still freezes.

ernstp commented 5 months ago

Yeah this is absolutely happening to me too. 2 monitors, Wayland. Both Gnome and KDE Plasma.

Managor commented 5 months ago

I retested the issue now that I have DP to DP connections. Games now reliably freeze when turning off the main monitor that the game is running on

StagnationPoint commented 5 months ago

Same on Kubuntu 23.04, Wayland session, kernel 6.6.16, amdgpu driver, 7900 XTX, Proton experimental, running MSFS:

419704.881:012c:0130:fixme:system:NtUserQueryDisplayConfig flags 0x2, paths_count 0x19d498, paths 0x5a13a8e0, modes_count 0x19d49c, modes 0x797b01e0, topology_id (nil) semi-stub
419704.881:012c:0130:fixme:system:NtUserQueryDisplayConfig flags 0x2, paths_count 0x19d498, paths 0x5a13a8e0, modes_count 0x19d49c, modes 0x797b01e0, topology_id (nil) semi-stub
419704.881:012c:0130:fixme:system:NtUserQueryDisplayConfig flags 0x2, paths_count 0x19d498, paths 0x5a13a8e0, modes_count 0x19d49c, modes 0x797b01e0, topology_id (nil) semi-stub
419704.881:012c:0130:fixme:system:NtUserQueryDisplayConfig flags 0x2, paths_count 0x19d5c8, paths 0x5a13a8e0, modes_count 0x19d5cc, modes 0x797b01e0, topology_id (nil) semi-stub
419704.882:012c:0130:fixme:system:NtUserQueryDisplayConfig flags 0x2, paths_count 0x19d5c8, paths 0x5a13a8e0, modes_count 0x19d5cc, modes 0x797b01e0, topology_id (nil) semi-stub
419704.882:012c:0130:fixme:system:NtUserQueryDisplayConfig flags 0x2, paths_count 0x19d5c8, paths 0x5a13a8e0, modes_count 0x19d5cc, modes 0x797b01e0, topology_id (nil) semi-stub
419704.885:012c:0130:warn:seh:dispatch_exception backtrace: --- Exception 0x80000004.
419704.885:012c:0130:trace:seh:dispatch_exception code=80000004 flags=0 addr=00000001419FC250 ip=1419fc250
419704.885:012c:0130:warn:seh:dispatch_exception EXCEPTION_SINGLE_STEP exception (code=80000004) raised
419704.885:012c:0130:trace:seh:dispatch_exception  rax=3ff0000000000000 rbx=0000000016a1cb10 rcx=0000000000000000 rdx=0000000016a266d8
419704.885:012c:0130:trace:seh:dispatch_exception  rsi=0000000000000010 rdi=000000017738c700 rbp=0000000000000000 rsp=000000000019fc98
419704.885:012c:0130:trace:seh:dispatch_exception   r8=ffffffffe9779680  r9=0000000000000000 r10=0000000016a26650 r11=000000000019fc70
419704.885:012c:0130:trace:seh:dispatch_exception  r12=0000000000000000 r13=0000000000000000 r14=0000000000000000 r15=0000000000000000
419704.885:012c:0130:trace:seh:call_vectored_handlers calling handler at 00000001419F79E0 code=80000004 flags=0
419704.885:012c:0130:trace:seh:call_vectored_handlers handler at 00000001419F79E0 returned ffffffff
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  28 (X_GetDeviceButtonMapping)
  Serial number of failed request:  179
  Current serial number in output stream:  179
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  28 (X_GetDeviceButtonMapping)
  Serial number of failed request:  160
  Current serial number in output stream:  160
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  28 (X_GetDeviceButtonMapping)
user354015 commented 4 months ago

I'm afraid I can't be of any help, but I'm also having the exact same issue