Open pwaller opened 4 years ago
I can report that unplugging the headset and plugging it into a different displayport socket on the GPU seems to have fixed things.
The behaviour of steamvr when following the instructions before I did this was unfortunate, so I guess this is a bug; but I understand if this is closed without further resolution.
Same problem on Ubuntu 19.10. System - intel nuc hades canyon NUC8i7HNK Intel(R) Core(TM) i7-8705G, Radeon RX Vega M GL 16Gb RAM. HTC Vive (first gen). Connected via HTMI. Detected as monitor on lock screen (and all ui rendered on Vive display). After login it goes black. No picture, tried to change slots, no luck. SteamVR on the same machine on windows10 works perfectly.
At least for me, I think the issue was that my cable was not seated properly. I encountered this again, and this time the reason was almost certainly that it the video cable was not plugged in all the way.
Same problem on Ubuntu 19.10. System - intel nuc hades canyon NUC8i7HNK Intel(R) Core(TM) i7-8705G, Radeon RX Vega M GL 16Gb RAM. HTC Vive (first gen). Connected via HTMI. Detected as monitor on lock screen (and all ui rendered on Vive display). After login it goes black. No picture, tried to change slots, no luck. SteamVR on the same machine on windows10 works perfectly.
A bit unrelated, but by any chance, have you tried it on Ubuntu 18.04 with NUC hades canyon? Is it producing similar behavior?
I think I'm hitting this same bug, although my hardware and software configuration is completely different:
Distribution: ArchLinux Desktop environment: KDE Headset: Valve Index (just unboxed and executed firmware update)
Steam client version: Aug 20 2020, at 22:45:24 Opted into Steam client beta?: Yes SteamVR version: 1.13.10, I guess? I see "vrstartup 1.13.10" in the console" but I don't see a version number anywhere else)
Linux kernel 5.8.3-arch1-1 mesa 20.1.6-1 vulkan-radeon 20.1.6-1 xf86-video-amdgpu 19.1.0-2
I see this warning, and clicking the "Enable Direct Display Mode" button restarts SteamVR, but nothing else happens:
One more thing: I see the headset in xrandr, but it's marked "disconnected":
Screen 0: minimum 320 x 200, current 3440 x 1440, maximum 16384 x 16384 DisplayPort-0 disconnected (normal left inverted right x axis y axis) 2880x1600 90.00 + 144.00 120.02 80.00 1920x1200 90.00 1920x1080 90.00 1600x1200 90.00 1680x1050 90.00 1280x1024 90.00 1440x900 90.00 1280x800 90.00 1280x720 90.00 1024x768 90.00 800x600 90.00 640x480 90.00 DisplayPort-1 connected primary 3440x1440+0+0 (normal left inverted right x axis y axis) 819mm x 346mm 3440x1440 59.97*+ 99.98 30.00 3840x2160 60.00 50.00 59.94 30.00 25.00 24.00 29.97 23.98 2560x1080 100.00 60.00 59.94 1920x1200 59.97 1920x1080 99.92 60.00 60.00 50.00 59.94 30.00 25.00 24.00 29.97 23.98 1600x1200 59.97 1680x1050 59.95 1600x900 60.00 1280x1024 75.02 60.02 1440x900 59.97 1280x800 59.81 1152x864 75.00 1280x720 60.00 50.00 59.94 1024x768 75.03 60.00 832x624 74.55 800x600 75.00 60.32 720x576 50.00 720x480 60.00 59.94 640x480 75.00 60.00 59.94 720x400 70.08 DisplayPort-2 disconnected (normal left inverted right x axis y axis) HDMI-A-0 disconnected (normal left inverted right x axis y axis) DisplayPort-1-3 disconnected (normal left inverted right x axis y axis) DisplayPort-1-4 disconnected (normal left inverted right x axis y axis) DisplayPort-1-5 disconnected (normal left inverted right x axis y axis) HDMI-A-1-1 disconnected (normal left inverted right x axis y axis)
If I set the headset output to desktop mode, the headset is recognized as a regular screen and can be configured as a second screen besides the primary one:
xrandr --output DisplayPort-0 --set non-desktop 0
This confirms that the headset and the cable are working properly, but there must be some software issue. I'll try installing the latest SteamVR beta as soon as I figure out how to opt-in.
I'm a Linux engineer. Happy to run any commands or collect any logs that might help debug this issue.
Hello @codewiz, you might be seeing the behavior I see on my VR test box when vrcompositor wrongly uses the Intel chipset to render instead of the AMD chipset that the HMD is attached to. As a quick test, you can check if you have intel_icd.x86_64.json
and move it aside with something like sudo mv /usr/share/vulkan/icd.d/intel_icd.x86_64.json /usr/share/vulkan/icd.d/intel_icd.x86_64.json.disabled
.
Thanks for the suggestion, @kisak-valve. I only have the radeon_icd:
% ll /usr/share/vulkan/icd.d/
.rw-r--r-- root root 149B Thu Aug 20 18:20:04 2020 radeon_icd.i686.json
.rw-r--r-- root root 147B Thu Aug 20 17:47:25 2020 radeon_icd.x86_64.json
However, perhaps crucially, this machine has two Radeon Vega 64 cards installed:
% lspci | grep AMD
01:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Vega 10 PCIe Bridge (rev c1)
02:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Vega 10 PCIe Bridge
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 XL/XT [Radeon RX Vega 56/64] (rev c1)
03:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 HDMI Audio [Radeon Vega 56/64]
04:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Vega 10 PCIe Bridge (rev c1)
05:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Vega 10 PCIe Bridge
06:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 XL/XT [Radeon RX Vega 56/64] (rev c1)
06:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 HDMI Audio [Radeon Vega 56/64]
Should I try unplugging (or powering off) the second one to see if it helps?
Physically unplugging the second card solved the issue. So it looks like SteamVR is picking the wrong card...
Everything else works fine when both cards are plugged, including vkcube and X-Plane with the Vulkan renderer.
Physically unplugging the second card solved the issue. So it looks like SteamVR is picking the wrong card...
Correction: I'm getting the same issue again today even with a single card. Looks like rebooting made things work once, but not reliably.
afaict, this is the log showing the problem:
Mon Aug 24 2020 14:52:29.499130 - Looking for direct display through RandR Mon Aug 24 2020 14:52:29.499143 - - Root 0x6d4 Mon Aug 24 2020 14:52:29.500559 - - Output 0x55 - 48 modes, 1 preferred Mon Aug 24 2020 14:52:29.500584 - - Mode 0 0x5a 3440x1440 (looking for 2880x1600) Mon Aug 24 2020 14:52:29.500615 - - Output 0x56 - 0 modes, 0 preferred Mon Aug 24 2020 14:52:29.500698 - - Output 0x57 - 0 modes, 0 preferred Mon Aug 24 2020 14:52:29.500734 - - Output 0x58 - 0 modes, 0 preferred Mon Aug 24 2020 14:52:29.500749 - Tried to find direct display through RandR: (nil) Mon Aug 24 2020 14:52:29.500759 - Looking for direct display through Vulkan WSI Mon Aug 24 2020 14:52:29.500772 - Tried to find direct display through Vulkan WSI: (nil) Mon Aug 24 2020 14:52:29.500781 - CHmdWindowSDL: Failed to create direct mode surface Mon Aug 24 2020 14:52:29.501011 - Requesting 10 device extensions: Mon Aug 24 2020 14:52:29.501022 - - VK_KHR_swapchain Mon Aug 24 2020 14:52:29.501030 - - VK_KHR_maintenance1 Mon Aug 24 2020 14:52:29.501038 - - VK_KHR_dedicated_allocation Mon Aug 24 2020 14:52:29.501045 - - VK_KHR_get_memory_requirements2 Mon Aug 24 2020 14:52:29.501052 - - VK_KHR_external_memory Mon Aug 24 2020 14:52:29.501060 - - VK_KHR_external_semaphore Mon Aug 24 2020 14:52:29.501067 - - VK_EXT_display_control Mon Aug 24 2020 14:52:29.501074 - - VK_KHR_external_memory_fd Mon Aug 24 2020 14:52:29.501081 - - VK_KHR_external_semaphore_fd Mon Aug 24 2020 14:52:29.501089 - - VK_EXT_global_priority Mon Aug 24 2020 14:52:29.501096 - Attempting to enable async support... Mon Aug 24 2020 14:52:29.501103 - Enabling async support! Mon Aug 24 2020 14:52:29.511162 - m_pVkInstance : 0x29ff1b0 Mon Aug 24 2020 14:52:29.511201 - m_pVkPhysicalDevice : 0x2baf930 Mon Aug 24 2020 14:52:29.511211 - m_pVkDevice : 0x2ba13c0 Mon Aug 24 2020 14:52:29.511219 - m_pVkGraphicsQueue : 0x28cb200 Mon Aug 24 2020 14:52:29.511227 - m_pVkComputeQueue : 0x2b676b0 Mon Aug 24 2020 14:52:29.515416 - HMD swapchain mode:1 count:4 Mon Aug 24 2020 14:52:29.530524 - Direct mode: disabled
Oh... this time the HMD did not show at all in the xrandr output. I just unplugged and re-plugged the DisplayPort connector, and now it works.
Could it be a bug or some sort of race-condition in the amdgpu connector hot-plug logic? Or in the HMD firmware?
I have observed that sometimes the LEDs on the headset will be red. If they are red, this problem manifests. If I unplug and replug the headset, typically the headset LEDs go blue. Then everything works (with a complete restart of steamvr and steam, breaking out pkill -9 if necessary).
I just got a brand new Valve Index and can reproduce this issue. Running Kubuntu 20.04 with the SteamVR and Mesa ppa's from Kisak enabled. No image in headset, Steam unwilling to actually turn on direct mode, and I can view whatever the display is supposed to see normally as a window on my desktop.
I guess for now I'll have to get a Windows installation from somewhere as my headset is unusable so far...
Hello @PureTryOut, do you have an Intel cpu + AMD gpu system? I've seen that behavior in the past if vrcompositor started up on the Intel GPU while the HMD is attached to the AMD GPU. As a test you can try sudo mv /usr/share/vulkan/icd.d/intel_icd.x86_64.json /usr/share/vulkan/icd.d/intel_icd.x86_64.json.disabled
which disables 64 bit vulkan on the Intel GPU. (from my legacy notes on https://launchpad.net/~kisak/+archive/ubuntu/steamvr)
No it's a Ryzen R7 1700 with a RX 580, no Intel components are present on this system.
It seems I can't even install Windows on this PC, missing drivers or something, idk. So I now have a useless €1000 headset :sob:
Is there anything I can do to help debug this further?
As mentioned, this is a full AMD system so Intel can't be an issue here. My system normally runs Alpine Linux on which Steam (sadly) doesn't run so I'm trying this in both a Debian chroot and on a Kubuntu 20.04 installation from an external hard disk (although that fact is irrelevant to this, I normally run it in Flatpak but that has different issues currently). Both methods cause the exact same behaviour: Steam realizes the headset is not in direct mode and offers to enable it, tries to restart SteamVR (which it often fails at and I have to manually launch it again, but not always) only to then realize again that the system is still not in direct mode. The image on the headset itself stays black all this time, I don't think it's even turned on. I can however move the headset around and see it move on the window on my normal monitors, so at least tracking is working normally.
Here is why the display shows as disconnected.
Option "AllowHMD" "string"
Most Virtual Reality Head Mounted Displays (HMDs), such as the HTC VIVE, require special image processing. This means it is usually undesirable to display the X11 desktop on an HMD. By default, the NVIDIA X driver will treat any detected HMDs as disconnected. To override this behavior, set the X configuration option "AllowHMD" to "yes", or explicitly list the HMDs to allow (any other HMDs will continue to be ignored).
Examples: Option "AllowHMD" "yes" Option "AllowHMD" "HDMI-0, HDMI-1"
In my case, steamVR chooses my main display instead of my valve Index.
Here is the log from ~/.steam/steam/logs/vrcompositor.txt .
Thu Oct 22 2020 22:24:53.138781 - HMD deviceUUID is dfd8168775644ebf
Thu Oct 22 2020 22:24:53.138838 - Looking for direct display through RandR
Thu Oct 22 2020 22:24:53.138857 - - Root 0x293
Thu Oct 22 2020 22:24:53.158667 - - Output 0x27d - 0 modes, 0 preferred
Thu Oct 22 2020 22:24:53.158754 - - Output 0x27e - 12 modes, 1 preferred
Thu Oct 22 2020 22:24:53.158772 - - Mode 0 0x27f 1600x900 (looking for 2880x1600)
Thu Oct 22 2020 22:24:53.158829 - - Output 0x28b - 0 modes, 0 preferred
Thu Oct 22 2020 22:24:53.158881 - - Output 0x28c - 0 modes, 0 preferred
Thu Oct 22 2020 22:24:53.158935 - - Output 0x28d - 0 modes, 0 preferred
Thu Oct 22 2020 22:24:53.158975 - - Output 0x28e - 0 modes, 0 preferred
Thu Oct 22 2020 22:24:53.158999 - Tried to find direct display through RandR: (nil)
Thu Oct 22 2020 22:24:53.159018 - Looking for direct display through Vulkan WSI
Thu Oct 22 2020 22:24:53.180064 - - Vulkan output 0: 1600x900 resolution, 440x250 dimensions - BenQ G2025HD (DVI-I-1)
Thu Oct 22 2020 22:24:53.180132 - Tried to find direct display through Vulkan WSI: (nil)
Thu Oct 22 2020 22:24:53.180154 - CHmdWindowSDL: Failed to create direct mode surface
The "AllowHMD" option is clearly meant to remove the HMD from xrandr. Even when enabled with nvidia-xconfig --allow-hmd=yes
, it shows as connected but has still no modes.
So, I expect that the HMD is supposed to be found through Vulkan WSI, but it is not.
Just to be sure, have you tried the "Restart headset" menu entry in SteamVR? Sometimes I'm seeing the same behavior you are describing here on Fedora 32 on my Index when starting SteamVR directly after powering the headset. The display stays off, but Motion tracking works, the Index led's on the front are red indicating an initialization error. When that happens I’m using the "Restart headset" menu entry and everything starts fine after that.
(Sorry if you have already tried this, which i guess you have, I just wanted to mention this to be sure)
Yes I have, nothing helps. Note that although the Index's display stays off, the image that's supposed to appear on there shows up on the desktop instead. And no that's not the view mirroring feature.
Yes I have, nothing helps. Note that although the Index's display stays off, the image that's supposed to appear on there shows up on the desktop instead. And no that's not the view mirroring feature.
Yeah I know which window you mean. I’m seeing that too once in a while next to the mirror. Though as stated, restarting the headset resolves it for me. Sorry that I couldn’t really contribute to your actual issue.
I've been messing around with VR more, and at least OpenXR in combination with the Monado runtime works fine. SteamVR Beta (so also an OpenXR implementation) however has the same bug as the OpenVR version.
Whatever it is, switching SteamVR from OpenVR to OpenXR doesn't fix it. Hopefully at some point Steam will support Monado as the official OpenXR runtime, at least on Linux.
I have also tried to "Reset Headset" without success. I also have the valve display off and a window on my main screen, showing what should be in the headset. The lights on the Index are blue.
Problem solved here. You can have more X logs with startx -- -logverbose 6
.
Then, check your logs (less /var/log/Xorg.0.log
).
Look for a line with "Building ModePool for \
In my case, I get
[ 27734.618] (II) NVIDIA(GPU-0): --- Building ModePool for Valve Corporation Index HMD (DFP-4)
[ 27734.618] (II) NVIDIA(GPU-0): ---
[ 27734.618] (**) NVIDIA(GPU-0): Mode Validation Overrides for Valve Corporation Index HMD
[ 27734.618] (**) NVIDIA(GPU-0): (DFP-4):
[ 27734.618] (**) NVIDIA(GPU-0): AllowNonEdidModes
[ 27734.618] (WW) NVIDIA(GPU-0): Validating Mode "2880x1600_90":
[ 27734.618] (WW) NVIDIA(GPU-0): Mode Source: EDID
[ 27734.618] (WW) NVIDIA(GPU-0): 2880 x 1600 @ 90 Hz
[ 27734.618] (WW) NVIDIA(GPU-0): Pixel Clock : 686.00 MHz
[ 27734.618] (WW) NVIDIA(GPU-0): HRes, HSyncStart : 2880, 2888
[ 27734.618] (WW) NVIDIA(GPU-0): HSyncEnd, HTotal : 2920, 2960
[ 27734.618] (WW) NVIDIA(GPU-0): VRes, VSyncStart : 1600, 2565
[ 27734.618] (WW) NVIDIA(GPU-0): VSyncEnd, VTotal : 2571, 2575
[ 27734.618] (WW) NVIDIA(GPU-0): Sync Polarity : -H -V
[ 27734.618] (WW) NVIDIA(GPU-0): ViewPort 2880x1600 exceeds hardware capabilities.
[ 27734.618] (WW) NVIDIA(GPU-0): Mode is rejected: GPU extended capability check failed.
[ 27734.618] (WW) NVIDIA(GPU-0): GPU extended capability check failed.
[ 27734.618] (WW) NVIDIA(GPU-0): Mode "2880x1600_90" is invalid.
[ 27734.618] (WW) NVIDIA(GPU-0):
...
The headset is actually detected, and the supported modes are detected as well, but my GPU does not support the high resolution. I have received the headset before my new GPU and I have been trying with my old GPU.
If xrandr
doesn't show any modes for your headset, check those logs as well to see why.
I doubt that is the issue for me (I can't check currently, will do tomorrow), as the same setup works fine for me on Windows (3x 1080p monitor and the Valve Index), literally just not on Linux. Also, you use NVIDIA while myself and the others here seem to use AMD, that might be a cause for the issue as well.
Can any Valve employee mention something here about the status of this bug? I've payed €1079 for this headset but it's a paper weight on Linux. Should I contact support directly to get some employees on this bug actively?
If the display works in monado this will be some sort of SteamVR issue. If you can create a SteamVR system report (SteamVR menu -> Create System Report), that could give a hint. (it will include ~/.local/share/Steam/logs/vrcompositor.txt where the most relevant output should be).
btw: The "Enable Direct Mode" button doesn't do anything on Linux. If the Vulkan direct mode extension can be successfully used, you get direct mode, if it fails, you get extended mode.
Same issue on arch with a nvidia GPU
EDIT: solved by moving the screen on the hdvi port and the vive on the hdmi and so far everything works fine
I'm still experiencing this issue, 3 months after buying this headset (Valve Index) I still can't use it to play games on Linux. I've tried regular SteamVR and the beta, but it makes no difference.
Valve, please have someone look into this. I payed a fortune for this device, and this way it's just a brick.
@kisak-valve
It seems I can't even install Windows on this PC, missing drivers or something, idk. So I now have a useless €1000 headset sob
Is there anything I can do to help debug this further?
As mentioned, this is a full AMD system so Intel can't be an issue here. My system normally runs Alpine Linux on which Steam (sadly) doesn't run so I'm trying this in both a Debian chroot and on a Kubuntu 20.04 installation from an external hard disk (although that fact is irrelevant to this, I normally run it in Flatpak but that has different issues currently). Both methods cause the exact same behaviour: Steam realizes the headset is not in direct mode and offers to enable it, tries to restart SteamVR (which it often fails at and I have to manually launch it again, but not always) only to then realize again that the system is still not in direct mode. The image on the headset itself stays black all this time, I don't think it's even turned on. I can however move the headset around and see it move on the window on my normal monitors, so at least tracking is working normally.
Are you using the X11 or Wayland version of KDE? And what is your uname -r
?
I noticed that X11 won't use my headset as an output unless I enable extended mode with a command that I was only able to find after someone linked it to me. Before I found this method in X11, however, I noticed that the Wayland compositor Sway would use my HMD as a normal display output no problem. Given that I frequently have game compatibility issues with Sway on Wayland, it might help to use an X11 window manager instead.
Also, make sure that your kernel is new enough to recognise the Valve Index as a VR headset. I would make sure you are on at least 4.19.50, as this is where the commit to "Add vendor/product pairs for the Valve Index HMDs, but in general, newer is probably better. I am on kernel 5.11.0-gentoo right now, and was on kernel 5.9.14-gentoo when I started using my HTC Vive.
I would also be cautious around USB 3.0. Neither of my USB 3.0 cards will work stably with my HTC Vive, but my on-board USB 2.0 works fine.
I would also suggest possibly trying LXDE for this instead of KDE, since LXDE is really stable and seems to always work with basically everything. Less chances of anything interfering on LXDE; it doesn't even have compositing! Plus, LXDE is what I use, so would pretty much rule out the window manager as being the issue since I already know it works on it.
Also, make sure your graphics drivers support Vulkan. Does vulkaninfo
work? If so, what is the output of vulkaninfo|grep driverInfo
? I use Mesa 21.0.0-rc3, and find this works well. The newest Git version, on the other hand, will cause the entire graphics stack to crash on the second launch after an error message. I should probably create an issue for that on Mesa's end, actually, but haven't gotten to it.
You don't have to switch DE entirely. I have a bunch of them installed and switch between them on log-in. LXDE should be fairly easy to install and uninstall as a test, because it has so few dependencies.
I never really liked it much either... but it's so stable and fast compared to everything else that I ended up spending more and more time in it until I was using it pretty much 100% of the time. It doesn't rely on QT so I can do the uninstalling and reinstalling of all QT packages needed to upgrade QT on Gentoo (really wish it didn't need to work this way, since I was using KDE at first but this kept pushing me to this "temporary" placeholder DE instead) while still having some GUI to web browse, and it is also X11 so a few games like Transport Fever that won't work in Sway work great in LXDE.
Regardless, though, which Mesa version do you use? That's what vulkaninfo | grep driverInfo
should output.
It doesn't look like my initial suspicions on what could be going wrong have been very fruitful. I will try looking at the logs to see if I see anything weird.
Here is my system report for comparison:
SteamVR-2021-02-19-AM_11_54_44.txt
So far, the main difference appears to be that yours says it is in extended mode, while mine says it is in direct mode. I didn't even know saying it was in extended mode was possible on Linux!
I think this might be best reported as a separate issue, because I think it is an unrelated issue to the one here, but with the same effect. I think the problem is, that SteamVR is detecting your HMD as being in extended mode for some reason, even though it is not. Do the logs say the same thing in Kubuntu? The chroot setup could be acting weirdly in terms of being able to directly access the display.
It's the exact same symptons, I don't see how my issue is different than OP's.
Yes Kubuntu has exact same behaviour and logs, it's not related to my chroot and/or Flatpak setup.
``` Fri Feb 19 2021 11:43:25.900039 - Events created Fri Feb 19 2021 11:43:25.901725 - Found bad mirror window settings: Fri Feb 19 2021 11:43:25.901757 - Creating CHmdWindowSDL! Fri Feb 19 2021 11:43:26.014380 - Instance layers available: Fri Feb 19 2021 11:43:26.014439 - - VK_LAYER_NV_optimus, version 4198519 Fri Feb 19 2021 11:43:26.014463 - - VK_LAYER_MANGOHUD_overlay, version 4202631 Fri Feb 19 2021 11:43:26.014486 - - VK_LAYER_MESA_device_select, version 4202569 Fri Feb 19 2021 11:43:26.014508 - - VK_LAYER_VALVE_steam_overlay_32, version 4202632 Fri Feb 19 2021 11:43:26.014530 - - VK_LAYER_VALVE_steam_overlay_64, version 4202632 Fri Feb 19 2021 11:43:26.014552 - - VK_LAYER_VALVE_steam_fossilize_32, version 4202632 Fri Feb 19 2021 11:43:26.014574 - - VK_LAYER_VALVE_steam_fossilize_64, version 4202632 Fri Feb 19 2021 11:43:26.014596 - - VK_LAYER_KHRONOS_validation, version 4202658 Fri Feb 19 2021 11:43:26.037295 - Instance extensions available: Fri Feb 19 2021 11:43:26.037357 - - VK_KHR_device_group_creation, version 1 Fri Feb 19 2021 11:43:26.037382 - - VK_KHR_display, version 21 Fri Feb 19 2021 11:43:26.037405 - - VK_KHR_external_fence_capabilities, version 1 Fri Feb 19 2021 11:43:26.037427 - - VK_KHR_external_memory_capabilities, version 1 Fri Feb 19 2021 11:43:26.037449 - - VK_KHR_external_semaphore_capabilities, version 1 Fri Feb 19 2021 11:43:26.037471 - - VK_KHR_get_display_properties2, version 1 Fri Feb 19 2021 11:43:26.037493 - - VK_KHR_get_physical_device_properties2, version 1 Fri Feb 19 2021 11:43:26.037515 - - VK_KHR_get_surface_capabilities2, version 1 Fri Feb 19 2021 11:43:26.037537 - - VK_KHR_surface, version 25 Fri Feb 19 2021 11:43:26.037559 - - VK_KHR_surface_protected_capabilities, version 1 Fri Feb 19 2021 11:43:26.037601 - - VK_KHR_xcb_surface, version 6 Fri Feb 19 2021 11:43:26.037625 - - VK_KHR_xlib_surface, version 6 Fri Feb 19 2021 11:43:26.037647 - - VK_EXT_acquire_xlib_display, version 1 Fri Feb 19 2021 11:43:26.037670 - - VK_EXT_debug_report, version 9 Fri Feb 19 2021 11:43:26.037692 - - VK_EXT_debug_utils, version 1 Fri Feb 19 2021 11:43:26.037715 - - VK_EXT_direct_mode_display, version 1 Fri Feb 19 2021 11:43:26.037738 - - VK_EXT_display_surface_counter, version 1 Fri Feb 19 2021 11:43:26.037760 - - VK_KHR_wayland_surface, version 6 Fri Feb 19 2021 11:43:26.037786 - Direct mode features: present Fri Feb 19 2021 11:43:26.037809 - Requesting 9 instance extensions: Fri Feb 19 2021 11:43:26.037832 - - VK_KHR_surface Fri Feb 19 2021 11:43:26.037854 - - VK_KHR_xcb_surface Fri Feb 19 2021 11:43:26.037877 - - VK_KHR_display Fri Feb 19 2021 11:43:26.037899 - - VK_EXT_direct_mode_display Fri Feb 19 2021 11:43:26.037922 - - VK_EXT_acquire_xlib_display Fri Feb 19 2021 11:43:26.037944 - - VK_EXT_display_surface_counter Fri Feb 19 2021 11:43:26.037972 - - VK_KHR_external_memory_capabilities Fri Feb 19 2021 11:43:26.037994 - - VK_KHR_external_semaphore_capabilities Fri Feb 19 2021 11:43:26.038017 - - VK_KHR_get_physical_device_properties2 Fri Feb 19 2021 11:43:26.059152 - HMD deviceUUID is 300000000 Fri Feb 19 2021 11:43:26.059221 - Looking for direct display through RandR Fri Feb 19 2021 11:43:26.059254 - - Root 0x6be Fri Feb 19 2021 11:43:26.061213 - - Output 0x55 - 12 modes, 1 preferred Fri Feb 19 2021 11:43:26.061244 - - Mode 0 0x5a 1280x1024 (looking for 2160x1200) Fri Feb 19 2021 11:43:26.061291 - - Output 0x56 - 12 modes, 1 preferred Fri Feb 19 2021 11:43:26.061318 - - Mode 0 0x5a 1280x1024 (looking for 2160x1200) Fri Feb 19 2021 11:43:26.061399 - - Output 0x57 - 0 modes, 0 preferred Fri Feb 19 2021 11:43:26.061445 - - Output 0x58 - 15 modes, 1 preferred Fri Feb 19 2021 11:43:26.061472 - - Mode 0 0x66 2160x1200 (looking for 2160x1200) Fri Feb 19 2021 11:43:26.061495 - - Found matching output 88 Fri Feb 19 2021 11:43:26.061524 - Found candidate direct display as RandR output 0x58 Fri Feb 19 2021 11:43:26.064742 - Tried to find direct display through RandR: 0x5575b3c07440 Fri Feb 19 2021 11:43:26.064776 - Trying to match desired rate of 90.000000Hz. Fri Feb 19 2021 11:43:26.064801 - 15 modes on display: Fri Feb 19 2021 11:43:26.064826 - - 0: 2160x1200@89.527008Hz Fri Feb 19 2021 11:43:26.064852 - - 1: 1920x1200@89.527008Hz Fri Feb 19 2021 11:43:26.064876 - - 2: 1920x1080@89.527008Hz Fri Feb 19 2021 11:43:26.064900 - - 3: 1600x1200@89.527008Hz Fri Feb 19 2021 11:43:26.064924 - - 4: 1680x1050@89.527008Hz Fri Feb 19 2021 11:43:26.064961 - - 5: 1280x1024@89.527008Hz Fri Feb 19 2021 11:43:26.064996 - - 6: 1440x900@89.527008Hz Fri Feb 19 2021 11:43:26.065024 - - 7: 1280x800@89.527008Hz Fri Feb 19 2021 11:43:26.065048 - - 8: 1280x720@89.527008Hz Fri Feb 19 2021 11:43:26.065073 - - 9: 1024x768@89.527008Hz Fri Feb 19 2021 11:43:26.065097 - - 10: 800x600@89.527008Hz Fri Feb 19 2021 11:43:26.065121 - - 11: 720x480@60.000004Hz Fri Feb 19 2021 11:43:26.065145 - - 12: 720x480@59.940002Hz Fri Feb 19 2021 11:43:26.065169 - - 13: 640x480@60.000004Hz Fri Feb 19 2021 11:43:26.065193 - - 14: 640x480@59.940002Hz Fri Feb 19 2021 11:43:26.065216 - Selected mode 0. Fri Feb 19 2021 11:43:26.070413 - Direct mode surface: 0x5575b3959100 Fri Feb 19 2021 11:43:26.070885 - Requesting 10 device extensions: Fri Feb 19 2021 11:43:26.070918 - - VK_KHR_swapchain Fri Feb 19 2021 11:43:26.070942 - - VK_KHR_maintenance1 Fri Feb 19 2021 11:43:26.070988 - - VK_KHR_dedicated_allocation Fri Feb 19 2021 11:43:26.071018 - - VK_KHR_get_memory_requirements2 Fri Feb 19 2021 11:43:26.071045 - - VK_KHR_external_memory Fri Feb 19 2021 11:43:26.071073 - - VK_KHR_external_semaphore Fri Feb 19 2021 11:43:26.071098 - - VK_EXT_display_control Fri Feb 19 2021 11:43:26.071121 - - VK_KHR_external_memory_fd Fri Feb 19 2021 11:43:26.071143 - - VK_KHR_external_semaphore_fd Fri Feb 19 2021 11:43:26.071184 - - VK_EXT_global_priority Fri Feb 19 2021 11:43:26.071207 - Attempting to enable async support... Fri Feb 19 2021 11:43:26.071230 - Enabling async support! Fri Feb 19 2021 11:43:26.083336 - m_pVkInstance : 0x5575b3be24d0 Fri Feb 19 2021 11:43:26.083387 - m_pVkPhysicalDevice : 0x5575b3932d00 Fri Feb 19 2021 11:43:26.083412 - m_pVkDevice : 0x5575b3c36830 Fri Feb 19 2021 11:43:26.083435 - m_pVkGraphicsQueue : 0x5575b3961df0 Fri Feb 19 2021 11:43:26.083457 - m_pVkComputeQueue : 0x5575b3957bc0 Fri Feb 19 2021 11:43:26.083485 - HMD swapchain mode:2 count:3 Fri Feb 19 2021 11:43:26.083765 - Direct mode: enabled Fri Feb 19 2021 11:43:26.084780 - Mirror swapchain mode:0 count:4 Fri Feb 19 2021 11:43:26.150782 - CGraphicsDevice Init... Fri Feb 19 2021 11:43:26.151540 - Headset is using direct mode Fri Feb 19 2021 11:43:26.151576 - Initializing timing resources Fri Feb 19 2021 11:43:26.151779 - Initializing CVulkanVRRenderer Fri Feb 19 2021 11:43:26.151823 - Debug markers: disabled, missing extension support. Is the Renderdoc layer enabled? Fri Feb 19 2021 11:43:26.479477 - Initialized Vulkan transfer ring buffer, mapped at offset 0x0x7f42f0000000. Fri Feb 19 2021 11:43:26.480263 - Updated HMD Prop_DisplayFrequency_Float to 90.000000 ```
``` Mon Nov 02 2020 15:40:17.081399 - Events created Mon Nov 02 2020 15:40:17.082165 - Creating CHmdWindowSDL! Mon Nov 02 2020 15:40:17.176425 - Instance layers available: Mon Nov 02 2020 15:40:17.176479 - - VK_LAYER_VALVE_steam_fossilize_64, version 4202632 Mon Nov 02 2020 15:40:17.176496 - - VK_LAYER_VALVE_steam_overlay_64, version 4202632 Mon Nov 02 2020 15:40:17.176510 - - VK_LAYER_VALVE_steam_overlay_32, version 4202632 Mon Nov 02 2020 15:40:17.176523 - - VK_LAYER_VALVE_steam_fossilize_32, version 4202632 Mon Nov 02 2020 15:40:17.176535 - - VK_LAYER_LUNARG_standard_validation, version 4194401 Mon Nov 02 2020 15:40:17.181076 - Instance extensions available: Mon Nov 02 2020 15:40:17.181129 - - VK_KHR_device_group_creation, version 1 Mon Nov 02 2020 15:40:17.181145 - - VK_KHR_external_fence_capabilities, version 1 Mon Nov 02 2020 15:40:17.181158 - - VK_KHR_external_memory_capabilities, version 1 Mon Nov 02 2020 15:40:17.181171 - - VK_KHR_external_semaphore_capabilities, version 1 Mon Nov 02 2020 15:40:17.181183 - - VK_KHR_get_display_properties2, version 1 Mon Nov 02 2020 15:40:17.181195 - - VK_KHR_get_physical_device_properties2, version 1 Mon Nov 02 2020 15:40:17.181207 - - VK_KHR_get_surface_capabilities2, version 1 Mon Nov 02 2020 15:40:17.181219 - - VK_KHR_surface, version 25 Mon Nov 02 2020 15:40:17.181231 - - VK_KHR_wayland_surface, version 6 Mon Nov 02 2020 15:40:17.181243 - - VK_KHR_xcb_surface, version 6 Mon Nov 02 2020 15:40:17.181262 - - VK_KHR_xlib_surface, version 6 Mon Nov 02 2020 15:40:17.181280 - - VK_KHR_display, version 23 Mon Nov 02 2020 15:40:17.181301 - - VK_EXT_acquire_xlib_display, version 1 Mon Nov 02 2020 15:40:17.181319 - - VK_EXT_debug_report, version 8 Mon Nov 02 2020 15:40:17.181336 - - VK_EXT_direct_mode_display, version 1 Mon Nov 02 2020 15:40:17.181349 - - VK_EXT_display_surface_counter, version 1 Mon Nov 02 2020 15:40:17.181361 - - VK_EXT_debug_utils, version 1 Mon Nov 02 2020 15:40:17.181375 - Direct mode features: present Mon Nov 02 2020 15:40:17.181387 - Requesting 9 instance extensions: Mon Nov 02 2020 15:40:17.181399 - - VK_KHR_surface Mon Nov 02 2020 15:40:17.181410 - - VK_KHR_xcb_surface Mon Nov 02 2020 15:40:17.181431 - - VK_KHR_display Mon Nov 02 2020 15:40:17.181442 - - VK_EXT_direct_mode_display Mon Nov 02 2020 15:40:17.181454 - - VK_EXT_acquire_xlib_display Mon Nov 02 2020 15:40:17.181466 - - VK_EXT_display_surface_counter Mon Nov 02 2020 15:40:17.181477 - - VK_KHR_external_memory_capabilities Mon Nov 02 2020 15:40:17.181488 - - VK_KHR_external_semaphore_capabilities Mon Nov 02 2020 15:40:17.181500 - - VK_KHR_get_physical_device_properties2 Mon Nov 02 2020 15:40:17.185365 - HMD deviceUUID is c00000000 Mon Nov 02 2020 15:40:17.185403 - Looking for direct display through RandR Mon Nov 02 2020 15:40:17.185420 - - Root 0x4f7 Mon Nov 02 2020 15:40:17.349650 - - Output 0x55 - 1 modes, 0 preferred Mon Nov 02 2020 15:40:17.349741 - - Output 0x56 - 41 modes, 1 preferred Mon Nov 02 2020 15:40:17.349765 - - Mode 0 0x5c 1920x1080 (looking for 2880x1600) Mon Nov 02 2020 15:40:17.349804 - - Output 0x57 - 43 modes, 1 preferred Mon Nov 02 2020 15:40:17.349825 - - Mode 0 0x5e 1920x1080 (looking for 2880x1600) Mon Nov 02 2020 15:40:17.349861 - - Output 0x58 - 36 modes, 1 preferred Mon Nov 02 2020 15:40:17.349880 - - Mode 0 0x5e 1920x1080 (looking for 2880x1600) Mon Nov 02 2020 15:40:17.349915 - - Output 0x59 - 0 modes, 0 preferred Mon Nov 02 2020 15:40:17.349937 - Tried to find direct display through RandR: (nil) Mon Nov 02 2020 15:40:17.349951 - Looking for direct display through Vulkan WSI Mon Nov 02 2020 15:40:17.668491 - - Vulkan output 0: 2880x1600 resolution, 762x423 dimensions - monitor Mon Nov 02 2020 15:40:17.668602 - - Vulkan output 1: 1920x1080 resolution, 508x286 dimensions - monitor Mon Nov 02 2020 15:40:17.668636 - - Vulkan output 2: 1920x1080 resolution, 508x286 dimensions - monitor Mon Nov 02 2020 15:40:17.668664 - - Vulkan output 3: 1920x1080 resolution, 508x286 dimensions - monitor Mon Nov 02 2020 15:40:17.668691 - Tried to find direct display through Vulkan WSI: 0x1d4f2c0 Mon Nov 02 2020 15:40:17.668718 - Trying to match desired rate of 90.000000Hz. Mon Nov 02 2020 15:40:17.668748 - 1 modes on display: Mon Nov 02 2020 15:40:17.668772 - - 0: 2880x1600@144.000000Hz Mon Nov 02 2020 15:40:17.668799 - Selected mode 0. Mon Nov 02 2020 15:40:17.668831 - Failed to acquire xlib display Mon Nov 02 2020 15:40:17.668856 - CHmdWindowSDL: Failed to create direct mode surface Mon Nov 02 2020 15:40:17.669231 - Requesting 10 device extensions: Mon Nov 02 2020 15:40:17.669261 - - VK_KHR_swapchain Mon Nov 02 2020 15:40:17.669285 - - VK_KHR_maintenance1 Mon Nov 02 2020 15:40:17.669308 - - VK_KHR_dedicated_allocation Mon Nov 02 2020 15:40:17.669331 - - VK_KHR_get_memory_requirements2 Mon Nov 02 2020 15:40:17.669354 - - VK_KHR_external_memory Mon Nov 02 2020 15:40:17.669377 - - VK_KHR_external_semaphore Mon Nov 02 2020 15:40:17.669400 - - VK_EXT_display_control Mon Nov 02 2020 15:40:17.669423 - - VK_KHR_external_memory_fd Mon Nov 02 2020 15:40:17.669446 - - VK_KHR_external_semaphore_fd Mon Nov 02 2020 15:40:17.669469 - - VK_EXT_global_priority Mon Nov 02 2020 15:40:17.669492 - Attempting to enable async support... Mon Nov 02 2020 15:40:17.669515 - Enabling async support! Mon Nov 02 2020 15:40:17.677945 - m_pVkInstance : 0x1d217c0 Mon Nov 02 2020 15:40:17.677977 - m_pVkPhysicalDevice : 0x21ecfd0 Mon Nov 02 2020 15:40:17.677990 - m_pVkDevice : 0x1d487a0 Mon Nov 02 2020 15:40:17.678001 - m_pVkGraphicsQueue : 0x1d4a7e0 Mon Nov 02 2020 15:40:17.678011 - m_pVkComputeQueue : 0x227b230 Mon Nov 02 2020 15:40:17.686317 - HMD swapchain mode:1 count:3 Mon Nov 02 2020 15:40:17.687098 - Direct mode: disabled Mon Nov 02 2020 15:40:17.690222 - Mirror swapchain mode:0 count:3 Mon Nov 02 2020 15:40:17.698012 - CGraphicsDevice Init... Mon Nov 02 2020 15:40:17.698160 - Headset display is on desktop Mon Nov 02 2020 15:40:17.698201 - Initializing timing resources Mon Nov 02 2020 15:40:17.698440 - Initializing CVulkanVRRenderer Mon Nov 02 2020 15:40:17.698512 - Debug markers: disabled, missing extension support. Is the Renderdoc layer enabled? Mon Nov 02 2020 15:40:17.736121 - Initialized Vulkan transfer ring buffer, mapped at offset 0x0x7f07a8000000. Mon Nov 02 2020 15:40:17.736670 - Updated HMD Prop_DisplayFrequency_Float to 90.000000 ```
Firstly, it seems like your Xrandr is not detecting the display, unlike mine. I would update libXrandr to the latest version, if it isn't already.
Secondly, it looks like it is failing to use Xlib to acquire the display. I would update libX11 (that appears to be the name of the package that provides Xlib.h on Gentoo) to the latest version as well, to make sure it has anything SteamVR might be relying on.
Since the function this fails in is CHmdWindowSDL, it might also help to update any SDL packages that might be related, or install them if you don't have them already. But, I think this is less likely than an issue with libXrandr or Xlib.
You could also, again, try a different WM. Kwin could be locking up the display somehow. I might change into KDE myself in a few minutes to see if that might be an issue.
Note that I'm on a rolling release distribution, I already have all the latest packages of everything.
Very strange. I just checked in KDE too, and it works perfectly, maybe even a bit better than LXDE. I believe the following is my log from that:
What is the output of xrandr
for you? Maybe it's the order of the ports or something, or maybe everything is up-to-date, but you don't have some useful component installed (like Xrandr).
I've also got a brand new Index that I specifically bought because of Linux support and am experiencing the same issues.
Something I've noticed in the logs is that SteamVR only seems to look for modes marked as +preferred.
@happysmash27's Vive has a preferred mode but @PureTryOut's and my Index don't. The only mode available is 2880x1600 144Hz and it's not marked as preferred.
Smells like a firmware bug.
I am currently looking for a way to set the mode as preferred.
Yup, that's it.
Put
Section "Monitor"
Identifier "DisplayPort-1"
Option "PreferredMode" "2880x1600"
EndSection
in your xorg.conf. (services.xserver.extraConfig
if you use NixOS).
Obviously replace the DisplayPort-1
with the connector the Index is on in your setup (xrandr
).
The Index' mode either needs to be recognised as "Preferred" (not sure whether that's set in EDID or set by Linux) and/or SteamVR needs to look for non-preferred modes too.
Valve, pls fix ;)
One problem with this workaround is that SteamVR tries to run the Index at 90Hz eventhough the output is 144Hz (The Index reports no other output modes weirdly). I can't coerce it into using something different either.
This results in a blending effect which isn't really usable. I'm surprised it works at all though.
Holy shit, you're right! Today for the first time I saw SteamVR home on Linux :tada:
Same problems as you though, headset only reports 90Hz as supported mode according to SteamVR and although I wouldn't say it's unusable, it's really weird and distracting.
Also, I seem to have no audio configuration option within SteamVR, so I'm guessing the speakers are so-far unused?
Figured out how to work around that issue aswell: You need to add the lower refresh rates too.
I simply put them through cvt; put this in the Monitor section too:
Modeline "2880x1600_120.00" 827.00 2880 3128 3448 4016 1600 1603 1613 1717 -hsync +vsync
Modeline "2880x1600_100.00" 678.50 2880 3128 3440 4000 1600 1603 1613 1697 -hsync +vsync
Modeline "2880x1600_90.00" 607.00 2880 3128 3440 4000 1600 1603 1613 1687 -hsync +vsync
Audio does work but it won't switch it for you automatically. See KNOWN ISSUES.
I'm also not sure if the DSP special sauce works because I feel like songs in Beat Saber sounded different (worse) to how they did on Windows. I'd have to boot the VM and compare though.
You'll also quickly discover that base station power management doesn't work either. I made do with https://github.com/jeroen1602/lighthouse_pm (Android) but I heard good things about https://github.com/DavidRisch/steamvr_utils.
Cameras also don't work yet: https://github.com/ValveSoftware/SteamVR-for-Linux/issues/231 (don't bother reading the comments)
Since you've got the Index running now, are you able to reproduce https://github.com/ValveSoftware/SteamVR-for-Linux/issues/415 or am I just imagining things?
Oddly, I've only started experiencing this issue in the past couple of weeks or so, but I have found that I don't have this problem if the index is plugged in at system boot. Also, as far as audio (I think this is specific to Ubuntu 20.04), I've found that, If I open SteamVR, set the audio out device to the headset, close steamvr and restart, audio works as desired. I suspect the culprit of audio issues to either be pulseaudio or alsa, because I've had issues with audio devices in Ubuntu 20.04 in general outside of SteamVR.
I don't have this problem if the index is plugged in at system boot
Mine is plugged in at boot aswell.
I've got mine in a 3.1 port though because its controller is in a separate iommu group which makes passthrough to the VM simpler. Maybe that makes a difference? Shouldn't though.
If I open SteamVR, set the audio out device to the headset, close steamvr and restart, audio works as desired.
Well yeah, setting the audio device manually obviously works around the problem of SteamVR not switching it automatically.
Alternative work-around instead of re-plugging or rebooting: Standby.
I've been having this issue from the beginning (March 2020) as well but figured out quickly that this mostly happens after my computer has run for some time but not after when freshly booted or resumed from stand-by — with the Index permanently plugged in, that is.
For me this is reminiscent of the missing GPU function level reset issues I had with VFIO passthrough in the past where one could trigger a GPU reset by going to stand-by and resuming. I have no idea if this is somehow related though and it also does not work every time.
My system consists of AMD a Ryzen 7 3700X and a Vega 56 using AMDGPU and X11 on Arch Linux.
Describe the bug
SteamVR has stopped working since the latest beta update.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
SteamVR to be happily working as it was yesterday :smile:
System Information (please complete the following information):
Screenshots
There is a Headset Notice:
Clicking this button does not appear to have an effect. Subsequently clicking "Restart headset" causes the whole machine to hang.