CertainLach / VivePro2-Linux-Driver

SteamVR driver for VivePro2 on Linux
GNU General Public License v2.0
64 stars 8 forks source link

No vision on HMD #15

Closed johnsmitth closed 1 year ago

johnsmitth commented 1 year ago

SteamVR sees all the peripheralls. Tracking all seems to work. However "vrcompositor" starts on my desktop and I get no vision to the VivePro2 HMD (LED on the side remains red, showing the display is off).

SteamVR repeatedly throws an error message "SteamVR has detected your headset running as a monitor. For best results, please switch to Direct Display Mode." however clicking "Enable Direct Display Mode" seems to do nothing.

steamvr.vrsettings lists the device:

"LastKnown" : { "HMDManufacturer" : "HTC", "HMDModel" : "VIVE_Pro 2 MV" }

but nothing else about the device's brightness or resolution settings.

Ostensibly the issue appears to be identical to https://github.com/CertainLach/VivePro2-Linux-Driver/issues/14 posted by PARKBONG, however I've restarted the machine multiple times, and when I dual boot into Windows10 everything works fine, so its not a "cable issue"

Tried reinstalling the repo, tried deleting the SteamVR USB drivers and starting over (an issue I'd previously encountered on Windows). Nothing seems to work.

System: Arch Linux + Gnome43.2 Ryzen 3700X + GTX1080

Let me know if there are any diagnostic tests you want me to perform. I can even shred the drive and reinstall Arch if you want. Its a pain, but not as much of a pain as having to boot into Windows just to do VR stuff...

CertainLach commented 1 year ago

Have you installed the kernel patches?

johnsmitth commented 1 year ago

I'm assuming so. I ran the nix command as per the installation instructions in the README.md:

# Note: the #driver-proxy-release part of this command is not a comment, it's just github syntax highlighter is wrong
nix build --extra-experimental-features nix-command --extra-experimental-features flakes .#driver-proxy-release

As I said, the tracking and everything is working correctly. Just no vision on the HMD.

CertainLach commented 1 year ago

This is not enough, you should also patch your kernel: https://github.com/CertainLach/VivePro2-Linux-Driver#required-kernel-patches

There is build script for building patched kernel for archlinux using docker: https://github.com/CertainLach/VivePro2-Linux-Driver/blob/master/kernel-patches/build-archlinux.sh

johnsmitth commented 1 year ago

Ah, ok. Had to run the script in result/install.sh

The instructions in the README.md give the impression that the ./install.sh command is specific to the precompiled patreon download. It's not immediately clear from the instructions that it also applies to the git repo verson, or where the install script is located.

Kindof working now, although now I'm encountering a new problem. Two steps forward, one step back. But I'll open a new issue for it.

johnsmitth commented 1 year ago

FYI, the docker build script fails. I'm getting some vision to the HMD though so I guess something worked.

Hunk #1 succeeded at 6289 (offset 12 lines).
Hunk #2 succeeded at 6312 (offset 12 lines).
Hunk #3 FAILED at 6376.
1 out of 3 hunks FAILED -- saving rejects to file drivers/gpu/drm/drm_edid.c.rej
patching file include/drm/drm_connector.h
Hunk #1 FAILED at 656.
1 out of 1 hunk FAILED -- saving rejects to file include/drm/drm_connector.h.rej
patching file include/drm/drm_displayid.h
==> ERROR: A failure occurred in prepare().
    Aborting...
The command '/bin/sh -c cd kernel && makepkg --holdver' returned a non-zero code: 4
Unable to find image 'proxy-driver-archlinux-kernel:latest' locally

docker: Error response from daemon: pull access denied for proxy-driver-archlinux-kernel, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.
Unable to find image 'proxy-driver-archlinux-kernel:latest' locally
docker: Error response from daemon: pull access denied for proxy-driver-archlinux-kernel, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.
CertainLach commented 1 year ago

Well, some patches needs to be updated

CertainLach commented 1 year ago

Most critical patch was merged in 5.18, but one is still required to use max resolution:

Support fixed DSC BPP rate https://lore.kernel.org/linux-kernel/20220220151940.58327-1-iam@lach.pw/, https://lore.kernel.org/linux-kernel/20220220151940.58327-2-iam@lach.pw/ - not yet merged, currently planning to propose it to 5.19, without this patch highest resolution modes will not work

johnsmitth commented 1 year ago

This might be what is causing my new issue then. I've tried changing the steamvr.vrsettings file. The only resolution I get vision from is #0 and its scrambled (almost like its rendering half the left image to the right eye, and vice-versa) and there are rainbow coloured bars down the right side in both eyes. The vision in the Steams desktop Display VR View is correct though.

1 #2 #3 is no vision to the HMD

4 and #5 opens the vrcompositor on the desktop like previously.

I'm assuming your precompiled patreon version works out of the box? I might just try that one.

CertainLach commented 1 year ago

Patreon version is exactly the same as built using nix

johnsmitth commented 1 year ago

So it doesn't come with the prebuilt kernel patches (one of which appear to have failed to build for me)?

CertainLach commented 1 year ago

No, I make those things on demand Here is prebuilt archlinux kernel: https://mega.nz/folder/6nAV1B7K#hnebwYsYQITU9MyzhfrklQ

johnsmitth commented 1 year ago

I installed the above kernel, and it seems to have bricked my system. Unfortunately I start my nightshift roster in a couple of hours, so I might just have to reload the OS and revist this project again next week.

Thanks for taking the time.

cklarhorst commented 1 year ago

First of all, I really like this project. ❤️ Thank you @CertainLach.

I have a similar system: Threadripper + 1060 but I'm on gentoo with 6.0.11 + patch 0001 (your repo) and 0003 (from vive-pro-2-on-linux) nvidia driver version: 525.60.13

The only resolution I get vision from is #0 and its scrambled (almost like its rendering half the left image to the right eye, and vice-versa) and there are rainbow coloured bars down the right side in both eyes.

I had the same problem, but I was able to work around it. The scrambled version looks like this (only one eye): image

On my System everything depends on the nvidia setting Option "AllowHMD" "XXX" (in xorg.conf).

With Option "AllowHMD" "false/no" (the default) xrandr doesn't report any modes (Output listed as unconnected) and steamvr only finds the vive with vivepro2.resolution: 0. The image is then scrambled.

With Option "AllowHMD" "yes" xrandr lists all modes except 4896x2448. The default resolution is 3680x1836. The Vive display shows my desktop, but with the help of nvidia-settings the vive monitor can be turned off. After that, steamvr can be used. In vivepro2.resolution: 0 the image is still scrambled, but vivepro2.resolution:3 works perfectly.

--> So with AllowHMD yes + turn vive monitor off via nvidia-settings + vivepro2.resolution:3 (3680x1836) I have a fully working VR setup. <--

I hope that helps anyone.

CertainLach commented 1 year ago

In case of Nvidia, I think there is some patches required to their video drivers too, too bad they are proprietary :D It used to work on some of the GPUs I have tested it on (Driver 520.56), but I can't test them all, especially the old driver versions.

To use 4896x2448 mode, you should have both patch#3 AND patch#4 The problem is, patch#4 only supports AMD for obvious reason

mwigzell commented 1 year ago

Hey guys, I hope you don't mind my chiming in here, I have a very similar situation here with standard 6.1.1-arch1-1 kernel. I tried to apply the latency patches from Santeri, but that kernel froze. I have not yet tried kernel patches from CertainLach but I intend to do so. I am running Nvidia GeForce GTX 1660 GPU. I have very similar if not identical artifact in my video after applying driver(s) from CertainLach. I have issues as follows:

  1. HMD display as above (using HTC Vive Pro 2) (Nvidia driver 525.60.11)
  2. UI issue with SteamVR which seems to intermittently swallow mouse clicks and display black screen. Maybe is due to the USB port I chose for the Vive Link.
  3. Valve Base Station 2.0 have conflicting channel 12. I cannot use UI to resolve the issue (it says they are not broadcasting)
  4. Valve Index controllers, so far seem to work.
  5. I was able to upgrade firmware on the HMD and controllers, but so far not the base stations.

Apologies for interrupting this thread, but I was so excited to see same issue with the HMD headset