ValveSoftware / gamescope

SteamOS session compositing window manager
Other
3.15k stars 212 forks source link

[Wayland Backend] KWin-Wayland scaling values other than 100% along with --force-grab-cursor cause Dx11/Dx12 games to crash when cursor goes to the bottom or right edge of screen. #1620

Open th3raid0r opened 4 days ago

th3raid0r commented 4 days ago

Is there an existing issue for this?

Are you using any gamescope patches or a forked version of gamescope?

Current Behavior

Currently, some games require the --force-grab-cursor to correctly function. In my case this game is Planet Coaster 2 through Steam / Proton Experimental. Others have reported God of War as also exhibiting this issue.

However, this argument appears to also be bugged in instances where the Kwin-wayland scaling factor is !=100% causing an even worse issue - the game outright crashing when the cursor reaches the right or bottom edge of the screen.

I cannot reproduce this with glxgears or vkcube, so this does not appear to be an issue with native OpenGL or Vulkan games/runtimes and likely only impacts DirectX titles.

This issue resembles https://github.com/ValveSoftware/gamescope/issues/1434, but is different in that:

  1. Using -b or -f does not mitigate the issue. In the original post it did.
  2. Using --force-grab-cursor does not work as expected. In the original post it did.

In a way this issue is almost the inverse of Issue #1434 .

Steps To Reproduce

  1. Set KDE to a display scaling factor that is not 100%. It can be in either direction.
  2. Install Planet Coaster 2 from Steam using Proton Experimental
  3. Update the arguments to gamescope -W 3840 -H 2160 --hdr-enabled --fullscreen --force-grab-cursor -- %command% - updated to your native resolution, of course.
  4. Launch the game.
  5. Once the game loads move your cursor to the far right, or to the bottom of the screen.
  6. Gamescope instantly crashes and exits.

Hardware information

- Distro: Arch
- CPU: AMD Ryzen 9 5950X
- RAM: 64GB
- GPU: NVIDIA RTX 3080Ti
- Driver Version: nvidia-open 565.57.01-2

Software information

- Desktop environment: KDE 6.2.3
- Session type: Wayland
- Gamescope version: 3.15.14 (gcc 14.2.1)
- Gamescope launch command(s): `gamescope -W 3840 -H 2160 --hdr-enabled --fullscreen --force-grab-cursor -- %command%`

Which gamescope backends have the issue you are reporting?

Logging, screenshots, or anything else

Gathering...

Related Threads:

matte-schwartz commented 4 days ago

I see the same crash in Planet Coaster 2 on my 7900XTX with Plasma 6.2.3. Poked at it a bit and grabbed what I could for debugging.

Interestingly, I only started experiencing the issue once I set a 4K or higher resolution like you gave in your command. If I use -W 1920 -H 1080 or -W 2560 -H 1440 or -W 1280 -H 800, then the crash doesn't occur.

Display (SAM7474): 7680x2160 @ 240 Hz (as 5120x1440) in 57" [External] [HDR] is how my monitor gets reported with 150% scaling in KWin. If I set -W 5120 -H 1440 then the crash does not occur, while if I set my monitor's true resolution with -W 7680 -H 2160 then the crash does occur.

coredump from a crash at 7680x2160p here: ``` Core was generated by `gamescope -e -f --adaptive-sync --mangoapp -h 2160 -w 7680 -r 120 -C 3000 --for'. Program terminated with signal SIGABRT, Aborted. #0 __pthread_kill_implementation (threadid=, signo=6, no_tid=0) at pthread_kill.c:44 44 return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0; [Current thread is 1 (Thread 0x7947bc45d6c0 (LWP 33616))] (gdb) bt #0 __pthread_kill_implementation (threadid=, signo=6, no_tid=0) at pthread_kill.c:44 #1 __pthread_kill_internal (threadid=, signo=6) at pthread_kill.c:78 #2 __GI___pthread_kill (threadid=, signo=signo@entry=6) at pthread_kill.c:89 #3 0x00007947bf1880a8 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #4 0x00007947bf16a47b in __GI_abort () at abort.c:79 #5 0x000063351c942f2a in gamescope::CWaylandInputThread::ThreadFunc (this=0x633535047b50) at ../src/Backends/WaylandBackend.cpp:2374 #6 0x000063351c9428d9 in operator() (__closure=0x63353504bd88) at ../src/Backends/WaylandBackend.cpp:2293 #7 0x000063351c94661a in std::__invoke_impl >(std::__invoke_other, struct {...} &&) (__f=...) at /usr/include/c++/14.2.1/bits/invoke.h:61 #8 0x000063351c9465dd in std::__invoke >(struct {...} &&) (__fn=...) at /usr/include/c++/14.2.1/bits/invoke.h:96 #9 0x000063351c94658a in std::thread::_Invoker > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x63353504bd88) at /usr/include/c++/14.2.1/bits/std_thread.h:301 #10 0x000063351c946550 in std::thread::_Invoker > >::operator()(void) (this=0x63353504bd88) at /usr/include/c++/14.2.1/bits/std_thread.h:308 #11 0x000063351c9464f2 in std::thread::_State_impl > > >::_M_run(void) (this=0x63353504bd80) at /usr/include/c++/14.2.1/bits/std_thread.h:253 #12 0x00007947bf4f78b4 in std::execute_native_thread_routine (__p=0x63353504bd80) at /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:104 #13 0x00007947bf1e5605 in start_thread (arg=) at pthread_create.c:447 #14 0x00007947bf26837c in __clone3 () at /usr/lib/libc.so.6 (gdb) thread apply all bt Thread 12 (Thread 0x7947af0156c0 (LWP 33637)): #0 0x00007947bf25bdaf in __GI___poll (fds=0x7947af014a40, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x000063351cabba9d in run_pipewire (state=0x63351cdd7b60 ) at ../src/pipewire.cpp:628 #2 0x000063351cabdb18 in std::__invoke_impl (__f=@0x6335352ab3e0: 0x63351cabb9ae ) at /usr/include/c++/14.2.1/bits/invoke.h:61 #3 0x000063351cabda8d in std::__invoke (__fn=@0x6335352ab3e0: 0x63351cabb9ae ) at /usr/include/c++/14.2.1/bits/invoke.h:96 #4 0x000063351cabd9fd in std::thread::_Invoker >::_M_invoke<0ul, 1ul> (this=0x6335352ab3d8) at /usr/include/c++/14.2.1/bits/std_thread.h:301 #5 0x000063351cabd9b6 in std::thread::_Invoker >::operator() (this=0x6335352ab3d8) at /usr/include/c++/14.2.1/bits/std_thread.h:308 #6 0x000063351cabd99a in std::thread::_State_impl > >::_M_run (this=0x6335352ab3d0) at /usr/include/c++/14.2.1/bits/std_thread.h:253 #7 0x00007947bf4f78b4 in std::execute_native_thread_routine (__p=0x6335352ab3d0) at /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:104 #8 0x00007947bf1e5605 in start_thread (arg=) at pthread_create.c:447 #9 0x00007947bf26837c in __clone3 () at /usr/lib/libc.so.6 Thread 11 (Thread 0x7947bcc5e6c0 (LWP 33615)): #0 0x00007947bf2685fa in epoll_wait (epfd=11, events=0x7947bcc5aa40, maxevents=1024, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30 #1 0x000063351c9b6818 in gamescope::CWaiter<1024ul>::PollEvents (this=0x63351ce68740 , nTimeOut=-1) at ../src/waitable.h:270 #2 0x000063351c9f5a56 in gamescope::CAsyncWaiter, 1024ul>::WaiterThreadFunc (this=0x63351ce68740 , pszThreadName=0x63351cc0a0ff "gamescope-eis") at ../src/waitable.h:456 #3 0x000063351c9f1420 in gamescope::CAsyncWaiter, 1024ul>::CAsyncWaiter(char const*)::{lambda()#1}::operator()() const (__closure=0x63353503e8e8) at ../src/waitable.h:380 #4 0x000063351ca04823 in std::__invoke_impl, 1024ul>::CAsyncWaiter(char const*)::{lambda()#1}>(std::__invoke_other, gamescope::CAsyncWaiter, 1024ul>::CAsyncWaiter(char const*)::{lambda()#1}&&) (__f=...) at /usr/include/c++/14.2.1/bits/invoke.h:61 #5 0x000063351ca047ad in std::__invoke, 1024ul>::CAsyncWaiter(char const*)::{lambda()#1}>(gamescope::CAsyncWaiter, 1024ul>::CAsyncWaiter(char const*)::{lambda()#1}&&) (__fn=...) at /usr/include/c++/14.2.1/bits/invoke.h:96 #6 0x000063351ca046ee in std::thread::_Invoker, 1024ul>::CAsyncWaiter(char const*)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x63353503e8e8) at /usr/include/c++/14.2.1/bits/std_thread.h:301 #7 0x000063351ca045fa in std::thread::_Invoker, 1024ul>::CAsyncWaiter(char const*)::{lambda()#1}> >::operator()() (this=0x63353503e8e8) at /usr/include/c++/14.2.1/bits/std_thread.h:308 #8 0x000063351ca04422 in std::thread::_State_impl, 1024ul>::CAsyncWaiter(char const*)::{lambda()#1}> > >::_M_run() (this=0x63353503e8e0) at /usr/include/c++/14.2.1/bits/std_thread.h:253 #9 0x00007947bf4f78b4 in std::execute_native_thread_routine (__p=0x63353503e8e0) at /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:104 #10 0x00007947bf1e5605 in start_thread (arg=) at pthread_create.c:447 #11 0x00007947bf26837c in __clone3 () at /usr/lib/libc.so.6 Thread 10 (Thread 0x7947bd45f6c0 (LWP 33614)): #0 0x00007947bf2685fa in epoll_wait (epfd=5, events=0x7947bd45b9f0, maxevents=1024, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30 #1 0x000063351c9b6818 in gamescope::CWaiter<1024ul>::PollEvents (this=0x63351ce42a80 , nTimeOut=-1) at ../src/waitable.h:270 #2 0x000063351c9b84cb in gamescope::CAsyncWaiter, 1024ul>::WaiterThreadFunc (this=0x63351ce42a80 , pszThreadName=0x63351cbffea2 "gamescope_img") at ../src/waitable.h:456 #3 0x000063351c9b1ce4 in gamescope::CAsyncWaiter, 1024ul>::CAsyncWaiter(char const*)::{lambda()#1}::operator()() const (__closure=0x63353503dd08) at ../src/waitable.h:380 #4 0x000063351c9d0c85 in std::__invoke_impl, 1024ul>::CAsyncWaiter(char const*)::{lambda()#1}>(std::__invoke_other, gamescope::CAsyncWaiter, 1024ul>::CAsyncWaiter(char const*)::{lambda()#1}&&) (__f=...) at /usr/include/c++/14.2.1/bits/invoke.h:61 #5 0x000063351c9d0bbc in std::__invoke, 1024ul>::CAsyncWaiter(char const*)::{lambda()#1}>(gamescope::CAsyncWaiter, 1024ul>::CAsyncWaiter(char const*)::{lambda()#1}&&) (__fn=...) at /usr/include/c++/14.2.1/bits/invoke.h:96 #6 0x000063351c9d0ac4 in std::thread::_Invoker, 1024ul>::CAsyncWaiter(char const*)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (this=0x63353503dd08) at /usr/include/c++/14.2.1/bits/std_thread.h:301 #7 0x000063351c9d0a2c in std::thread::_Invoker, 1024ul>::CAsyncWaiter(char const*)::{lambda()#1}> >::operator()() (this=0x63353503dd08) at /usr/include/c++/14.2.1/bits/std_thread.h:308 #8 0x000063351c9d089c in std::thread::_State_impl, 1024ul>::CAsyncWaiter(char const*)::{lambda()#1}> > >::_M_run() (this=0x63353503dd00) at /usr/include/c++/14.2.1/bits/std_thread.h:253 #9 0x00007947bf4f78b4 in std::execute_native_thread_routine (__p=0x63353503dd00) at /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:104 #10 0x00007947bf1e5605 in start_thread (arg=) at pthread_create.c:447 #11 0x00007947bf26837c in __clone3 () at /usr/lib/libc.so.6 Thread 9 (Thread 0x7947ae0136c0 (LWP 33640)): #0 0x00007947bf250e8a in __GI___wait4 (pid=33639, stat_loc=0x7947ae012a44, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30 #1 0x000063351c962a05 in gamescope::Process::WaitForChild (nPid=33639) at ../src/Utils/Process.cpp:137 #2 0x000063351c9a6feb in operator() (__closure=0x794784f77de8) at ../src/steamcompmgr.cpp:7376 #3 0x000063351c9ac75f in std::__invoke_impl >(std::__invoke_other, struct {...} &&) (__f=...) at /usr/include/c++/14.2.1/bits/invoke.h:61 #4 0x000063351c9ac6cf in std::__invoke >(struct {...} &&) (__fn=...) at /usr/include/c++/14.2.1/bits/invoke.h:96 #5 0x000063351c9ac650 in std::thread::_Invoker > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x794784f77de8) at /usr/include/c++/14.2.1/bits/std_thread.h:301 #6 0x000063351c9ac608 in std::thread::_Invoker > >::operator()(void) (this=0x794784f77de8) at /usr/include/c++/14.2.1/bits/std_thread.h:308 #7 0x000063351c9ac5cc in std::thread::_State_impl > > >::_M_run(void) (this=0x794784f77de0) at /usr/include/c++/14.2.1/bits/std_thread.h:253 #8 0x00007947bf4f78b4 in std::execute_native_thread_routine (__p=0x794784f77de0) at /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:104 #9 0x00007947bf1e5605 in start_thread (arg=) at pthread_create.c:447 #10 0x00007947bf26837c in __clone3 () at /usr/lib/libc.so.6 Thread 8 (Thread 0x7947ae8146c0 (LWP 33638)): #0 0x00007947bf2685fa in epoll_wait (epfd=8, events=0x7947ae810830, maxevents=1024, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30 #1 0x000063351c9b6818 in gamescope::CWaiter<1024ul>::PollEvents (this=0x63351ce42b40 , nTimeOut=-1) at ../src/waitable.h:270 #2 0x000063351c9a7fed in steamcompmgr_main (argc=20, argv=0x7ffd68a3f5b8) at ../src/steamcompmgr.cpp:7568 #3 0x000063351c9e16cc in steamCompMgrThreadRun (argc=20, argv=0x7ffd68a3f5b8) at ../src/main.cpp:992 #4 0x000063351c9e239d in std::__invoke_impl (__f=@0x6335352acd28: 0x63351c9e1692 ) at /usr/include/c++/14.2.1/bits/invoke.h:61 #5 0x000063351c9e22de in std::__invoke (__fn=@0x6335352acd28: 0x63351c9e1692 ) at /usr/include/c++/14.2.1/bits/invoke.h:96 #6 0x000063351c9e2211 in std::thread::_Invoker >::_M_invoke<0ul, 1ul, 2ul> (this=0x6335352acd18) at /usr/include/c++/14.2.1/bits/std_thread.h:301 #7 0x000063351c9e21ae in std::thread::_Invoker >::operator() (this=0x6335352acd18) at /usr/include/c++/14.2.1/bits/std_thread.h:308 --Type for more, q to quit, c to continue without paging--c #8 0x000063351c9e2192 in std::thread::_State_impl > >::_M_run (this=0x6335352acd10) at /usr/include/c++/14.2.1/bits/std_thread.h:253 #9 0x00007947bf4f78b4 in std::execute_native_thread_routine (__p=0x6335352acd10) at /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:104 #10 0x00007947bf1e5605 in start_thread (arg=) at pthread_create.c:447 #11 0x00007947bf26837c in __clone3 () at /usr/lib/libc.so.6 Thread 7 (Thread 0x7947b79fe6c0 (LWP 33619)): #0 0x00007947bf25c36d in __GI_ppoll (fds=0x6335350797f0, nfds=1, timeout=, sigmask=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:42 #1 0x00007947be76b231 in ??? () at /usr/lib/libglib-2.0.so.0 #2 0x00007947be6f7552 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007947be6f75a2 in ??? () at /usr/lib/libglib-2.0.so.0 #4 0x00007947be736915 in ??? () at /usr/lib/libglib-2.0.so.0 #5 0x00007947bf1e5605 in start_thread (arg=) at pthread_create.c:447 #6 0x00007947bf26837c in __clone3 () at /usr/lib/libc.so.6 Thread 6 (Thread 0x7947affff6c0 (LWP 33623)): #0 0x00007947bf1e181a in __futex_abstimed_wait_common64 (private=0, futex_word=0x633535172748, expected=0, op=393, abstime=0x0, cancel=true) at futex-internal.c:57 #1 __futex_abstimed_wait_common (futex_word=0x633535172748, expected=0, clockid=0, abstime=0x0, private=0, cancel=true) at futex-internal.c:87 #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x633535172748, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007947bf1e43ee in __pthread_cond_wait_common (cond=0x633535172720, mutex=0x6335351726f0, clockid=0, abstime=0x0) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x633535172720, mutex=0x6335351726f0) at pthread_cond_wait.c:618 #5 0x00007947b4d00f3e in cnd_wait () at ../mesa-24.2.6/src/c11/impl/threads_posix.c:135 #6 0x00007947b4cbb97c in util_queue_thread_func () at ../mesa-24.2.6/src/util/u_queue.c:290 #7 0x00007947b4d00e9c in impl_thrd_routine () at ../mesa-24.2.6/src/c11/impl/threads_posix.c:67 #8 0x00007947bf1e5605 in start_thread (arg=) at pthread_create.c:447 #9 0x00007947bf26837c in __clone3 () at /usr/lib/libc.so.6 Thread 5 (Thread 0x7947b69fc6c0 (LWP 33621)): #0 0x00007947bf25c36d in __GI_ppoll (fds=0x79479c000b90, nfds=2, timeout=, sigmask=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:42 #1 0x00007947be76b231 in ??? () at /usr/lib/libglib-2.0.so.0 #2 0x00007947be6fd8af in g_main_loop_run () at /usr/lib/libglib-2.0.so.0 #3 0x00007947bb7b0efc in ??? () at /usr/lib/libgio-2.0.so.0 #4 0x00007947be736915 in ??? () at /usr/lib/libglib-2.0.so.0 #5 0x00007947bf1e5605 in start_thread (arg=) at pthread_create.c:447 #6 0x00007947bf26837c in __clone3 () at /usr/lib/libc.so.6 Thread 4 (Thread 0x7947b61fb6c0 (LWP 33622)): #0 0x00007947bf25c36d in __GI_ppoll (fds=0x794798000b90, nfds=1, timeout=, sigmask=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:42 #1 0x00007947be76b231 in ??? () at /usr/lib/libglib-2.0.so.0 #2 0x00007947be6f7552 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0 #3 0x00007947bb3eaf5e in dconf_gdbus_worker_thread () at ../dconf/gdbus/dconf-gdbus-thread.c:82 #4 0x00007947be736915 in ??? () at /usr/lib/libglib-2.0.so.0 #5 0x00007947bf1e5605 in start_thread (arg=) at pthread_create.c:447 #6 0x00007947bf26837c in __clone3 () at /usr/lib/libc.so.6 Thread 3 (Thread 0x7947b81ff6c0 (LWP 33618)): #0 0x00007947bf26586d in syscall () at /usr/lib/libc.so.6 #1 0x00007947be732a37 in g_cond_wait () at /usr/lib/libglib-2.0.so.0 #2 0x00007947be6b972c in g_async_queue_pop_unlocked () at /usr/lib/libglib-2.0.so.0 #3 0x00007947be739186 in ??? () at /usr/lib/libglib-2.0.so.0 #4 0x00007947be736915 in ??? () at /usr/lib/libglib-2.0.so.0 #5 0x00007947bf1e5605 in start_thread (arg=) at pthread_create.c:447 #6 0x00007947bf26837c in __clone3 () at /usr/lib/libc.so.6 Thread 2 (Thread 0x7947bee44ac0 (LWP 33613)): #0 0x00007947bf25bdaf in __GI___poll (fds=0x7ffd68a3f380, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x000063351c9e97d8 in wlserver_run () at ../src/wlserver.cpp:1935 #2 0x000063351c9e1585 in main (argc=20, argv=0x7ffd68a3f5b8) at ../src/main.cpp:980 Thread 1 (Thread 0x7947bc45d6c0 (LWP 33616)): #0 __pthread_kill_implementation (threadid=, signo=6, no_tid=0) at pthread_kill.c:44 #1 __pthread_kill_internal (threadid=, signo=6) at pthread_kill.c:78 #2 __GI___pthread_kill (threadid=, signo=signo@entry=6) at pthread_kill.c:89 #3 0x00007947bf1880a8 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26 #4 0x00007947bf16a47b in __GI_abort () at abort.c:79 #5 0x000063351c942f2a in gamescope::CWaylandInputThread::ThreadFunc (this=0x633535047b50) at ../src/Backends/WaylandBackend.cpp:2374 #6 0x000063351c9428d9 in operator() (__closure=0x63353504bd88) at ../src/Backends/WaylandBackend.cpp:2293 #7 0x000063351c94661a in std::__invoke_impl >(std::__invoke_other, struct {...} &&) (__f=...) at /usr/include/c++/14.2.1/bits/invoke.h:61 #8 0x000063351c9465dd in std::__invoke >(struct {...} &&) (__fn=...) at /usr/include/c++/14.2.1/bits/invoke.h:96 #9 0x000063351c94658a in std::thread::_Invoker > >::_M_invoke<0>(std::_Index_tuple<0>) (this=0x63353504bd88) at /usr/include/c++/14.2.1/bits/std_thread.h:301 #10 0x000063351c946550 in std::thread::_Invoker > >::operator()(void) (this=0x63353504bd88) at /usr/include/c++/14.2.1/bits/std_thread.h:308 #11 0x000063351c9464f2 in std::thread::_State_impl > > >::_M_run(void) (this=0x63353504bd80) at /usr/include/c++/14.2.1/bits/std_thread.h:253 #12 0x00007947bf4f78b4 in std::execute_native_thread_routine (__p=0x63353504bd80) at /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:104 #13 0x00007947bf1e5605 in start_thread (arg=) at pthread_create.c:447 #14 0x00007947bf26837c in __clone3 () at /usr/lib/libc.so.6 ```
attaching gdb and setting a breakpoint gives a bit more additional context: ``` Thread 11 "gamescope" hit Breakpoint 2, gamescope::CWaylandInputThread::ThreadFunc (this=0x5a28c565e7f0) at ../src/Backends/WaylandBackend.cpp:2374 2374 abort(); (gdb) print nRet $1 = -1 (gdb) print *this $2 = {m_pBackend = 0x5a28c565e7d0, m_Waiter = {m_bRunning = std::atomic = { true }, m_NudgeWaitable = { = {_vptr.IWaitable = 0x5a28bbf9aa10 }, m_nFDs = {24, 25}}, m_nEpollFD = 26}, m_Thread = {_M_id = {_M_thread = 129411999291072}}, m_bInitted = std::atomic = { true }, m_uPointerEnterSerial = 10549, m_bMouseEntered = true, m_bKeyboardEntered = true, m_pQueue = 0x5a28c5ad8aa0, m_pDisplayWrapper = warning: RTTI symbol not found for class 'std::_Sp_counted_deleter(wl_display*)::{lambda(wl_display*)#1}, std::allocator, (__gnu_cxx::_Lock_policy)2>' warning: RTTI symbol not found for class 'std::_Sp_counted_deleter(wl_display*)::{lambda(wl_display*)#1}, std::allocator, (__gnu_cxx::_Lock_policy)2>' std::shared_ptr (use count 1, weak count 0) = {get() = 0x5a28c5a4fd60}, m_pSeat = 0x5a28c5a5f180, m_pKeyboard = 0x5a28c5c11ce0, m_pPointer = 0x5a28c5a604c0, m_pTouch = 0x0, m_pRelativePointerManager = 0x5a28c5adab00, m_uFakeTimestamp = 978, m_pXkbContext = 0x5a28c59f1ca0, m_pXkbKeymap = 0x75b2d0001cb0, m_uKeyModifiers = 0, m_uModMask = {4, 1, 8, 64, 16, 2}, m_flScrollAccum = {0, 0}, m_uAxisSource = 0, m_pCurrentCursorPlane = 0x5a28c565e988, m_ofPendingCursorX = std::optional [no contained value], m_ofPendingCursorY = std::optional [no contained value], m_pRelativePointer = warning: RTTI symbol not found for class 'std::_Sp_counted_deleter, (__gnu_cxx::_Lock_policy)2>' warning: RTTI symbol not found for class 'std::_Sp_counted_deleter, (__gnu_cxx::_Lock_policy)2>' std::atomic> (use count 1, weak count 0) = {get() = 0x75b2d81757b0}, m_uScancodesHeld = std::unordered_set with 0 elements, static s_RegistryListener = { global = 0x5a28bbb1787c <_FUN(void*)>, global_remove = 0x5a28bbb178be <_FUN(void*)>}, static s_SeatListener = { capabilities = 0x5a28bbb178eb <_FUN(void*)>, name = 0x5a28bbb17918 <_FUN(void*)>}, static s_PointerListener = { enter = 0x5a28bbb17947 <_FUN(void*)>, leave = 0x5a28bbb1799a <_FUN(void*)>, motion = 0x5a28bbb179d2 <_FUN(void*)>, button = 0x5a28bbb17a12 <_FUN(void*)>, axis = 0x5a28bbb17a63 <_FUN(void*)>, frame = 0x5a28bbb17aa3 <_FUN(void*)>, axis_source = 0x5a28bbb17aca <_FUN(void*)>, axis_stop = 0x5a28bbb17af7 <_FUN(void*)>, axis_discrete = 0x5a28bbb17b2d <_FUN(void*)>, axis_value120 = 0x5a28bbb17b63 <_FUN(void*)>, axis_relative_direction = 0x0}, static s_KeyboardListener = {keymap = 0x5a28bbb17b99 <_FUN(void*)>, enter = 0x5a28bbb17bd9 <_FUN(void*)>, leave = 0x5a28bbb17c1c <_FUN(void*)>, key = 0x5a28bbb17c54 <_FUN(void*)>, modifiers = 0x5a28bbb17ca5 <_FUN(void*)>, repeat_info = 0x5a28bbb17cf6 <_FUN(void*)>}, static s_RelativePointerListener = { relative_motion = 0x5a28bbb17d2c <_FUN(void*)>}} (gdb) print m_pBackend $3 = (gamescope::CWaylandBackend *) 0x5a28c565e7d0 (gdb) print m_pQueue $4 = (wl_event_queue *) 0x5a28c5ad8aa0 ```
matte-schwartz commented 4 days ago

this also occurs on Gnome Wayland w/ fractional scaling so we can rule out this being a KDE issue