Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Does not work with Warframe in steam when specifying dimensions #268

Open
MithicSpirit opened this issue Oct 9, 2024 · 5 comments
Open

Comments

@MithicSpirit
Copy link

If I specify the client dimensions (-w and -h), Warframe launches very inconsistently. The launcher opens just fine, but the game itself usually fails to launch, and gamescope coredumps. Here are the last few lines of the logs before this happens

Oct 09 11:29:40 hipparchus steam[97693]: [gamescope-brokey] [Error] xwm: waylandres but no win
Oct 09 11:29:40 hipparchus steam[97693]: [gamescope-brokey] [Error] xwm: waylandres but no win
Oct 09 11:29:40 hipparchus systemd-coredump[105679]: Process 105147 (gamescope-wl) of user 1000 terminated abnormally with signal 6/ABRT, processing...
Oct 09 11:29:40 hipparchus systemd[1]: Started Process Core Dump (PID 105679/UID 0).
Oct 09 11:29:40 hipparchus steam[97693]: wine: setpriority -2 for pid -1 failed: 3
Oct 09 11:29:41 hipparchus steam[97693]: wine: setpriority -19 for pid -1 failed: 3
Oct 09 11:29:41 hipparchus steam[97693]: wine: setpriority -19 for pid 4037 failed: 13
Oct 09 11:29:41 hipparchus steam[97693]: wine: setpriority -19 for pid -1 failed: 3
Oct 09 11:29:41 hipparchus steam[97693]: wine: setpriority -2 for pid -1 failed: 3
Oct 09 11:29:41 hipparchus steam[97693]: wine: setpriority -19 for pid 3986 failed: 13
Oct 09 11:29:41 hipparchus steam[97693]: wine: setpriority -19 for pid 4041 failed: 13
Oct 09 11:29:41 hipparchus systemd-coredump[105684]: [🡕] Process 105147 (gamescope-wl) of user 1000 dumped core.
                                                     
                                                     Stack trace of thread 3603:
                                                     #0  0x00007f9e53aa3e84 n/a (/usr/lib/x86_64-linux-gnu/libc.so.6 + 0x90e84)
                                                     #1  0x00007f9e53a51dce n/a (/usr/lib/x86_64-linux-gnu/libc.so.6 + 0x3edce)
                                                     #2  0x00007f9e53a3983f n/a (/usr/lib/x86_64-linux-gnu/libc.so.6 + 0x2683f)
                                                     #3  0x0000564e49ea4357 n/a (/usr/lib/extensions/vulkan/gamescope/bin/gamescope-brokey + 0x46357)
                                                     #4  0x00007f9e53cf14e4 n/a (/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.32 + 0xf14e4)
                                                     #5  0x00007f9e53aa1ea9 n/a (/usr/lib/x86_64-linux-gnu/libc.so.6 + 0x8eea9)
                                                     #6  0x00007f9e53b29a44 n/a (/usr/lib/x86_64-linux-gnu/libc.so.6 + 0x116a44)
                                                     ELF object binary architecture: AMD x86-64

I can sometimes get it to work by re-launching many times and swapping between fullscreen or not, but this is very inconsistent and annoying.

I am not reporting this upstream to gamescope itself as the version provided by this package is out of date (side note: are there any plans to update?).

@ColinKinloch
Copy link
Collaborator

The reason it's so out of date is this issue: ValveSoftware/gamescope#1445

@ColinKinloch
Copy link
Collaborator

ColinKinloch commented Oct 9, 2024

From your backtrace:

Line 44 of "pthread_kill.c" starts at address 0x90e84 <__pthread_kill_implementation+276> and ends at 0x90ea0 <__pthread_kill_implementation+304>
Line 27 of "../sysdeps/posix/raise.c" starts at address 0x3edce <__GI_raise+30> and ends at 0x3edd2 <__GI_raise+34>
Line 151 of "../include/printf_buffer.h" starts at address 0x4633a <__vstrfmon_l_buffer+6362> and ends at 0x46358 <__vstrfmon_l_buffer+6392>
Line 2070 of "../src/Backends/WaylandBackend.cpp" starts at address 0x46352 <_ZN9gamescope19CWaylandInputThread10ThreadFuncEv+402> and ends at 0x46360 <_ZN9gamescope19CWaylandInputThread10ThreadFuncEv+416>
Line 93 of "/usr/lib/debug/source/bootstrap/gcc.bst/bst_build_dir/x86_64-unknown-linux-gnu/libstdc++-v3/include/bits/unique_ptr.h" starts at address 0xf14e4 <std::execute_native_thread_routine(void*)+20>
   and ends at 0xf14ed <std::execute_native_thread_routine(void*)+29>
Line 444 of "pthread_create.c" starts at address 0x8eea9 <start_thread+793> and ends at 0x8eeae <start_thread+798>
Line 102 of "../sysdeps/unix/sysv/linux/x86_64/clone.S" starts at address 0x116a44 <clone+68> and ends at 0x116a47 <clone+71>

Which is this line: https://github.com/ValveSoftware/gamescope/blob/3.14.24/src/Backends/WaylandBackend.cpp#L2070
Which implies that for some reason you don't have a wayland display 🤷
But you would have thought that would fail here:
https://github.com/ValveSoftware/gamescope/blob/cf2497fd7ec83f3d0dd5cb31b69540a2d129edad/src/Backends/WaylandBackend.cpp#L1166

I'm not sure I can help. Hopefully I'll be able to update this package soon.

@ColinKinloch
Copy link
Collaborator

Could you try --backend sdl?

@MithicSpirit
Copy link
Author

Could you try --backend sdl?

Gamescope doesn't launch at all on the sdl backend, though this is also the case if I do it using the regular package on my system, so this is probably an upstream problem.

@MithicSpirit
Copy link
Author

Looking into that code, my guess is that it's some form of race condition. I think that gamescope closes the display when the Warframe launcher window closes, but then tries to access it again when the actual game window spawns. If it's able to close it before the game window spawns, then wl_display_get_fd returns an error, but otherwise it's fine. This would explain why it's inconsistent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants