protonscr

Godot OpenVR plugin segfault in vrclient.so

steamvrclosed
ValveSoftware/SteamVR-for-Linux#79 · opened 2017-11-27 by ChristophHaag · updated 2018-12-17 · 3 comments · github
CChristophHaag 2017-11-27 github

Since the crash is in CVRCompositorSharedTextures::AcquireSync() I should probably say that I am using the patchset at https://github.com/lostgoat/mesa/tree/wip-semaphore-gl-v2 in my mesa.

The crash does not happen always. Opening the SteamVR frame time graph seems to trigger it often.

Backtrace:

Program terminated with signal SIGABRT, Aborted.
#0  0x00007faf057d68a0 in raise () from /usr/lib/libc.so.6
[Current thread is 1 (Thread 0x7faf08af2f80 (LWP 28826))]
(gdb) bt
#0  0x00007faf057d68a0 in raise () from /usr/lib/libc.so.6
#1  0x00007faf057d7f09 in abort () from /usr/lib/libc.so.6
#2  0x000056360f07f95e in handle_crash (sig=11) at platform/x11/crash_handler_x11.cpp:107
#3  <signal handler called>
#4  0x00007faeec4602f2 in CVRCompositorSharedTextures::AcquireSync() () from /home/chris/.local/share/Steam/SteamApps/common/SteamVR/bin/linux64/vrclient.so
#5  0x00007faeec45b26d in CVRCompositorClient::PostPresentHandoff() () from /home/chris/.local/share/Steam/SteamApps/common/SteamVR/bin/linux64/vrclient.so
#6  0x00007faeec45bcd4 in CVRCompositorClient::WaitGetPoses(vr::TrackedDevicePose_t*, unsigned int, vr::TrackedDevicePose_t*, unsigned int) ()
   from /home/chris/.local/share/Steam/SteamApps/common/SteamVR/bin/linux64/vrclient.so
#7  0x00007faeece80ae3 in godot_arvr_process (p_data=0x56361410e730) at src/ARVRInterface.cpp:297
#8  0x000056360f103c6e in ARVRInterfaceGDNative::process (this=0x563613de7680) at modules/gdnative/arvr/arvr_interface_gdnative.cpp:211
#9  0x00005636108c9365 in VisualServerViewport::draw_viewports (this=0x5636139a72b0) at servers/visual/visual_server_viewport.cpp:243
[#10](/issue/ValveSoftware/SteamVR-for-Linux/10) 0x000056361075b363 in VisualServerRaster::draw (this=0x56361392cb20) at servers/visual/visual_server_raster.cpp:103
[#11](/issue/ValveSoftware/SteamVR-for-Linux/11) 0x0000563610794af9 in VisualServerWrapMT::draw (this=0x563613a7afb0) at servers/visual/visual_server_wrap_mt.cpp:100
[#12](/issue/ValveSoftware/SteamVR-for-Linux/12) 0x000056360f0adafc in Main::iteration () at main/main.cpp:1732
[#13](/issue/ValveSoftware/SteamVR-for-Linux/13) 0x000056360f0886bb in OS_X11::run (this=0x7ffc76d15410) at platform/x11/os_x11.cpp:2126
[#14](/issue/ValveSoftware/SteamVR-for-Linux/14) 0x000056360f07e16f in main (argc=9, argv=0x7ffc76d158d8) at platform/x11/godot_x11.cpp:54

building it is basically

git clone https://github.com/godotengine/godot.git && cd godot && scons platform=x11 -j12
git clone https://github.com/BastiaanOlij/godot_openvr/ && cd godot_openvr && GODOT_HEADERS=/wherever/godot/modules/gdnative/include OPENVR_PATH=/wherever/openvr scons platform=linux

then start godot/bin/godot.x11.tools.64 and import the demo project from the godot_openvr directory and it'll just work (if you have libopenvr_api.so in LD_LIBRARY_PATH probably)

PPlagman 2017-11-27 github

What Mesa are you applying the patchset to? Info on your kernel bits might also be useful to try to reproduce this, Andres might have more questions for you.

CChristophHaag 2017-11-27 github

That was latest mesa git master and amd-staging-drm-next.

The first question is as usual if this is easily reproduced by anyone. I'll probably try it myself without the GL_EXT_semaphore patches too.

CChristophHaag 2018-12-17 github

Hasn't happened for a long time.

Nothing extracted yet.