ValveSoftware / gamescope

SteamOS session compositing window manager
Other
2.87k stars 190 forks source link

Assertion `wlserver.wlr.virtual_keyboard_device != nullptr' failed. #661

Open t-8ch opened 1 year ago

t-8ch commented 1 year ago

I experienced the following error when starting gamescope:

gamescope: ../src/wlserver.cpp:984: void wlserver_key(uint32_t, bool, uint32_t): Assertion `wlserver.wlr.virtual_keyboard_device != nullptr' failed.

The problem is that a key event is received by the SDL window before wlserver_init assigned virtual_keyboard_device. The event received by SDL is always SDL_KEY_DOWN with key == 42.

The event seems not to be triggered by the user but coming from somewhere else. It was reproducible 100% until I played a bit with the gamescope source, upon which it completely stopped from occurring.

Environment: Linux 6.0.3, sway 1.7, Intel(R) Xe Graphics (TGL GT2), gamescope HEAD (2f95c0f)

etilton commented 1 year ago

I was having this issue as well. Were you by chance on xwayland-22.1.4? I have updated to xwayland-22.1.5 and I have not yet had the issue again.

t-8ch commented 1 year ago

Yes I was on 22.1.4. But it was also on 22.1.4 when it went away again.

etilton commented 1 year ago

This was what I was getting:

Nov 01 22:47:29 Fractal roblox-player.desktop[366488]: wlserver: [backend/headless/backend.c:82] Creating headless backend
Nov 01 22:47:29 Fractal roblox-player.desktop[366488]: vulkan: selecting physical device 'AMD Radeon RX 6700 XT (RADV NAVI22)': queue family 1
Nov 01 22:47:29 Fractal roblox-player.desktop[366488]: vulkan: physical device supports DRM format modifiers
Nov 01 22:47:29 Fractal roblox-player.desktop[366488]: gamescope: ../gamescope-3.11.48/src/wlserver.cpp:984: void wlserver_key(uint32_t, bool, uint32_t): Assertion `wlserver.wlr.virtual_keyboard_device != nullptr' failed.
Nov 01 22:47:29 Fractal roblox-player.desktop[366488]: vulkan: supported DRM formats for sampling usage:
Nov 01 22:47:29 Fractal roblox-player.desktop[366488]: vulkan:   0x34325241
Nov 01 22:47:29 Fractal systemd[1]: Started Process Core Dump (PID 366495/UID 0).
Nov 01 22:47:29 Fractal systemd-coredump[366496]: elfutils disabled, parsing ELF objects not supported
Nov 01 22:47:29 Fractal systemd-coredump[366496]: [🡕] Process 366488 (gamescope) of user 1000 dumped core.
Nov 01 22:47:29 Fractal systemd[1]: systemd-coredump@12-366495-0.service: Deactivated successfully.

The command being run was gamescope -W 1920 -H 1080 -f -- /usr/bin/grapejuice player %u

As I said I'm no longer receiving this error.

t-8ch commented 1 year ago

For me it was the same except for running vkcube on Intel(R) Xe Graphics (TGL GT2)

edt-xx commented 1 year ago

I get this error intermittently. I am on an up to date arch install with mesa/lib32-mesa 23.0.0-rc4 installed along with gamescope-git. I normally use steam-native. Once the error starts happening it happens with plain steam too. gamescope is setup for specific games. So far rebooting fixes it for a few days. Here is a sample log (-condebug):

/bin/sh\0-c\0RADV_PERFTEST=gpl gamescope -r 40 -o 10 -b -W 2560 -H 1440 -- mangohud /home/ed/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=1680880 -- /home/ed/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/ed/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/ed/.local/share/Steam/steamapps/common/Proton - Experimental'/proton waitforexitandrun  '/home/ed/.local/share/Steam/steamapps/common/FORSPOKEN/FORSPOKEN.exe'\0
Game process added : AppID 1680880 "RADV_PERFTEST=gpl gamescope -r 40 -o 10 -b -W 2560 -H 1440 -- mangohud /home/ed/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=1680880 -- /home/ed/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/ed/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/ed/.local/share/Steam/steamapps/common/Proton - Experimental'/proton waitforexitandrun  '/home/ed/.local/share/Steam/steamapps/common/FORSPOKEN/FORSPOKEN.exe'", ProcID 67857, IP 0.0.0.0:0
chdir /home/ed/.local/share/Steam/steamapps/common/FORSPOKEN
ERROR: ld.so: object '/home/ed/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/ed/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
No CAP_SYS_NICE, falling back to regular-priority compute and threads.
Performance will be affected.
wlserver: [backend/headless/backend.c:68] Creating headless backend
vulkan: selecting physical device 'AMD Radeon RX 6600 XT (RADV NAVI23)': queue family 1
vulkan: physical device supports DRM format modifiers
Fossilize INFO: Overriding serialization path: "/home/ed/.local/share/Steam/steamapps/shadercache/1680880/fozpipelinesv6/steamapprun_pipeline_cache".
gamescope: ../gamescope/src/wlserver.cpp:1272: void wlserver_key(uint32_t, bool, uint32_t): Assertion `wlserver.wlr.virtual_keyboard_device != nullptr' failed.

When it works (after a reboot) this is what follows the 'Fossilize' message:

Fossilize INFO: Overriding serialization path: "/home/ed/.local/share/Steam/steamapps/shadercache/1680880/fozpipelinesv6/steamapprun_pipeline_cache".
vulkan: supported DRM formats for sampling usage:
vulkan:   AR24 (0x34325241)
vulkan:   XR24 (0x34325258)
vulkan:   AB24 (0x34324241)
vulkan:   XB24 (0x34324258)
vulkan:   NV12 (0x3231564E)
vulkan:   AB4H (0x48344241)
vulkan:   AB48 (0x38344241)
vulkan:   AB30 (0x30334241)
vulkan:   XB30 (0x30334258)
vulkan:   AR30 (0x30335241)
vulkan:   XR30 (0x30335258)
Xlib: sequence lost (0x10000 > 0x1fcb) in reply type 0xc!
wlserver: Running compositor on wayland display 'gamescope-0'
wlserver: [backend/headless/backend.c:16] Starting headless backend
wlserver: [xwayland/server.c:108] Starting Xwayland on :1

Please let me know if there is anything you would like me to do to get more info on this.

d07434b2c08f commented 1 year ago

If anyone else is having this problem on KDE Wayland, I just found out that System Settings > Applications > Legacy X11 App Support > Allow legacy X11 apps to read keystrokes typed in all apps causes the crash if it's set to something besides "Never"

awsms commented 10 months ago

having this on both KDE (X) and Cinnamon

melvyn2 commented 9 months ago

Setting the KDE X11 keystroke setting did not fix the crash for me.

Jimbleton115 commented 9 months ago

Changing the KDE X11 keystroke thing didn't fix it for me either

Florennum commented 8 months ago

same issue here, plasma wayland with the same specs(almost). downgrading might work? i need to test

FlpCastilho commented 7 months ago

Been having the same error since moving to Plasma some months back, changing the KDE X11 setting has not fixed the issue, unfortunately.

MarcEichler commented 6 months ago

I have the same problem running 3.12.5 on NixOS. Setting X11 keystrokes to "never" does not fix it for me either.

walseb commented 2 months ago

I'm getting this issue on NixOS in a plain (no plasma) xorg session. This is the error I'm getting:

wlserver: [backend/headless/backend.c:68] Creating headless backend
gamescope: ../src/wlserver.cpp:1414: void wlserver_key(uint32_t, bool, uint32_t): Assertion `wlserver.wlr.virtual_keyboard_device != nullptr' failed.
sharkautarch commented 2 weeks ago

@t-8ch @walseb @MarcEichler @kisak-valve I believe this issue should be fixed by commit https://github.com/ValveSoftware/gamescope/commit/be20af6e4f605dc159265a71b85d898643528c5e in upstream gamescope