Broad improvements to docs and pimax support

This commit is contained in:
BabbleBones 2024-07-19 16:45:29 -04:00
parent f88536c4c7
commit 798206eaac
10 changed files with 58 additions and 37 deletions

View file

@ -1,5 +1,5 @@
---
weight: 70
weight: 49
title: Envision
---
@ -25,6 +25,8 @@ Envision is still to be considered alpha-quality and highly experimental.
You can download the latest Appimage snapshot from [GitLab Pipelines](https://gitlab.com/gabmus/envision/-/pipelines).
**Please note that WiVRn will not work properly by AppImage, if you utilize the AppImages to run WiVRn you must extract the contents of the AppImage and then execute the Envision binary.**
## Room Setup
If you're planning to use the SteamVR lighthouse driver (with Index or Vive HMDs, or other lighthouse tracked HMDs), you'll need to go through the SteamVR room setup. You can do that from SteamVR, directly from Envision or manually by running the appropriate scripts. More info in the [SteamVR page](/docs/steamvr).
@ -35,19 +37,7 @@ The following resources can be entered into your envision profile repo and branc
### Full body lighthouse tracking
These patches enable fairly hacky full body support for steamvr_lh and survive drivers in monado. Both of these must be used in conjuction or your XR application will crash or hang.
For the Envision xr service settings:
Repo `https://gitlab.freedesktop.org/BabbleBones/monado/`
Branch `vive_tracker3`
For the Envision OpenComposite settings:
Repo `https://gitlab.com/BabbleBones/OpenOVR`
Branch `htcx-fbt`
Full body is now provided by default in Monado & OpenComposite through the XR_MNDX_xdev_space OpenXR vendor extension. This allows any tracked "xdev" in Monado to be forwarded as a raw pose without bindings to applications. OpenComposite exposes these as fake vive FBT trackers for use.
### WMR Controller tracking

View file

@ -1,5 +1,5 @@
---
weight: 300
weight: 53
title: Valve Index Camera Passthrough
---

View file

@ -1,5 +1,5 @@
---
weight: 100
weight: 50
title: Monado
---
@ -8,6 +8,8 @@ title: Monado
- [Monado home page](https://monado.freedesktop.org/)
- [Monado GitLab repository](https://gitlab.freedesktop.org/monado/monado)
![The Legendary Big M](https://gitlab.freedesktop.org/uploads/-/system/project/avatar/2685/monado_icon_medium.png?width=128)
> Monado is an open source XR runtime delivering immersive experiences such as VR and AR on mobile, PC/desktop, and other devices. Monado aims to be a complete and conformant implementation of the OpenXR API made by Khronos. The project is currently being developed for GNU/Linux and aims to support other operating systems such as Windows in the near future.
Essentially, Monado is an open source OpenXR implementation, it can be used as an alternative to SteamVR.
@ -28,3 +30,9 @@ Monado is made for PCVR headsets, if you have a standalone headset you can check
To use Monado as the OpenXR runtime with Steam, or if you're planning to use the SteamVR lighthouse driver in Monado, make sure to [run the room setup first](/docs/steamvr/).
In order to use the SteamVR lighthouse driver in Monado, you just need to set the environment variable `STEAMVR_LH_ENABLE=true`.
OpenComposite is REQUIRED to operate Monado in conjunction with Steam games. Proton requires a functional OpenVR API to utilize OpenXR at all and Proton itself is required for VR to function as normal wine does not carry any of the needed patches nor does "protonified" wine something like Lutris would provide.
## Envision
[Envision](/docs/envision/) provides fairly low barrier setup and development of both Monado and OpenComposite on most any modern distro.

View file

@ -13,4 +13,6 @@ title: OpenComposite
Please note the OpenVR implementation is incomplete and contains only what's necessary to run most games for compatibility. If you plan to implement software, utilize the OpenXR API, specification [here](https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html).
OpenComposite is required for Steam Play games to work in VR regardless of API. Due to the number of confounding factors surrounding setup, sandboxing, and more quirks; we recommend you use Envision to setup and manage your VR.
Contributions to improve the OpenVR to OpenXR mapping are welcome.

View file

@ -1,6 +1,6 @@
---
title: Stardust XR
weight: 60
weight: 52
---
# Stardust XR

View file

@ -1,5 +1,5 @@
---
weight: 200
weight: 50
title: WiVRn
---

View file

@ -1,5 +1,5 @@
---
weight: 300
weight: 51
title: WlxOverlay-S
---

View file

@ -1,6 +1,6 @@
---
weight: 50
title: Hardware
weight: 45
title: VR Gear & GPUs
---
# Hardware
@ -41,8 +41,8 @@ A non-comprehensive table of various VR/XR devices and the drivers that support
| HTC Vive | ✅ | ✅ | 🚧 (WiVRn PC-PC stream) |
| HTC Vive Pro | ✅ | ✅ | 🚧 (WiVRn PC-PC stream) |
| HTC Vive Pro Eye | ✅ (No eyechip) | ✅ (No eyechip) | 🚧 (WiVRn PC-PC stream) |
| HTC Vive Pro 2 | ✅ (custom [driver and patches](https://github.com/CertainLach/VivePro2-Linux-Driver)) | ? (presumably with two kernel patches [1](https://github.com/CertainLach/VivePro2-Linux-Driver/blob/master/kernel-patches/0002-drm-edid-parse-DRM-VESA-dsc-bpp-target.patch) [2](https://github.com/CertainLach/VivePro2-Linux-Driver/blob/master/kernel-patches/0003-drm-amd-use-fixed-dsc-bits-per-pixel-from-edid.patch)) | -- |
| Bigscreen Beyond | ~ (Functional after monado has run. Doesn't work on Nvidia) | ✅ (with [kernel patches](https://gist.githubusercontent.com/TayouVR/af8635a4b8e1d02d038be1be1d221c83/raw/3806a6ff0a03721904164277d7523d43f7ca383c/bigscreenBeyond.patch). Doesn't work on Nvidia) | -- |
| HTC Vive Pro 2 | ✅ (custom [driver and patches](https://github.com/CertainLach/VivePro2-Linux-Driver)) | ✅ (With two kernel patches [1](https://github.com/CertainLach/VivePro2-Linux-Driver/blob/master/kernel-patches/0002-drm-edid-parse-DRM-VESA-dsc-bpp-target.patch) [2](https://github.com/CertainLach/VivePro2-Linux-Driver/blob/master/kernel-patches/0003-drm-amd-use-fixed-dsc-bits-per-pixel-from-edid.patch) Doesn't work on Nvidia) | -- |
| Bigscreen Beyond | ✅ (with [kernel patches](https://gist.githubusercontent.com/TayouVR/af8635a4b8e1d02d038be1be1d221c83/raw/3806a6ff0a03721904164277d7523d43f7ca383c/bigscreenBeyond.patch). Doesn't work on Nvidia) | ✅ (with [kernel patches](https://gist.githubusercontent.com/TayouVR/af8635a4b8e1d02d038be1be1d221c83/raw/3806a6ff0a03721904164277d7523d43f7ca383c/bigscreenBeyond.patch). Doesn't work on Nvidia) | -- |
| Somnium VR1 | ? | ? | ? |
| VRgineers XTAL | ? | ? | ? |
| StarVR One | ? | ? | ? |
@ -50,12 +50,12 @@ A non-comprehensive table of various VR/XR devices and the drivers that support
| Varjo VR-2 | ? | ? | ? |
| Varjo VR-3 | ? | ? | ? |
| Pimax 4K | ❌ (Planned) | 🚧 (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch)) | 🚧 (WiVRn PC-PC stream) |
| Pimax 5K Plus | ❌ (Planned) | 🚧 (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch)) | 🚧 (WiVRn PC-PC stream) |
| Pimax 5K XR | ❌ (Planned) | 🚧 (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch)) | 🚧 (WiVRn PC-PC stream) |
| Pimax 5K SUPER | ❌ (Planned) | 🚧 (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch)) | 🚧 (WiVRn PC-PC stream) |
| Pimax 8K | ❌ (Planned) | 🚧 (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch)) | 🚧 (WiVRn PC-PC stream) |
| Pimax Vision 8K X | ❌ (Planned) | 🚧 (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch)) | 🚧 (WiVRn PC-PC stream) |
| Pimax Vision 8K PLUS | ❌ (Planned) | 🚧 (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch)) | 🚧 (WiVRn PC-PC stream) |
| Pimax 5K Plus | ❌ (Planned) | (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch)) | 🚧 (WiVRn PC-PC stream) |
| Pimax 5K XR | ❌ (Planned) | (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch)) | 🚧 (WiVRn PC-PC stream) |
| Pimax 5K SUPER | ❌ (Planned) | (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch)) | 🚧 (WiVRn PC-PC stream) |
| Pimax 8K | ❌ (Planned) | (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch)) | 🚧 (WiVRn PC-PC stream) |
| Pimax Vision 8K X | ❌ (Planned) | (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch)) | 🚧 (WiVRn PC-PC stream) |
| Pimax Vision 8K PLUS | ❌ (Planned) | (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch)) | 🚧 (WiVRn PC-PC stream) |
| Lenovo Explorer | ✅ (Monado SteamVR plugin) | ✅ (experimental 6dof controllers) | 🚧 (WiVRn PC-PC stream) |
| Acer AH101 | ✅ (Monado SteamVR plugin) | ✅ (experimental 6dof controllers) | 🚧 (WiVRn PC-PC stream) |
| Dell Visor | ✅ (Monado SteamVR plugin) | ✅ (experimental 6dof controllers) | 🚧 (WiVRn PC-PC stream) |
@ -80,8 +80,8 @@ A non-comprehensive table of various VR/XR devices and the drivers that support
| Lynx R1 | ✅ (via [ALVR](/docs/steamvr/alvr/)) | -- | ✅ |
| Apple Vision Pro | ✅ (via [ALVR](/docs/steamvr/alvr/)) | -- | ❌ |
| **Trackers** | | | |
| Vive/Tundra trackers | ✅ | ✅ | |
| SlimeVR trackers | ✅ | ✅ (OSC, driver WIP) | 🚧 (Proposed) |
| Vive/Tundra trackers | ✅ | ✅ | 🚧 (WIP) |
| SlimeVR trackers | ✅ | ✅ (OSC, driver WIP) | 🚧 (WIP) |
| Project Babble | ✅ (oscavmgr) | ✅ (oscavmgr) | ✅ (oscavmgr) |
| Eyetrack VR | ✅ | ✅ | ✅ |
| Mercury Handtrack | 🚧 (Monado SteamVR plugin, win only) | ✅ (survive driver only) | ❌ |
@ -98,11 +98,11 @@ Valve index audio output should be set to 48khz or no audio will output.
Vive Pro Eye HMD functional, eyechip WIP.
Pimax initialization code WIP.
Pimax initialization code WIP. Distortion matrix dump work in progress.
Eyetrack VR and Project Babble will both be implemented through [oscavmgr](https://github.com/galister/oscavmgr) to emit proper unified flexes over OSC.
## Applying a kernel patch (for Vive Pro 2, Bigscreen Beyond)
## Applying a kernel patch (for Vive Pro 2, Bigscreen Beyond, Pimax)
### Arch

View file

@ -1,13 +1,19 @@
---
title: Performance
weight: 250
weight: 46
---
# Performance
## A word on antialiasing
Antialiasing should be avoided when possible and the compositor scale should be increased in monado to smooth out edges. In general AA is found to increase the latency of delivered frames quite noticably and the GPU utilization far more than simple super sample of the actual VR session or app.
## Set AMD GPU power profile mode
This is important to avoid stuttering.
AMD GPUs will attempt to power save in between rendering frames, for flatscreen games this is helpful, but for VR this is quite negatively impactful on the VR compositor's ability to timewarp frames so the user's viewport does not stutter or cause sickness.
This is very important to avoid stuttering, do not skip this step if you use AMD.
### The simple way: Use CoreCtrl
@ -42,3 +48,14 @@ echo "auto" | sudo tee /sys/class/drm/card0/device/power_dpm_force_performance_l
# Set profile to DEFAULT
echo 0 | sudo tee /sys/class/drm/card0/device/pp_power_profile_mode
```
# Did all of this and still suffering stuttering issues, discomfort, or sickness?
You may need to increase the overhead of your compositor timewarp. Some GPUs cannot effectively meet the demands of realtime reprojection on the default value of 4 miliseconds so a safer value of 8 can be recommended if your symptoms are accompanied by 100% GPU usage:
`U_PACING_COMP_MIN_TIME_MS=8`
Insert this enviornment variable into your monado-service launch or into your envision profile and simply start the runtime without a rebuild. Bump the value up, as appropriate, based on the absolute power of your GPU.
Lower spec users such as iGPUs and more should consider radically higher values here, experiment in the double digits to arrive at a number that works well from your perspective.

View file

@ -5,6 +5,10 @@ weight: 50
# Resonite
## Broken Textures
Resonite presents a decent base of usability for both native linux and proton verions but suffers some issues under OpenComposite.
If the floor or menu appear invisible/corrupted, try installing the [TextureFix](https://github.com/rcelyte/ResoniteTextureFix/releases/latest) mod.
## Broken hands
Resonite is currently playable on Valve Index controllers alone through OpenComposite. The SteamVR runtime normally generates synthetic hand models from the user's controller activity but OpenComposite does not currently support this leading to null hands passed in.
Valve Index Knuckles generate their own synthetic hand data in the Monado runtime and therefore function as expected.