ValveSoftware / SteamVR-for-Linux

Issue tracker for the Linux port of SteamVR
918 stars 45 forks source link

SteamVR won't open. #198

Open assumptionsoup opened 8 years ago

assumptionsoup commented 8 years ago

My system information

Full System Info https://gist.github.com/assumptionsoup/5e8d18cdedbdb6d6673fde36291c2ecb

The issue:

I click on the SteamVR button. A window pops up saying "Preparing to launch Steam VR". The window goes away. Steam VR does not launch. The process is running though (several of them in fact, because I pressed the button more than once):

>>> ps -aux | grep steam

jordan    2598  0.0  0.0  92344 22772 pts/0    S+   18:56   0:00 gvfs-open steam://startvrmode
jordan    3016  0.0  0.3 362820 108116 pts/0   S+   18:57   0:00 /home/jordan/.steam/ubuntu12_32/steam
jordan    3017  0.0  0.0  60808 22080 pts/0    S+   18:57   0:00 /bin/sh -c "/home/jordan/.steam/steam/steamapps/common/SteamVR/dl_ovr_runtime.sh"
jordan    3018  0.0  0.0  74828 24728 pts/0    S+   18:57   0:00 /bin/bash /home/jordan/.steam/steam/steamapps/common/SteamVR/dl_ovr_runtime.sh
jordan    3020  0.0  0.0  60944 22036 pts/0    S+   18:57   0:00 /bin/sh /usr/bin/xdg-open steam://startvrmode
jordan    3022  0.0  0.0  92344 22628 pts/0    S+   18:57   0:00 gvfs-open steam://startvrmode
jordan    3133  0.0  0.3 367220 108440 pts/0   S+   19:03   0:00 /home/jordan/.steam/ubuntu12_32/steam
jordan    3134  0.0  0.0  60808 22028 pts/0    S+   19:03   0:00 /bin/sh -c "/home/jordan/.steam/steam/steamapps/common/SteamVR/dl_ovr_runtime.sh"
jordan    3135  0.0  0.0  74828 24672 pts/0    S+   19:03   0:00 /bin/bash /home/jordan/.steam/steam/steamapps/common/SteamVR/dl_ovr_runtime.sh
jordan    3137  0.0  0.0  60944 22040 pts/0    S+   19:03   0:00 /bin/sh /usr/bin/xdg-open steam://startvrmode
jordan    3139  0.0  0.0  92344 22640 pts/0    S+   19:03   0:00 gvfs-open steam://startvrmode
jordan    3191  0.0  0.0  21296   972 pts/2    S+   19:04   0:00 grep --color=auto steam

Running this process in the terminal outputs:

>>> /usr/bin/xdg-open steam://startvrmode
Running Steam on ubuntu 16.04 64-bit
STEAM_RUNTIME is enabled automatically

Then returns.

Steps for reproducing this issue:

I installed SteamVr via the first popup when opening steam. I tried installing steam from both ubuntu repositories and from the .deb file. All versions have this issue.

Tele42 commented 8 years ago

Hello, you might be able to get a hint from the stdout log from steam. You can either close steam, then launch steam from a terminal, or check /tmp/dumps/<username>_stdout.log after trying to start steamvr.

assumptionsoup commented 8 years ago

Thanks @Tele42 . Unfortunately /tmp/dumps/_stdout.log does not exist. Launching steam from the terminal results in this:

Running Steam on ubuntu 16.04 64-bit
STEAM_RUNTIME is enabled automatically
[2016-06-03 19:45:50] Startup - updater built Jun  1 2016 21:40:24
[2016-06-03 19:45:50] Opted in to client beta 'publicbeta' via beta file
You are in the 'publicbeta' client beta.
[2016-06-03 19:45:50] Verifying installation...
[2016-06-03 19:45:50] Verification complete
Running Steam on ubuntu 16.04 64-bit
STEAM_RUNTIME has been set by the user to: /home/jordan/.steam/ubuntu12_32/steam-runtime
Refresh rate: 1
Refresh rate: 1
Refresh rate: 1
Refresh rate: 1
Refresh rate: 1
Refresh rate: 1
Refresh rate: 1
Refresh rate: 1

No further output appears when trying to launch SteamVR. NOTE: I did just try updating to the beta client (as seen in the log), but it hasn't helped.

Does steam have a verbose mode?

Tele42 commented 8 years ago

Oh my, github didn't like how I typed that, your username is before _stdout. Adjusted above as well.

assumptionsoup commented 8 years ago

Thanks @Tele42, I should have clarified though - the /tmp/dumps directory exists, but it is empty. Steam isn't writing there for some reason. Regardless, launching steam from the terminal didn't give much info. Unless steam will write more info to /tmp/dumps, I don't think it's going to help.

gdrewb-valve commented 8 years ago

Steam can only catch dumps with itself or the apps, if there are problems with drivers like OpenGL they typically aren't caught.

madrang commented 8 years ago

Same here, can't start SteamVR, crashing on launch. One month now that i have my Vive and never got to try it... 1500CAD$ Collecting dust..... https://steamcommunity.com/app/250820/discussions/3/357285562482503696/

Edit: Bigger Linux SteamVR Thread: http://steamcommunity.com/app/250820/discussions/0/357284131789891918/

Trying to start SteamVR

(gvfs-open:25267): GLib-GObject-CRITICAL **: /usr/src/packages/BUILD/glib2.0-2.32.3/./gobject/gtype.c:2722: You forgot to call g_type_init()

(gvfs-open:25267): GLib-GObject-CRITICAL **: g_type_interface_add_prerequisite: assertion `G_TYPE_IS_INTERFACE (interface_type)' failed

(gvfs-open:25267): GLib-CRITICAL **: g_once_init_leave: assertion `result != 0' failed

(gvfs-open:25267): GLib-GObject-CRITICAL **: /usr/src/packages/BUILD/glib2.0-2.32.3/./gobject/gtype.c:2722: You forgot to call g_type_init()

(gvfs-open:25267): GLib-CRITICAL **: g_once_init_leave: assertion `result != 0' failed

(gvfs-open:25267): GLib-GObject-CRITICAL **: /usr/src/packages/BUILD/glib2.0-2.32.3/./gobject/gtype.c:2722: You forgot to call g_type_init()

(gvfs-open:25267): GLib-CRITICAL **: g_once_init_leave: assertion `result != 0' failed

Edit: New update tonight for Steam and SteamVR beta and i got a new error message.

ExecSteamURL: "steam://run/250820"
gvfs-open: symbol lookup error: gvfs-open: undefined symbol: g_desktop_app_info_get_boolean
grep: symbol lookup error: grep: undefined symbol: pcre_jit_stack_alloc
grep: symbol lookup error: grep: undefined symbol: pcre_jit_stack_alloc
Running Steam on ubuntu 16.04 64-bit
STEAM_RUNTIME has been set by the user to: /home/madrang/.local/share/Steam/ubuntu12_32/steam-runtime
grep: symbol lookup error: grep: undefined symbol: pcre_jit_stack_alloc
awk: /home/madrang/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libtinfo.so.5: no version information available (required by /lib/x86_64-linux-gnu/libreadline.so.6)
grep: symbol lookup error: grep: undefined symbol: pcre_jit_stack_alloc
grep: symbol lookup error: grep: undefined symbol: pcre_jit_stack_alloc
ExecCommandLine: "/home/madrang/.local/share/Steam/ubuntu12_32/steam steam://startvrmode"
ExecSteamURL: "steam://startvrmode"
bjm904 commented 8 years ago

I'm having the same issue as @madrang on the release channel when launching SteamVR. Using the beta channel just produces this in the steam log:

ExecCommandLine: "/home/bjm904/.local/share/Steam/ubuntu12_32/steam -foreground" ExecSteamURL: "steam://run/250820" Running Steam on linuxmint 17.3 64-bit STEAM_RUNTIME has been set by the user to: /home/bjm904/.local/share/Steam/ubuntu12_32/steam-runtime ExecCommandLine: "/home/bjm904/.local/share/Steam/ubuntu12_32/steam -foreground"

Linux Mint 17.3 Rosa (64 bit) Driver: X.Org Gallium 0.4 on AMD HAWAII Driver Version: 3.0 Mesa 10.5.9

hradec commented 8 years ago

no news on this??? I'm having the same exact issue!! running on arch linux!

this is the stdout currently for me:

ExecSteamURL: "steam://run/250820"
gvfs-open: symbol lookup error: gvfs-open: undefined symbol: g_desktop_app_info_get_boolean
Running Steam on arch rolling 64-bit
STEAM_RUNTIME has been set by the user to: /RAID/atomo/home/rhradec/.local/share/Steam/ubuntu12_32/steam-runtime
ExecCommandLine: "/RAID/atomo/home/rhradec/.local/share/Steam/ubuntu12_32/steam steam://startvrmode"
ExecSteamURL: "steam://startvrmode"

One thing that stroke my eye is the "gvfs-open: undefined symbol: g_desktop_app_info_get_boolean"... g_desktop_app_info_get_boolean is a function from gnome, and it may have to do with the gnome version I'm running, which is the latest! (Version 3.20.2)

So maybe Valve is building SteamVR using a deprecated version of gnome libraries? It shoudl be a matter of update the gnome libraries...

I ran the vrcompositor directly, (after running vrserver), and got this:

[Thread debugging using libthread_db enabled] Using host libthread_db library "/usr/lib/libthread_db.so.1". Using breakpad crash handler Setting breakpad minidump AppID = 338750 Forcing breakpad minidump interfaces to load Looking up breakpad interfaces from steamclient Calling BreakpadMiniDumpSystemInit

Is SteamVR opensourced?? can I build it myself and try to fix this?

Arch Linux 64 bit AMD FX(tm)-8100 Eight-Core Processor × 8 Driver: Latest XOrg with NVIDIA 370.23 (GeForce GT 730/PCIe/SSE2)

johnfrancisgit commented 7 years ago

I'm also having the same issue. Ubuntu 16.04 Latest steam client (no beta)

LanderU commented 7 years ago

any updates about this?

I have the same problem. I also have an Ubuntu 16.04 and NVidia graphic card.

walmartshopper commented 7 years ago

Still having this issue on Arch 64bit with nvidia 375.26 running KDE. Steam is on beta channel and SteamVR is also on beta. Tried using both steam runtime and native runtime. I only have 1 linux VR game, but I would at least like to be able to play other games in theater mode.

diehummel commented 7 years ago

For me its also not starting.

Running commands on terminal..

echo $LD_LIBRARY_PATH /home/chris/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/:/home/chris/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/:/home/chris/.local/share/Steam/ubuntu12_32:

32 Bit: ~/.local/share/Steam/steamapps/common/SteamVR/bin/linux32/vrserver Using breakpad crash handler Setting breakpad minidump AppID = 250820 Forcing breakpad minidump interfaces to load Looking up breakpad interfaces from steamclient Calling BreakpadMiniDumpSystemInit

~/.local/share/Steam/steamapps/common/SteamVR/bin/linux32$ ./vrcmd_linux VR_IsRuntimeInstalled returned false to indicate that the runtime is not installed.

64 Bit: ~/.local/share/Steam/steamapps/common/SteamVR/bin/linux64$ ./vrcmd /home/chris/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrserver: /home/chris/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3: no version information available (required by /usr/lib/x86_64-linux-gnu/libpulse.so.0) /home/chris/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrserver: /home/chris/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3: no version information available (required by /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-8.0.so) /home/chris/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrserver: /home/chris/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libgpg-error.so.0: no version information available (required by /lib/x86_64-linux-gnu/libgcrypt.so.20) VR Server (v1485823399)

Using breakpad crash handler Setting breakpad minidump AppID = 250820 Forcing breakpad minidump interfaces to load Looking up breakpad interfaces from steamclient Calling BreakpadMiniDumpSystemInit

Device 0 - lighthouse.LHR-B049F8E9 - Vive MV by HTC - HMD - generic_hmd Tracking Firmware Version: 1462663157 steamservices@firmware-win32 2016-05-08 FPGA 1.6/0/0 Hardware Revision: product 128 rev 2.1.0 lot 2000/0/0 0 Left Projection: left=-1.396995, right=1.247697, top=-1.473597, bottom=1.463689 Right Projection: left=-1.244192, right=1.393212, top=-1.473953, bottom=1.455966 Lens Center: (0.545161, 0.497301), (0.454798, 0.495089) Driver lighthouse : 0 displays Driver oculus : 0 displays Driver oculus_legacy : 0 displays Driver null : 0 displays ioctl (GFEATURE): Broken pipe <last line trimmed by moderator, repeats 128 times>

~/.local/share/Steam/steamapps/common/SteamVR/bin/linux64$ ./vrserver ./vrserver: /home/chris/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3: no version information available (required by /usr/lib/x86_64-linux-gnu/libpulse.so.0) ./vrserver: /home/chris/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3: no version information available (required by /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-8.0.so) ./vrserver: /home/chris/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libgpg-error.so.0: no version information available (required by /lib/x86_64-linux-gnu/libgcrypt.so.20) VR Server (v1485823399)

Using breakpad crash handler Setting breakpad minidump AppID = 250820 Forcing breakpad minidump interfaces to load Looking up breakpad interfaces from steamclient Calling BreakpadMiniDumpSystemInit

It looks like for example, libdbus-1.so.3 try using wrong libpulse.so.0 It wants to use version from /usr/lib/x86_64-linux-gnu/ instead ~/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/

hradec commented 6 years ago

I was able to pin-point my issue at vrcompositor. It crashes right at the initialization phase, as showed by gdb:

image

So, it seems vrcompositor and nvidia 387.22 doesn't agree with each other!!

If someone wants to give this a try, this is how you do it:

export LD_LIBRARY_PATH=~/.steam/steam/steamapps/common/SteamVR/bin/linux64/
gdb ~/.steam/steam/steamapps/common/SteamVR/bin/linux64/vrcompositor 

once gdb loads up, type r+ENTER to run vrcompositor. If it crashes, type bt+ENTER to show the stack trace and find out where the crash occurred.

off course one must have GDB debugger installed.

I'll keep digging, but there's not much I can do without source code... 8'(

btw, does Valve still read this at all?!? the last interaction from someone at Valve was one year ago... Jun/2016 image And this keeps happening since then... It's a pity SteamVR is not Open Sourced, or else we could fix it ourselves.

May I suggest Valve to open source AT LEAST vrcompositor? since it's by large the ONE cause of most problems for people running linux everywhere, from what I could gather on the net.

I'm offering my help on fix this, if you guys at Vavle want! I just need a consistent Linux SteamVR environment for a few projects I'm work on, for the medical field. I'm currently using OpenHMD directly, but SteamVR would be perfect since it works with a much larger gamma of API's (ovrd, osvr, openhmd) and consequently devices.

cheers... -H

hradec commented 6 years ago

There is some more info from the generated crash dump file: image

I've attached the full dump file in a zip file here: crash_dump.zip

Or you can read a ASCII version here: https://gist.github.com/hradec/ab5f15c7388cdd078df8630943616f7a

kisak-valve commented 6 years ago

For reference, the attached minidump is a SIGSEGV in libnvidia-glcore.so.387.22.

kisak-valve commented 6 years ago

Hello @hradec, please try to keep your comments reasonable. The previous note is only for reference, nothing more, nothing less.

It may be worthwhile to double check that the installed vulkan implementation is sane with a tool like vulkaninfo. A little while back there was some trouble reported with nvidia's vulkan icd file where it needs a different library_path depending on if libglvnd is being used or not.

hradec commented 6 years ago

I'm not sure what was "unreasonable" in my comments, specially when I wrote about things Valve can do to give a better support for the linux community, like at least tell everyone what version of nvidia driver works with your products, instead of blaming on nvidia and "washing your hands" all the time.

I think unreasonable is you deleting my comment so no-one else can see, and not taking responsability for anything I wrote there. Again... ONE YEAR HAS PAST since you guys last commented on this issue!

Regarding vulkaninfo and the icd file, I already did that since I already found that information on this thread (I'm not complaining "out of the blue") : https://github.com/ValveSoftware/SteamVR-for-Linux/issues/16

and it's NOT that either!

here is my complete vulkaninfo: https://gist.github.com/hradec/c15b265f0b97c7cfd04bffdf5f36aedb

image

and this is the contents of my icd file: image

kisak-valve commented 6 years ago

Since you are using Arch, can you opt into the steam beta and start steam with steam-runtime to make sure the steam runtime is up to date. After that, what does ~/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh output in a separate terminal?

johnfrancisgit commented 6 years ago

I don't think the problem is with the nvidia driver since steamvr had the same problem for me regardless of whether I was using an amd card with radeon drivers or and nvidia card with their proprietary drivers on ubuntu 16.04.

Plagman commented 6 years ago

I will double-check that 387.22 hasn't regressed SteamVR on Monday. It seems like there might just be a crash issue on swapchain creation with that new driver, be it a problem on our end or theirs.

A few notes from people higher in the thread: don't try running things like vrserver and vrcompositor by hand; use vrstartup.sh. Either start it from Steam, or use steam-runtime's run.sh to invoke it.

hradec commented 6 years ago

Since you are using Arch, can you opt into the steam beta and start steam with steam-runtime to make sure the steam runtime is up to date. After that, what does ~/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh output in a separate terminal?

I've ran steam-runtime and everything seems ok in steam... all up-to-date and no errors.

I have being using the beta version of steamVR from the beginning, and just for the sake of it, I ran "verify integrity of tool files" and it shows as being all good! image

image

Then I've run ~/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh and this is the log that came out on the shell terminal: https://gist.github.com/hradec/3231150dc2f2c9de5b81032e188c1a32

and this is the crashdump file - /tmp/dumps/crash_20171127144451_1.dmp: crashdump.zip

although there was that log and crashdump, steamVR still ran fine with that command, as you can see: image but showed that something was wrong.

vrcompositor is still crashing.

By examining vrstartup.sh, it sets LD_PRELOAD env var to force the loading of libstdc++.so.6, libgcc_s.so.1, libgpg-error.so and libxcb.so.1. BUT, as it sets it using $LIB, which is not defined by Arch at all, the library paths are /usr//, which doesn't exist in Arch.

Also, in linux, one have to use semicolon to define more than one shared library to be preloaded in LD_PRELOAD, but steam_runtime is using spaces, which doesn't work at all!!

So, it looks like that LD_PRELOAD is essentially doing nothing, since /usr/lib/steam/steamALSO DOESN'T define $LIB.

It seems vrcompositor is still loading the wrong libgpg-error.so file, as showed in the crashdump: image

I've looked for all libgpg-error.so* in my steam install path, and those are the only ones I've found: image

But those are not correct either, since when I tried THEN as LD_PRELOAD, they show up as being the wrong elf class: image

Sooo.. not sure WHY you wan't me to run steam-runtime, since it seems to do nothing at all to load steam... UNLESS you guys parse LD_PRELOAD internally in your code to use it for something completely different than it's supposed to be used for.

sooo... what now?

hradec commented 6 years ago

~/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh output in a separate terminal?

by the way, I notice this in the vrstartup.sh log I attached in the last comment:

++ cd /atomo/home/rhradec/.local/share/Steam/steamapps/common/SteamVR/../runtime
/atomo/home/rhradec/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh: line 3: cd: /atomo/home/rhradec/.local/share/Steam/steamapps/common/SteamVR/../runtime: No such file or directory

Which seems like a bug in the script or a bug in steam, since there's no ~/.local/share/Steam/steamapps/common/runtime folder.

later in the script, it uses that path to set LD_LIBRARY_PATH, which essentially does nothing again:

export LD_LIBRARY_PATH=.:$RUNTIMEDIR/bin/linux64:$QT_DIR/lib:$TOOLSDIR/bin/linux64:$LD_LIBRARY_PATH

Is my steam install bugged (and steam can't see and fix it?) or the runtime folder is deprecated and the code setup for it is just there doing nothing or is this another bug in your script?

hradec commented 6 years ago

I've managed to squeeze some more debug out of ~/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh, using a vulkan debug environment variable, like this:

VK_LOADER_DEBUG=all ~/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh

as you can see, steamvr is actually loading the correct icd file, which is telling vulkan to use libGLX_nvidia.so.0 correctly: image

but this actually caught my attention: image

some of the vulkan symbols are "Unknown" instead of comming from libGLX_nvidia.so.0.

this is a list of all the symbols with (Unknown):

DEBUG: Device Extension: VK_KHR_swapchain (Unknown) version 0.0.68
DEBUG: Device Extension: VK_KHR_16bit_storage (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_bind_memory2 (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_descriptor_update_template (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_dedicated_allocation (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_get_memory_requirements2 (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_image_format_list (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_maintenance1 (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_maintenance2 (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_push_descriptor (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_relaxed_block_layout (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_sampler_mirror_clamp_to_edge (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_sampler_ycbcr_conversion (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_shader_draw_parameters (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_storage_buffer_storage_class (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_external_memory (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_external_memory_fd (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_external_semaphore (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_external_semaphore_fd (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_external_fence (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_external_fence_fd (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_variable_pointers (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHX_device_group (Unknown) version 0.0.2
DEBUG: Device Extension: VK_KHX_external_memory (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHX_external_memory_fd (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHX_external_semaphore (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHX_external_semaphore_fd (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHX_multiview (Unknown) version 0.0.1
DEBUG: Device Extension: VK_EXT_blend_operation_advanced (Unknown) version 0.0.2
DEBUG: Device Extension: VK_EXT_depth_range_unrestricted (Unknown) version 0.0.1
DEBUG: Device Extension: VK_EXT_discard_rectangles (Unknown) version 0.0.1
DEBUG: Device Extension: VK_EXT_display_control (Unknown) version 0.0.1
DEBUG: Device Extension: VK_EXT_post_depth_coverage (Unknown) version 0.0.1
DEBUG: Device Extension: VK_EXT_sampler_filter_minmax (Unknown) version 0.0.1
DEBUG: Device Extension: VK_EXT_shader_subgroup_ballot (Unknown) version 0.0.1
DEBUG: Device Extension: VK_EXT_shader_subgroup_vote (Unknown) version 0.0.1
DEBUG: Device Extension: VK_EXT_shader_viewport_index_layer (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NV_dedicated_allocation (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NV_fill_rectangle (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NV_fragment_coverage_to_color (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NV_framebuffer_mixed_samples (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NV_glsl_shader (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NV_clip_space_w_scaling (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NV_sample_mask_override_coverage (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NV_viewport_array2 (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NV_viewport_swizzle (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NV_geometry_shader_passthrough (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NVX_device_generated_commands (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NVX_multiview_per_view_attributes (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_swapchain (Unknown) version 0.0.68
DEBUG: Device Extension: VK_KHR_16bit_storage (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_bind_memory2 (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_descriptor_update_template (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_dedicated_allocation (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_get_memory_requirements2 (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_image_format_list (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_maintenance1 (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_maintenance2 (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_push_descriptor (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_relaxed_block_layout (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_sampler_mirror_clamp_to_edge (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_sampler_ycbcr_conversion (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_shader_draw_parameters (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_storage_buffer_storage_class (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_external_memory (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_external_memory_fd (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_external_semaphore (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_external_semaphore_fd (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_external_fence (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_external_fence_fd (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHR_variable_pointers (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHX_device_group (Unknown) version 0.0.2
DEBUG: Device Extension: VK_KHX_external_memory (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHX_external_memory_fd (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHX_external_semaphore (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHX_external_semaphore_fd (Unknown) version 0.0.1
DEBUG: Device Extension: VK_KHX_multiview (Unknown) version 0.0.1
DEBUG: Device Extension: VK_EXT_blend_operation_advanced (Unknown) version 0.0.2
DEBUG: Device Extension: VK_EXT_depth_range_unrestricted (Unknown) version 0.0.1
DEBUG: Device Extension: VK_EXT_discard_rectangles (Unknown) version 0.0.1
DEBUG: Device Extension: VK_EXT_display_control (Unknown) version 0.0.1
DEBUG: Device Extension: VK_EXT_post_depth_coverage (Unknown) version 0.0.1
DEBUG: Device Extension: VK_EXT_sampler_filter_minmax (Unknown) version 0.0.1
DEBUG: Device Extension: VK_EXT_shader_subgroup_ballot (Unknown) version 0.0.1
DEBUG: Device Extension: VK_EXT_shader_subgroup_vote (Unknown) version 0.0.1
DEBUG: Device Extension: VK_EXT_shader_viewport_index_layer (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NV_dedicated_allocation (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NV_fill_rectangle (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NV_fragment_coverage_to_color (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NV_framebuffer_mixed_samples (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NV_glsl_shader (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NV_clip_space_w_scaling (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NV_sample_mask_override_coverage (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NV_viewport_array2 (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NV_viewport_swizzle (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NV_geometry_shader_passthrough (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NVX_device_generated_commands (Unknown) version 0.0.1
DEBUG: Device Extension: VK_NVX_multiview_per_view_attributes (Unknown) version 0.0.1

I was able to find all those symbols (booth showing (Unknown) and (libGLX_nvidia.so.0) in /usr/lib/libnvidia-glcore.so. So I'm not sure why they show as Unknown or if it's relevant at all!

anyhow, this is the full log: https://gist.github.com/hradec/da94ec5af2c8f3448d582044741f154c

hradec commented 6 years ago

@Plagman I will double-check that 387.22 hasn't regressed SteamVR on Monday. It seems like there might just be a crash issue on swapchain creation with that new driver, be it a problem on our end or theirs.

Any news on this?

it seems even with the latest 387.34 driver, things are still broken, as you can see here: https://github.com/ValveSoftware/SteamVR-for-Linux/issues/24#issuecomment-347406914

if you can't tell us what driver is compatible, can you at least tell us what nvidia driver version are you guys using at Valve to develop this?

at least that way we would have a starting point which should work, don't you agree?

kisak-valve commented 6 years ago

A bunch of (Unknown) debug lines also happen in a working vulkan application (randomly picked Mad Max vulkan beta). I read that as the vulkan loader probing the drivers to see what's available.

Plagman commented 6 years ago

Are you using an old libvulkan from your system? This might be at the core of your issues. Can you try both of these things:

hradec commented 6 years ago

Are you using an old libvulkan from your system?

this is the one I have: image

as you can see, it comes inside vulkan-icd-loader package, and that package is up-to-date with Arch linux "extra" repository.

so, short answer: no... I'm not running an old version of libvulkan, unless by libvulkan you're meaning some other library than libvulkan.so

pastebin full output of vulkaninfo, and ~/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh vulkaninfo.

https://gist.github.com/hradec/f00d281953b221ca65f523aefb954080

try running SteamVR like so: ~/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh ~/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh

same thing... this is the output log: https://gist.github.com/hradec/3bde3df30e3099a9f401b151edb2f5bc

could you please answer my questions in my last comment? image

hradec commented 6 years ago

well.. apparently you guys can't answer any of my questions. I'm starting to wonder if you test your software on a NVidia system at all!! But that would be pretty "unreasonable" to assume, right?


Anyhow, today steam updated steamVR (with a "high priority" tag in it), but off course it doesn't fix the problem: image image image

hradec commented 6 years ago

ok... lets try one more time... Could you please answer at least this one question: image

pretty please?

Plagman commented 6 years ago

We're successfully testing with driver 387, and other users are reporting success as well. It seems your problem has more in play than just the driver version, we'll have to keep troubleshooting until we can isolate what in your setup is causing that compositor crash on startup. It's possible it has to do with running against this newer loader version rather than the one in the Steam runtime.

hradec commented 6 years ago

We're successfully testing with driver 387, and other users are reporting success as well. ok...

so, what 387specifically? 387.22 or 387.34?

It seems your problem has more in play than just the driver version, we'll have to keep troubleshooting until we can isolate what in your setup is causing that compositor crash on startup. It's possible it has to do with running against this newer loader version rather than the one in the Steam runtime.

Could you elaborate about whats "this newer loader version" is? for example:

  1. What is the "loader" you are talking about? (run.sh script? vrstartup.sh? libvulkan?)

  2. How can I run against the one in the steam runtime then?

  3. I thought executing ~/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh ~/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh was essentially running against the steam runtime, no?

Plagman commented 6 years ago

Tested both 387.22 and 387.34.

The loader refers to libvulkan here, the Vulkan loader. run.sh will run with Steam runtime bits, but only if they're not newer than your OS version. However I justed tested with a libvulkan.so.1.0.61 from Ubuntu, which is the same version as you, and it works fine there too.

hradec commented 6 years ago

not sure if it matters, but this is the video board I'm running: image

Plagman commented 6 years ago

Do you see GPU memory usage get very high when you try starting SteamVR? It's possible we're just running out of memory early due to allocating large scanout surfaces for the HMD, all our testing has been on higher-end cards so far.

hradec commented 6 years ago

The loader refers to libvulkan here, the Vulkan loader. run.sh will run with Steam runtime bits, but only if they're not newer than your OS version.

humm... so if my OS has newer libraries, steam will use then?

I do have this type of issue with VFX softwares in our studio pipeline. Essentially there are software versions (Like Maya or Nuke) that require a specific "range" of library versions to run, and sometimes we have crashes with older or newer versions of said library.

And since we need to run different versions of those software, sometimes at the same time on the same machine (like Maya 2014 with Maya 2016), our pipeline essentially "knows" what versions of every essential library it needs to use for each version.

Hence, we need to maintain a large repository of different library versions to be selected to run with each software version. (Not to mention things like Maya running a "hacked" version of QT, which is incompatible with the standard QT)

So... essentially our pipeline only let software use libraries from the host distro ONLY if we don't have it in our repository.

However I justed tested with a libvulkan.so.1.0.61 from Ubuntu, which is the same version as you, and it works fine there too.

Well, Arch linux is way more up2date than Ubuntu for sure... so it could be something else then.

Is there a simple way to essentially FORCE run.sh to use the steam runtime libraries, even if the system has newer versions?

hradec commented 6 years ago

Do you see GPU memory usage get very high when you try starting SteamVR? It's possible we're just running out of memory early due to allocating large scanout surfaces for the HMD, all our testing has been on higher-end cards so far.

testing now... hang in there!

kisak-valve commented 6 years ago

The STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 env variable will make run.sh prefer the steam runtime libraries.

hradec commented 6 years ago

I left a shell opened running watch -n 0.1 nvidia-smi to monitor the memory usage of the gpu, and after executing ~/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh ~/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh GPU memory went up just about 100MB tops.

Unless vrcompositor is trying to allocate more than 1.5GB at once and failing, it doesn't seem to be related to memory exhaustion.

hradec commented 6 years ago

The STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 env variable will make run.sh prefer the steam runtime libraries.

trying now again with STEAM_RUNTIME_PREFER_HOST_LIBRARIES:

this time, it can't find my headset or nolovr since it probably not findind libopenhmd.so now: image

and this is the log output:

export STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 ; ~/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh ~/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh
+++ dirname /atomo/home/rhradec/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh
++ cd /atomo/home/rhradec/.local/share/Steam/steamapps/common/SteamVR/bin/..
++ pwd
+ TOOLSDIR=/atomo/home/rhradec/.local/share/Steam/steamapps/common/SteamVR
++ cd /atomo/home/rhradec/.local/share/Steam/steamapps/common/SteamVR/../runtime
/atomo/home/rhradec/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh: line 3: cd: /atomo/home/rhradec/.local/share/Steam/steamapps/common/SteamVR/../runtime: No such file or directory
++ pwd
+ RUNTIMEDIR=/RAID/atomo/home/rhradec/dev/a78/customRoom/customROMS
+ case $(uname) in
++ uname
+ '[' -z /atomo/home/rhradec/.local/share/Steam/ubuntu12_32/steam-runtime ']'
+ VRSTARTUP=/atomo/home/rhradec/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrstartup
+ QT_DIR=/atomo/home/rhradec/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/qt
+ export LD_LIBRARY_PATH=.:/RAID/atomo/home/rhradec/dev/a78/customRoom/customROMS/bin/linux64:/atomo/home/rhradec/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/qt/lib:/atomo/home/rhradec/.local/share/Steam/steamapps/common/SteamVR/bin/linux64:/atomo/home/rhradec/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu:/atomo/home/rhradec/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib:/atomo/home/rhradec/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu:/atomo/home/rhradec/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib:/atomo/home/rhradec/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu:/atomo/home/rhradec/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib:/atomo/home/rhradec/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu:/atomo/home/rhradec/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib:
+ LD_LIBRARY_PATH=.:/RAID/atomo/home/rhradec/dev/a78/customRoom/customROMS/bin/linux64:/atomo/home/rhradec/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/qt/lib:/atomo/home/rhradec/.local/share/Steam/steamapps/common/SteamVR/bin/linux64:/atomo/home/rhradec/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu:/atomo/home/rhradec/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib:/atomo/home/rhradec/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu:/atomo/home/rhradec/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib:/atomo/home/rhradec/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu:/atomo/home/rhradec/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib:/atomo/home/rhradec/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu:/atomo/home/rhradec/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/usr/lib:
+ export QT_PLUGIN_PATH=/atomo/home/rhradec/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/qt/plugins
+ QT_PLUGIN_PATH=/atomo/home/rhradec/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/qt/plugins
+ exec /atomo/home/rhradec/.local/share/Steam/steamapps/common/SteamVR/bin/linux64/vrstartup
VR Server (v1512101170)

Using breakpad crash handler
Setting breakpad minidump AppID = 250820
Forcing breakpad minidump interfaces to load
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Using breakpad crash handler
Setting breakpad minidump AppID = 250820
Forcing breakpad minidump interfaces to load
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
QObject::connect: No such signal CQVRStatusDismissableWarning::OnDismissButtonClicked() in qsteamvrstatuswindow.cpp:616
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 72: non-double matrix element
Fontconfig error: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 72: non-double matrix element
Fontconfig warning: "/etc/fonts/conf.d/10-scale-bitmap-fonts.conf", line 80: saw unknown, expected number
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
VR Server (v1512101170)

Using breakpad crash handler
Setting breakpad minidump AppID = 250820
Forcing breakpad minidump interfaces to load
Looking up breakpad interfaces from steamclient
Calling BreakpadMiniDumpSystemInit
Initialize() is failed!!!

Although there's no crashdump, it may be because it couldn't find a headset, as this hint from vrcompositor.txt indicates:

Mon Dec 04 2017 11:44:27.202003 - //=====================================================================================================================
Mon Dec 04 2017 11:44:27.202120 - VR compositor (v1512101170) starting up
Mon Dec 04 2017 11:44:27.202155 - RuntimePath : /ssd/dot_local_share_Steam/Steam/steamapps/common/SteamVR/
Mon Dec 04 2017 11:44:27.387495 - Failed to start compositor: VRInitError_Init_HmdNotFound

PS: btw, steamVR loads WAAAY faster with STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0.

hradec commented 6 years ago

ok... the reason STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 environment can't find my headset is because the driver_openhmd.so library I've build with my system gcc FAILS to run with steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6 since it's a older version:

image

It is indeed the exactly same problem we have in VFX when developing plugins for Maya, Nuke, Houdini, etc. In this case, the solution is re-build driver_openhmd.so using the same GCC as you guys use for steamVR.

I'm guessing you're using gcc 4.2.0, according to what I've found in steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libstdc++.so.6: image

Correct?

I'll rebuild it here so I can get vrcompositor to detect my headset and get to the end of the initialization, so then we can now if it "stays alive" or not! (hopefully it will)

It would be a great help if vrcompositor didn't just stop if there's no headset/controllers connected. At least we could test if its working or not, apart from the devices. (took me a couple of weeks to get openhmd working first with steamvr just to find out vrcompositor was not working, you known?)

hradec commented 6 years ago
  1. Could you please just confirm the GCC version you guys are using for development?

as a reference, this is the Houdini documentation where they specify what version of gcc developers should use: http://www.sidefx.com/docs/hdk/_h_d_k__intro__getting_started.html

image

most VFX apps for Linux specify what version developers should use with each software version. It would be really interesting to have the same info for developers in the OpenVR wiki!

hradec commented 6 years ago

Actually, I was wrong.. the correct way to find out the gcc version of a libstdc++.so library is by checking GLIBCXX: image

so, the biggest one there is GLIBCXX_3.4.21, which according to GCC docs: image

so... almost certain it's GCC version 5.1.0, right?


I'm making a docker-composer setup to build steamvr-openhmd with the correct gcc version for now on, on any distro.

hradec commented 6 years ago

I finished building SteamVR-OpenHMD using the same GCC as Steam libstdc++ library, and now I'm able to properly run STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 ~/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh ~/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh to the very end, with my headset and nolovr connected: image

but unfortunately, it still crashes!

although, the stack trace shows it's not crashing on top of /usr/lib/libnvidia-glcore.so.387.22 anymore!

it actually crashes at steam runtimes libdbus-1.so.3.5.8 library now: image here it is the full crashdump: https://gist.github.com/hradec/ea975f6583dcd661dc2a198d759550fe

one thing caught my eye on vrserver.txt though: image vrserver.txt

It seems vrcompositor closes right after setting up the headset and nolovr with openhmd.

but vrcompositor.txt has no errors in it: image vrcompositor.txt

It seems it just closes... To me, It looks like vrcompositor now can pass through all the vulkan graphics initialization, but crashes at something else after that, without ANY message in the logs. (maybe related to dbus or X11, according to the crashdump stack trace?!)

here is the version of X11 I'm running: image

and dbus: image

What do you guys reckon?


for future reference: SteamVR-OpenHMD now has a docker.sh script which builds the driver using the same GCC as Steam runtime. I've submitted a pull request to integrate it into the main depot.

Plagman commented 6 years ago

I didn't realize you were using a third-party driver this whole time; that would explain why we haven't seen this issue anywhere else. Seems like we would need to build it on our end and try to reproduce your configuration at some point in the future, when the rest of the system is in better shape. However please open a new bug about the OpenHMD-specific symptoms, thanks!

hradec commented 6 years ago

I didn't realize you were using a third-party driver this whole time; that would explain why we haven't seen this issue anywhere else. Seems like we would need to build it on our end and try to reproduce your configuration at some point in the future, when the rest of the system is in better shape. However please open a new bug about the OpenHMD-specific symptoms, thanks!

I'll do that. Is there any way I can run steamVR without any headset/controllers, at least to see vrcompositor not crashing once?

It's being a long year, and I would just love to isolate things, so I known what to focus on. I have being trying to run steamVR first with just the oculusDK1 interface, running the ancient oculus 0.5 sdk for linux, then osvr with oculus sdk, then osvr with openhmd and now the steamvr-openhmd driver.

with all those setups, I always get the vrcompositor crashing... I got my DK1 headset July of last year, and since then I NEVER got to open steamVR once!

It's really frustrating to keep "chasing my tail" around like this!

If I could at least confirm vrcompositor is 100% OK without any of the third-party stuff, I can focus on get the third-party stuff to work, you known?

Plagman commented 6 years ago

You can enable the NULL driver in your steamvr.vrsettings file; here's an example:

https://gist.github.com/Plagman/f45c8b70499e6e1f4fcb6ae129a9f4cc

This should let you start SteamVR and observe the compositor sitting on the default grid.

hradec commented 6 years ago

Did that (to setup the null driver): image

And now, running STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 ~/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh ~/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh still get this: image

steamvr-openhmd is NOT in the search path anymore, as showed here: image

and vrserver.txt STILL shows the disconnection from vrcompositor: image

and I still have a crashdump happening: image

and this is the stack trace (exactly the same): image

So, vrcompositor is NOT crashing due to the third-party driver. I'm getting the EXACT SAME crash happening using the null driver!!!!

again... It's NOT NVIDIA, It's NOT SteamVR-OpenHMD, It's NOT a library in my system since I'm testing with STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0, and the crashdump shows the crash happening in the steam runtime libraries.

Although you already said it works for you and "some other people", it's more than clear it still doesn't work on my system (and haven't worked for the past year), and now its very clear it doesn't seem to be ANYTHING in MY SYSTEM causing the issue.

So, what next now?

vrserver.txt vrcompositor.txt crash_20171206163254_1.dmp.txt

run.sh.vulkaninfo.txt (command line:STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 ~/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh vulkaninfo > run.sh.vulkaninfo.txt)

hradec commented 6 years ago

So... no third-party software installed and still getting the same crash... and no comments from Valve? really? nothing?

hradec commented 6 years ago

As you guys mentioned have tested with the 382 nvidia driver (still don't known if it's 387.22 or 387.34 since you guys didn't answer), did you tested against this kernel version as well?

Linux version 4.13.12-1-ARCH (builduser@tobias) (gcc version 7.2.0 (GCC)) #1 SMP PREEMPT Wed Nov 8 11:54:06 CET 2017

I'm still getting the same crash with null driver, so, again, it's NOT THE THIRD PARTY DRIVER causing the issue.

and again, running vrcompositor throught gdb (using STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 ~/.local/share/Steam/ubuntu12_32/steam-runtime/run.sh ~/.local/share/Steam/steamapps/common/SteamVR/bin/vrstartup.sh), this is the result:

image

as you can see, vrcompositor STILL crashes at vr::CHmdWindowSDL::GetSwapChainBufferResources!

again, it's NOT THE THIRD PARTY DRIVER causing the issue since I completely removed it!

Could it be the SDL version I'm running? image

Plagman commented 6 years ago

I did mention we tested both 387.22 and 387.34. It seems other NVIDIA users are mostly fine on 387.x, at least they can get past this point. We've tested many kernels, including 4.13.x; it shouldn't affect this particular interaction between the compositor and the NVIDIA driver.

If you ever manage to narrow down what specific component of your configuration is causing this compositor crash that, that would be useful information.