ValveSoftware / gamescope

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

Segmentation fault on exit using drm backend #1526

Open wsy2220 opened 2 months ago

wsy2220 commented 2 months ago

console log

Results are the same on other games.

$ /usr/local/gamescope/bin/gamescope -w 1920 -h 1080 -- vkcube
[gamescope] [Info]  console: gamescope version 3.15.9+ (gcc 14.2.0)
No CAP_SYS_NICE, falling back to regular-priority compute and threads.
Performance will be affected.
[gamescope] [Info]  vulkan: selecting physical device 'NVIDIA GeForce RTX 3090': queue family 2 (general queue family 0)
[gamescope] [Info]  vulkan: physical device supports DRM format modifiers
[gamescope] [Info]  wlserver: [backend/headless/backend.c:67] Creating headless backend
[gamescope] [Info]  wlserver: [libseat] [libseat/libseat.c:73] Seat opened with backend 'seatd'
[gamescope] [Info]  wlserver: [libseat] [libseat/backend/seatd.c:212] Enabling seat
[gamescope] [Info]  wlserver: [backend/session/session.c:108] Successfully loaded libseat session
[gamescope] [Info]  drm: opening DRM node '/dev/dri/card0'
[gamescope] [Info]  drm: Connector DP-2 -> AOC - U2777B
[gamescope] [Info]  drm: [colorimetry]: EDID with colorimetry detected. Using it
[gamescope] [Info]  drm: [colorimetry]: r 0.652344 0.333984
[gamescope] [Info]  drm: [colorimetry]: g 0.306641 0.636719
[gamescope] [Info]  drm: [colorimetry]: b 0.150391 0.059570
[gamescope] [Info]  drm: [colorimetry]: w 0.313477 0.329102
[gamescope] [Info]  drm: Connector DP-2 -> AOC - U2777B
[gamescope] [Info]  drm: [colorimetry]: EDID with colorimetry detected. Using it
[gamescope] [Info]  drm: [colorimetry]: r 0.652344 0.333984
[gamescope] [Info]  drm: [colorimetry]: g 0.306641 0.636719
[gamescope] [Info]  drm: [colorimetry]: b 0.150391 0.059570
[gamescope] [Info]  drm: [colorimetry]: w 0.313477 0.329102
[gamescope] [Info]  drm: Connectors:
[gamescope] [Info]  drm:   DP-3 (disconnected)
[gamescope] [Info]  drm:   HDMI-A-2 (disconnected)
[gamescope] [Info]  drm:   DP-2 (connected)
[gamescope] [Info]  drm:   HDMI-A-1 (disconnected)
[gamescope] [Info]  drm:   DP-1 (disconnected)
[gamescope] [Info]  drm: selecting connector DP-2
[gamescope] [Info]  drm: selecting mode 3840x2160@60Hz
[gamescope] [Error] vulkan: vkGetPhysicalDeviceFormatProperties2 returned zero modifiers for DRM format 0x38344241 (VkResult: 0)
[gamescope] [Error] vulkan: vkGetPhysicalDeviceFormatProperties2 returned zero modifiers for DRM format 0x38344258 (VkResult: 0)
[gamescope] [Info]  vulkan: supported DRM formats for sampling usage:
[gamescope] [Info]  vulkan:   AR24 (0x34325241)
[gamescope] [Info]  vulkan:   XR24 (0x34325258)
[gamescope] [Info]  vulkan:   AB24 (0x34324241)
[gamescope] [Info]  vulkan:   XB24 (0x34324258)
[gamescope] [Info]  vulkan:   RG16 (0x36314752)
[gamescope] [Info]  vulkan:   NV12 (0x3231564E)
[gamescope] [Info]  vulkan:   AB4H (0x48344241)
[gamescope] [Info]  vulkan:   XB4H (0x48344258)
[gamescope] [Info]  vulkan:   AB30 (0x30334241)
[gamescope] [Info]  vulkan:   XB30 (0x30334258)
[gamescope] [Info]  wlserver: Using explicit sync when available
[gamescope] [Info]  wlserver: Running compositor on wayland display 'gamescope-0'
[gamescope] [Info]  wlserver: [backend/headless/backend.c:17] Starting headless backend
[gamescope] [Error] wlserver: Gamescope built without libei, XTEST will not be available!
[gamescope] [Info]  wlserver: [xwayland/server.c:107] Starting Xwayland on :0
[W][19548.720254] pw.conf      | [          conf.c: 1214 try_load_conf()] can't load config client.conf: No such file or directory
[E][19548.720281] pw.conf      | [          conf.c: 1243 pw_conf_load_conf_for_context()] can't load config client.conf: No such file or directory
[gamescope] [Error] pipewire: pw_context_new failed
Warning: failed to setup PipeWire, screen capture won't be available
[gamescope] [Info]  xwm: Embedded, no cursor set. Using left_ptr by default.
[gamescope] [Info]  vblank: Using timerfd.
Selected GPU 0: NVIDIA GeForce RTX 3090, type: DiscreteGpu
[gamescope] [Warn]  xwm: got the same buffer committed twice, ignoring.
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 708, clipping.
>                   X11 cannot support keycodes above 255.
Errors from xkbcomp are not fatal to the X server
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 708, clipping.
>                   X11 cannot support keycodes above 255.
Errors from xkbcomp are not fatal to the X server
[gamescope] [Info]  launch: Primary child shut down!
(EE) failed to read Wayland events: Broken pipe

stack trace using gdb

Thread 1 "gamescope-wl" received signal SIGSEGV, Segmentation fault.
0x00007fffe0e48170 in ?? ()
#0  0x00007fffe0e48170 in ??? ()
#1  0x0000555555657348 in CVulkanCmdBuffer::~CVulkanCmdBuffer (this=0x5555566cf900, __in_chrg=<optimized out>) at ../src/rendervulkan.cpp:1480
#2  0x00005555555aa9be in std::default_delete<CVulkanCmdBuffer>::operator() (this=0x5555566e4af0, __ptr=0x5555566cf900) at /usr/include/c++/14/bits/unique_ptr.h:93
#3  0x00005555555a6b66 in std::unique_ptr<CVulkanCmdBuffer, std::default_delete<CVulkanCmdBuffer> >::~unique_ptr (this=0x5555566e4af0, __in_chrg=<optimized out>) at /usr/include/c++/14/bits/unique_ptr.h:398
#4  0x0000555555671ab9 in std::destroy_at<std::unique_ptr<CVulkanCmdBuffer, std::default_delete<CVulkanCmdBuffer> > > (__location=0x5555566e4af0) at /usr/include/c++/14/bits/stl_construct.h:88
#5  0x000055555567a987 in std::_Destroy<std::unique_ptr<CVulkanCmdBuffer, std::default_delete<CVulkanCmdBuffer> > > (__pointer=0x5555566e4af0) at /usr/include/c++/14/bits/stl_construct.h:149
#6  0x00005555556779df in std::_Destroy_aux<false>::__destroy<std::unique_ptr<CVulkanCmdBuffer, std::default_delete<CVulkanCmdBuffer> >*> (__first=0x5555566e4af0, __last=0x5555566e4af8) at /usr/include/c++/14/bits/stl_construct.h:163
#7  0x00005555556734f8 in std::_Destroy<std::unique_ptr<CVulkanCmdBuffer, std::default_delete<CVulkanCmdBuffer> >*> (__first=0x5555566e4af0, __last=0x5555566e4af8) at /usr/include/c++/14/bits/stl_construct.h:196
#8  0x000055555566894e in std::_Destroy<std::unique_ptr<CVulkanCmdBuffer, std::default_delete<CVulkanCmdBuffer> >*, std::unique_ptr<CVulkanCmdBuffer, std::default_delete<CVulkanCmdBuffer> > > (__first=0x5555566e4af0, __last=0x5555566e4af8) at /usr/include/c++/14/bits/alloc_traits.h:944
#9  std::vector<std::unique_ptr<CVulkanCmdBuffer, std::default_delete<CVulkanCmdBuffer> >, std::allocator<std::unique_ptr<CVulkanCmdBuffer, std::default_delete<CVulkanCmdBuffer> > > >::~vector (this=0x555555af5878 <g_device+1624>, __in_chrg=<optimized out>) at /usr/include/c++/14/bits/stl_vector.h:735
#10 0x000055555567f54a in CVulkanDevice::~CVulkanDevice (this=0x555555af5220 <g_device>, __in_chrg=<optimized out>) at ../src/rendervulkan.hpp:739
#11 0x00007ffff6c56a76 in __run_exit_handlers (status=0, listp=0x7ffff6df1680 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at ./stdlib/exit.c:108
#12 0x00007ffff6c56baa in __GI_exit (status=<optimized out>) at ./stdlib/exit.c:138
#13 0x00007ffff6c3edc1 in __libc_start_call_main (main=main@entry=0x55555562f5b6 <main(int, char**)>, argc=argc@entry=7, argv=argv@entry=0x7fffffffe168) at ../sysdeps/nptl/libc_start_call_main.h:74
#14 0x00007ffff6c3ee75 in __libc_start_main_impl (main=0x55555562f5b6 <main(int, char**)>, argc=7, argv=0x7fffffffe168, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe158) at ../csu/libc-start.c:360
#15 0x0000555555592601 in _start ()
sharkautarch commented 2 months ago

@wsy2220 Does it work if you run with --backend sdl

wsy2220 commented 1 month ago

@wsy2220 Does it work if you run with --backend sdl

Hi, I just tried. SDL works without segfault.