SteamVR-for-Linux
SteamVR-for-Linux copied to clipboard
[BUG] SteamVR is not able to detect Valve Index's screen
Describe the bug When opening SteamVR, the vrcompistor is not able to detect the Valve Index's screen(as indicated by the logs?):
Sun May 01 2022 17:18:40.085467 - Direct mode features: present
Sun May 01 2022 17:18:40.085476 - Requesting 9 instance extensions:
Sun May 01 2022 17:18:40.085485 - - VK_KHR_surface
Sun May 01 2022 17:18:40.085494 - - VK_KHR_xcb_surface
Sun May 01 2022 17:18:40.085503 - - VK_KHR_display
Sun May 01 2022 17:18:40.085512 - - VK_EXT_direct_mode_display
Sun May 01 2022 17:18:40.085522 - - VK_EXT_acquire_xlib_display
Sun May 01 2022 17:18:40.085531 - - VK_EXT_display_surface_counter
Sun May 01 2022 17:18:40.085540 - - VK_KHR_external_memory_capabilities
Sun May 01 2022 17:18:40.085549 - - VK_KHR_external_semaphore_capabilities
Sun May 01 2022 17:18:40.085559 - - VK_KHR_get_physical_device_properties2
Sun May 01 2022 17:18:40.090184 - HMD deviceUUID is c01b372dfd22a806
Sun May 01 2022 17:18:40.090218 - Looking for direct display through RandR
Sun May 01 2022 17:18:40.090231 - - Root 0x1e3
Sun May 01 2022 17:18:40.139526 - - Output 0x1bc - 0 modes, 0 preferred
Sun May 01 2022 17:18:40.139585 - - Output 0x1bd - 0 modes, 0 preferred
Sun May 01 2022 17:18:40.139608 - - Output 0x1be - 0 modes, 0 preferred
Sun May 01 2022 17:18:40.139628 - - Output 0x1bf - 0 modes, 0 preferred
Sun May 01 2022 17:18:40.140086 - - Output 0x1c0 - 25 modes, 1 preferred
Sun May 01 2022 17:18:40.140099 - - Mode 0 0x1c1 1920x1080 (looking for 2880x1600)
Sun May 01 2022 17:18:40.140118 - - Output 0x1da - 22 modes, 1 preferred
Sun May 01 2022 17:18:40.140127 - - Mode 0 0x1c1 1920x1080 (looking for 2880x1600)
Sun May 01 2022 17:18:40.140144 - - Output 0x1de - 0 modes, 0 preferred
Sun May 01 2022 17:18:40.140153 - Tried to find direct display through RandR: (nil)
Sun May 01 2022 17:18:40.140160 - Looking for direct display through Vulkan WSI
Sun May 01 2022 17:18:40.191637 - - Vulkan output 0: 1920x1080 resolution, 530x300 dimensions - Lenovo Group Limited LEN L24e-20 (HDMI-0)
Sun May 01 2022 17:18:40.191675 - - Vulkan output 1: 1920x1080 resolution, 600x340 dimensions - Samsung S27R65x (DP-4)
Sun May 01 2022 17:18:40.191683 - Tried to find direct display through Vulkan WSI: (nil)
Sun May 01 2022 17:18:40.191690 - CHmdWindowSDL: Failed to create direct mode surface
To Reproduce Steps to reproduce the behavior:
- Open SteamVR application.
Expected behavior The VRCompistor should be opened on the Valve Index's display but instead it gets opened on my monitors.
System Information (please complete the following information):
- Distribution: Arch [KDE 5.24.4]
- SteamVR version: 1.22.9 Beta
- Steam client version: Apr 27 2022
- Opted into Steam client beta?: Yes
- Graphics driver version: 510.60.02
- Gist for SteamVR System Information: https://gist.github.com/Gusted/f7fa206811ccc9a774de36696a57c4e0
Screenshots
Additional context Valve Index itself seems fine, but for some absurd reason it doesn't seem to be able to detect it's screen anymore
Hello @Gusted, your system information hints that you're using an Optimus laptop. It might be interesting to test how SteamVR behaves with the system configured to run an X-based session with X running on the NVIDIA gpu. I suspect you're seeing a similar issue to https://github.com/ValveSoftware/SteamVR-for-Linux/issues/334#issuecomment-1001094269.
Hi @kisak-valve, thanks for your reply.
Hello @Gusted, your system information hints that you're using an Optimus laptop.
Oh that's interesting, I had a quick look at my PC case and I'm pretty sure that isn't a laptop. Could that be the cause? That Steam/Linux/Nvidia is thinking I'm running a Optimus laptop 😄? I did recently had to manually edit my xorg.conf because of some corrupted data in that file, could it be related to that?
Hello @Gusted, your system information hints that you're using an Optimus laptop. It might be interesting to test how SteamVR behaves with the system configured to run an X-based session with X running on the NVIDIA gpu. I suspect you're seeing a similar issue to #334 (comment).
Hey @kisak-valve what about running an Wayland session?
I did recently had to manually edit my xorg.conf because of some corrupted data in that file, could it be related to that?
I configured my Xorg config to the skeleton file and didn't resolve the bug.
I'd played some more around with the Index HMD, figuring out to see if I would be able to let Nvidia use the Index's display as "another monitor" would maybe help. However Nvidia doesn't seem to be able to enable the screen(it does get detected) and while figuring around with xrandr
it doesn't show any parsed EDID data. Which then lead me to a surprise that the edid-data(dumped via nvidia-settings
) cannot be parsed:
-> % parse-edid < edid.bin
Checksum Correct
Section "Monitor"
Identifier "Index HMD"
ModelName "Index HMD"
VendorName "VLV"
# Monitor Model Year: 2018
# EDID version 1.3
# Digital Display
# Display Physical Size not given. Normal for projectors.
Gamma 2.20
Option "DPMS" "false"
#Extension block found. Parsing...
I only know about extension blocks of type 02h. PLEASE email me!
Something strange happened. Please contact the author,
Matthew Kern at <[email protected]>
I'm not sure which kind of library nvidia/xrandr uses to parse the edid, but it seems like it could be related due to it. While trying to play around with the edid data, I'd tried another tool parse it and edid-decode
seems to be able to parse it, it stills warns that the checksum is incomplete due to unused space in the extension block(likely, as it cannot parse it either).
-> % edid-decode < edid.bin
edid-decode (hex):
00 ff ff ff ff ff ff 00 59 96 a8 91 a5 e6 03 2d
ff 1c 01 03 80 00 00 78 0a 48 97 a1 5b 54 a0 26
13 4a 50 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 00 00 00 10 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 fc 00 49 6e 64
65 78 20 48 4d 44 0a 20 20 20 00 00 00 10 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 c8
70 12 5a 00 00 03 01 50 f7 0b 01 80 3f 0b 4f 00
07 00 1f 00 3f 06 ce 03 c4 03 05 00 f7 0b 01 00
3f 0b 4f 00 07 00 1f 00 3f 06 10 05 06 05 05 00
f7 0b 01 00 3f 0b 4f 00 07 00 1f 00 3f 06 4a 01
40 01 05 00 65 0c 01 00 3f 0b 4f 00 07 00 1f 00
3f 06 0b 00 02 00 05 00 81 03 04 23 09 04 01 17
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90
----------------
Block 0, Base EDID:
EDID Structure Version & Revision: 1.3
Vendor & Product Identification:
Manufacturer: VLV
Model: 37288
Serial Number: 755230373
Model year: 2018
Basic Display Parameters & Features:
Digital display
Image size is variable
Gamma: 2.20
RGB color display
First detailed timing is the preferred timing
Color Characteristics:
Red : 0.6298, 0.3554
Green: 0.3300, 0.6250
Blue : 0.1503, 0.0751
White: 0.2900, 0.3154
Established Timings I & II: none
Standard Timings: none
Detailed Timing Descriptors:
Dummy Descriptor:
Display Product Name: 'Index HMD'
Dummy Descriptor:
Dummy Descriptor:
Extension blocks: 1
Checksum: 0xc8
----------------
Block 1, DisplayID Extension Block:
Version: 1.2
Extension Count: 0
Display Product Type: Extension Section
Video Timing Modes Type 1 - Detailed Timings Data Block:
DTD: 2880x1600 90.002624 Hz 1:1 231.757 kHz 686.000000 MHz (aspect 1:1, no 3D stereo, preferred)
Hfront 8 Hsync 32 Hback 40 Hpol N
Vfront 965 Vsync 6 Vback 4 Vpol N
DTD: 2880x1600 79.998880 Hz 1:1 231.757 kHz 686.000000 MHz (aspect 1:1, no 3D stereo)
Hfront 8 Hsync 32 Hback 40 Hpol N
Vfront 1287 Vsync 6 Vback 4 Vpol N
DTD: 2880x1600 120.019035 Hz 1:1 231.757 kHz 686.000000 MHz (aspect 1:1, no 3D stereo)
Hfront 8 Hsync 32 Hback 40 Hpol N
Vfront 321 Vsync 6 Vback 4 Vpol N
DTD: 2880x1600 144.000235 Hz 1:1 232.128 kHz 687.100000 MHz (aspect 1:1, no 3D stereo)
Hfront 8 Hsync 32 Hback 40 Hpol N
Vfront 3 Vsync 6 Vback 3 Vpol N
CTA-861 DisplayID Data Block:
Audio Data Block:
Linear PCM:
Max channels: 2
Supported sample rates (kHz): 48
Supported sample sizes (bits): 16
Checksum: 0x17
Checksum: 0x90 Unused space in Extension Block: 31 bytes
It seems like that recently the Index is sending corrupt edid data? Which then causes this issue.
As of a few days ago I started having a lot of trouble getting SteamVR to work and I'm not sure why. It's often not seeing the headset display at all, and when the headset display does turn on, it often crashes.
Here's the output from the crash that occurred a bit ago, as well as some dumps as I saw some were created during this process. steamvr-crash-output.txt Archive.zip
I am using Plasma on Wayland in Arch Linux, using Mesa with an RX 5700 XT. It was working very well not that long ago...
I reverted to the SteamVR non-beta and it seems to work better now? I launched it a few times without fail since then. I'll report back here if there's more problems. (Report created after I switched away from Beta.) yaomtc-steamvr-system-report.txt
i'm having the same issue on Gnome with Wayland. It seems like it can't find the display as it only detects my two monitors. Disabling Wayland fixes the issue.
SteamVR Version: 1.25.8 (1683151457) SteamVR Date: 2023-05-04 Steam: Public Steam Branch: Steam AppID: 250820 Tracking: lighthouse OS: Linux version 6.3.3-arch1-1 (linux@archlinux) (gcc (GCC) 13.1.1 20230429, GNU ld (GNU Binutils) 2.40.0) #1 SMP PREEMPT_DYNAMIC Sun, 21 May 2023 16:15:22 +0000
RX 7900 XTX GPU