From 7b90c31a5f26857d9776d10dbb449a6b507b0f58 Mon Sep 17 00:00:00 2001 From: Etch9 Date: Sat, 17 May 2025 20:32:51 +0000 Subject: [PATCH 01/85] Draft: talk about other installations --- content/docs/vrchat/unity.md | 37 ++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/content/docs/vrchat/unity.md b/content/docs/vrchat/unity.md index 2128675..d2debac 100644 --- a/content/docs/vrchat/unity.md +++ b/content/docs/vrchat/unity.md @@ -5,9 +5,13 @@ title: Unity # Unity -This article will take you through installing Unity Hub, Unity, and ALCOM (the FOSS alternative to VRChat Creator Companion). +This article will take you through installing Unity and ALCOM (the FOSS alternative to VRChat Creator Companion). -## Set up UnityHub + +## Unity Installation: +There are many ways:(TODO) + +### Using UnityHub Download the [UnityHub AppImage](https://public-cdn.cloud.unity3d.com/hub/prod/UnityHub.AppImage). Run the AppImage like you normally would. @@ -20,10 +24,23 @@ First, take a look at this page from [the official VRChat docs](https://creators 1. When prompted, select *Android Build Support* and *Windows Build Support (Mono)*. - You may need to install `cpio` from your distro's repos in order to install these components (The AppImage erroneously doesn't include it). To check if it's installed, run `which cpio` in a terminal. + +### Standalone Install (Only Pro and Plus licenses) +You can download the tar from [here](https://unity.com/releases/editor/archive) after that extract the contents in a folder of your choosing (make sure the folder structure remains untouched). +afterwords you can activate your unity installation with the following command: +`.Editor/Unity -quit -batchmode -serial XX-XXXX-XXXX-XXXX-XXXX-XXXX -username 'yourUnity@mail.com' -password 'XXXXXXX'` + +To Open a project in Unity simply run: +` ./Editor/Unity -projectPath /path/to/your/project ` + +To download Unity you can also use the following cli tool: https://github.com/Larusso/unity-version-manager + ## ALCOM vrc-get is a native FOSS package manager written in Rust. Its GUI counterpart was formerly known as vrc-get-gui, but has been rebranded as ALCOM (***Al***ternative Creator ***Com***panion). +### AppImage + 1. Download the [AppImage from the latest "gui" release\*](https://github.com/vrc-get/vrc-get/releases). Pick the file named `alcom--x86_64.AppImage`. - \*Some users say the v0.16.0 and v1.0.0 releases only show a blank white GUI. If you're affected by this bug, downgrade to [v0.1.15](https://github.com/vrc-get/vrc-get/releases/tag/gui-v0.1.15) AppImage for the time being. 1. Run the AppImage. @@ -32,8 +49,24 @@ vrc-get is a native FOSS package manager written in Rust. Its GUI counterpart wa 1. Go to VRChat SDK -> Show Control Panel and dock it to the main window. 1. It may open windows partially offscreen. If this happens, see [this section below](#editor-windows-appear-partially-offscreen). +### Flatpak +To use the flatpak you will have to provide the following bash script to Alcom instead of the Unity executable +``` +#!/bin/bash + +# Execute the Flatpak application with the provided arguments +flatpak run com.unity.UnityHub -- "$@" +``` + +and symlink the flatpak .config unity folder to the system's one: + +` ln ~/.var/app/com.unity.UnityHub/config/unity3d/Unity/licenses/ ~/.config/unity3d/Unity/licenses` + Now you should be able to create and upload avatars and worlds like you normally would. +### Standalone +To use the standalone version simply add to alcom the Unity executable of that editor version + \ No newline at end of file + +### Unity 2021 crashing +For unity 2021.3.x on linux, the following steps should be followed: (TODO: mention original forum post) + +install the correct version along with windows/linux build support. +go to ~/Unity/Hub/Editor/2021.3.xxxx/Editor/Data, (TODO:talk other paths) +rename bee_backend to bee_backend.bin, +create a new text file named bee_backend in the same directory, +mark it as executable (so chmod 755 bee_backend or use your file browser), +fill it with these contents:, + +#!/bin/bash + +args=("$@") +for ((i=0; i<"${#args[@]}"; ++i)) +do + case ${args[i]} in + --stdin-canary) + unset args[i]; + break;; + esac +done +${0}.bin "${args[@]}" \ No newline at end of file -- 2.49.1 From 83f3e8745efbe1aafd674e63da2e996a002ca8d4 Mon Sep 17 00:00:00 2001 From: Etch9 Date: Sat, 17 May 2025 20:59:45 +0000 Subject: [PATCH 03/85] fix missing codeblock --- content/docs/vrchat/unity.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/content/docs/vrchat/unity.md b/content/docs/vrchat/unity.md index 227b6f1..817704d 100644 --- a/content/docs/vrchat/unity.md +++ b/content/docs/vrchat/unity.md @@ -195,7 +195,7 @@ rename bee_backend to bee_backend.bin, create a new text file named bee_backend in the same directory, mark it as executable (so chmod 755 bee_backend or use your file browser), fill it with these contents:, - +``` #!/bin/bash args=("$@") @@ -207,4 +207,5 @@ do break;; esac done -${0}.bin "${args[@]}" \ No newline at end of file +${0}.bin "${args[@]}" +``` \ No newline at end of file -- 2.49.1 From dad32c6c3371ed24e878bd7bdf14c05c703056c3 Mon Sep 17 00:00:00 2001 From: Etch9 Date: Sun, 18 May 2025 19:33:27 +0000 Subject: [PATCH 04/85] open ssl 1.1 --- content/docs/vrchat/unity.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/docs/vrchat/unity.md b/content/docs/vrchat/unity.md index 817704d..5c60ad8 100644 --- a/content/docs/vrchat/unity.md +++ b/content/docs/vrchat/unity.md @@ -35,6 +35,8 @@ To Open a project in Unity simply run: To download Unity you can also use the following cli tool: https://github.com/Larusso/unity-version-manager +Note: if your system does not provide an open ssl 1.1 package you wont be able to use unity versions older than 2022 + ## ALCOM vrc-get is a native FOSS package manager written in Rust. Its GUI counterpart was formerly known as vrc-get-gui, but has been rebranded as ALCOM (***Al***ternative Creator ***Com***panion). -- 2.49.1 From df6ced6f10cdf0843000da473f47cafdd41ab9a6 Mon Sep 17 00:00:00 2001 From: Glax Date: Fri, 23 May 2025 21:48:36 +0000 Subject: [PATCH 05/85] Edit _index.md EyetrackVR --- content/docs/EyeTrackVR/_index.md | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/content/docs/EyeTrackVR/_index.md b/content/docs/EyeTrackVR/_index.md index 5682fc0..b28c585 100644 --- a/content/docs/EyeTrackVR/_index.md +++ b/content/docs/EyeTrackVR/_index.md @@ -7,21 +7,25 @@ weight: 250 DIY eye tracking for any headset. Here are the steps to get the software working on linux. +## Prerequisites + +- tkinter `pacman -S tk` +- Python 3.11 available through the [AUR](https://aur.archlinux.org/packages/python311), build yourself! Otherwise tk will not work! + - Build after installing tkinter, otherwise it will not be included +- [poetry](https://python-poetry.org/docs/#installing-with-the-official-installer) + ## EyeTrackApp -`git clone https://github.com/EyeTrackVR/EyeTrackVR.git` +```bash +git clone https://github.com/EyeTrackVR/EyeTrackVR.git +cd EyeTrackVR +poetry install --no-root +cd EyeTrackApp +poetry run pyinstaller eyetrackapp.spec +``` -`cd EyeTrackVR` +and bada bing bada boom you now should now have a fully functional eyetrack app in directory `dist` -`git checkout v2.0-beta-feature-branch` - -`poetry install --no-root` - -`cd EyeTrackApp` - -and bada bing bada boom you now should now have a fully functional eyetrack app when you run: - -`poetry run python3 eyetrackapp.py` ## VRChat Native Eyetracking -- 2.49.1 From addf05fc36cef9e91301bc9c3d4a9a93fe514d3c Mon Sep 17 00:00:00 2001 From: Etch9 Date: Sun, 25 May 2025 14:23:35 +0000 Subject: [PATCH 06/85] Write it better --- content/docs/vrchat/unity.md | 121 +++++++++++++++++++++++------------ 1 file changed, 80 insertions(+), 41 deletions(-) diff --git a/content/docs/vrchat/unity.md b/content/docs/vrchat/unity.md index 5c60ad8..0886646 100644 --- a/content/docs/vrchat/unity.md +++ b/content/docs/vrchat/unity.md @@ -9,7 +9,7 @@ This article will take you through installing Unity and ALCOM (the FOSS alternat ## Unity Installation: -There are many ways:(TODO) +There are several methods to install Unity, depending on your preferences and system setup: ### Using UnityHub @@ -25,17 +25,25 @@ First, take a look at this page from [the official VRChat docs](https://creators - You may need to install `cpio` from your distro's repos in order to install these components (The AppImage erroneously doesn't include it). To check if it's installed, run `which cpio` in a terminal. -### Standalone Install (Only Pro and Plus licenses) -You can download the tar from [here](https://unity.com/releases/editor/archive) after that extract the contents in a folder of your choosing (make sure the folder structure remains untouched). -afterwords you can activate your unity installation with the following command: -`.Editor/Unity -quit -batchmode -serial XX-XXXX-XXXX-XXXX-XXXX-XXXX -username 'yourUnity@mail.com' -password 'XXXXXXX'` +### Standalone Install (Pro and Plus Licenses Only) -To Open a project in Unity simply run: -` ./Editor/Unity -projectPath /path/to/your/project ` +You can download the Unity editor tar file from the [official Unity archive](https://unity.com/releases/editor/archive). After downloading, extract the contents into a folder of your choice, ensuring that the folder structure remains intact. -To download Unity you can also use the following cli tool: https://github.com/Larusso/unity-version-manager +1. To activate your Unity installation, open a terminal and run the following command, replacing the placeholders with your actual license serial number and Unity account credentials: + ```bash + ./Editor/Unity -quit -batchmode -serial XX-XXXX-XXXX-XXXX-XXXX-XXXX -username 'yourUnity@mail.com' -password 'XXXXXXX' + ``` -Note: if your system does not provide an open ssl 1.1 package you wont be able to use unity versions older than 2022 +2. To open a project in Unity, use the following command, replacing `/path/to/your/project` with the actual path to your project: + ```bash + ./Editor/Unity -projectPath /path/to/your/project + ``` + +Additionally, you can manage Unity versions using the command-line tool available at [unity-version-manager](https://github.com/Larusso/unity-version-manager). + +{{% hint info %}} +**Note:** If your system does not provide an OpenSSL 1.1 package, you will be unable to use Unity versions older than 2022. +{{% /hint %}} ## ALCOM @@ -52,22 +60,35 @@ vrc-get is a native FOSS package manager written in Rust. Its GUI counterpart wa 1. It may open windows partially offscreen. If this happens, see [this section below](#editor-windows-appear-partially-offscreen). ### Flatpak -To use the flatpak you will have to provide the following bash script to Alcom instead of the Unity executable -``` -#!/bin/bash -# Execute the Flatpak application with the provided arguments -flatpak run com.unity.UnityHub -- "$@" -``` +1. To use the Flatpak version of Unity with ALCOM, create a bash script with the following content and save it as `unity-flatpak.sh`: + ```bash + #!/bin/bash -and symlink the flatpak .config unity folder to the system's one: + # Execute the Flatpak application with the provided arguments + flatpak run com.unity.UnityHub -- "$@" + ``` -` ln ~/.var/app/com.unity.UnityHub/config/unity3d/Unity/licenses/ ~/.config/unity3d/Unity/licenses` +2. Make the script executable by running: + ```bash + chmod +x unity-flatpak.sh + ``` -Now you should be able to create and upload avatars and worlds like you normally would. +3. In ALCOM, point the Unity executable to the `unity-flatpak.sh` script you just created. + +4. Next, create a symlink for the Flatpak Unity configuration folder to the system's Unity configuration folder by running: + ```bash + ln -s ~/.var/app/com.unity.UnityHub/config/unity3d/Unity/licenses/ ~/.config/unity3d/Unity/licenses + ``` ### Standalone -To use the standalone version simply add to alcom the Unity executable of that editor version + +1. To use the standalone version of Unity with ALCOM, add the Unity executable for the specific editor version you have installed. + +2. Ensure that the Unity executable is correctly pointed to within ALCOM's settings. + + +Now you should be able to create and upload avatars and worlds as you normally would. -### Unity 2021 crashing -For unity 2021.3.x on linux, the following steps should be followed: (TODO: mention original forum post) +### Unity 2021 Crashing -install the correct version along with windows/linux build support. -go to ~/Unity/Hub/Editor/2021.3.xxxx/Editor/Data, (TODO:talk other paths) -rename bee_backend to bee_backend.bin, -create a new text file named bee_backend in the same directory, -mark it as executable (so chmod 755 bee_backend or use your file browser), -fill it with these contents:, -``` -#!/bin/bash - -args=("$@") -for ((i=0; i<"${#args[@]}"; ++i)) -do - case ${args[i]} in - --stdin-canary) - unset args[i]; - break;; - esac -done -${0}.bin "${args[@]}" -``` \ No newline at end of file +If you are experiencing crashes with Unity 2021.3.x on Linux, follow these steps to resolve the issue: + +1. Ensure you have installed the correct version of Unity along with both Windows and Linux build support. + +2. Navigate to the Unity editor installation directory: + ```bash + cd ~/Unity/Hub/Editor/2021.3.xxxx/Editor/Data + ``` + +3. Rename the `bee_backend` file to `bee_backend.bin` by running: + ```bash + mv bee_backend bee_backend.bin + ``` + +4. Create a new text file named `bee_backend` in the same directory: + ```bash + touch bee_backend + ``` + +5. Make the new `bee_backend` file executable: + ```bash + chmod 755 bee_backend + ``` + +6. Open the `bee_backend` file in a text editor and add the following script: + ```bash + #!/bin/bash + + args=("$@") + for ((i=0; i<"${#args[@]}"; ++i)) + do + case ${args[i]} in + --stdin-canary) + unset args[i]; + break;; + esac + done + ${0}.bin "${args[@]}" + ``` \ No newline at end of file -- 2.49.1 From 0d9815c448e2516c9f8a3f6a385c07e91ecda6f7 Mon Sep 17 00:00:00 2001 From: Glax Date: Thu, 12 Jun 2025 09:09:17 +0000 Subject: [PATCH 07/85] Edit _index.md --- content/docs/steamvr/_index.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/content/docs/steamvr/_index.md b/content/docs/steamvr/_index.md index 2102438..d884dd1 100644 --- a/content/docs/steamvr/_index.md +++ b/content/docs/steamvr/_index.md @@ -7,7 +7,7 @@ title: SteamVR - [Quick start guide](/docs/steamvr/quick-start/) -The de facto standard for anything PCVR, SteamVR runs on Linux. +The de facto standard for anything PCVR, SteamVR runs natively on Linux. Unfortunately the Linux version is riddled with bugs, missing features and bad performace, so in general it can be a subpar experience. @@ -17,15 +17,21 @@ If you want to use a standalone headset with SteamVR you can check out [ALVR](/d ## Room Setup -The SteamVR room setup application is bug prone. It's possible to circumvent the room setup application using one of the following methods. +The SteamVR room setup application is bug prone. It's possible to circumvent the room setup application using quick calibration. ### Quick Calibration -Set the headset and controllers on the floor in the center of the playspace. Run the Quick Calibration utility under _Settings > Developer > Room and Tracking_. This will setup a standing play area for you to use. +Set the headset and controllers on the floor in the center of the playspace. +Run the Quick Calibration utility from the SteamVR-Monitor (the desktop utility showing basestations, headset and controller icons) under _Settings > Developer > Room and Tracking_. +This will setup a standing play area for you to use. ## Reprojection -SteamVR is fully incapable of stutter-free reprojection currently, efforts are ongoing to raise attention fix this. The issue can only be mitigated by not dropping below 1/2 of your HMD's rated refresh value, once under there is no other means to prevent the vision slitting, stuttering, or lagging from occuring. We recommend in all cases the use of [Envision](/docs/fossvr/envision/) as a suitable replacement for this software stack... +Async Reprojection on SteamVR is currently hit-or-miss. + +**On RADV** you can try the launch-option `RADV_DEBUG=nodcc %command%`. + +If it is still broken, you can disable Reprojection either enabling "Legacy Reprojection" (per app) or in the settings-file `$HOME/.steam/steam/config/steamvr.vrsettings` by adding `"enableLinuxVulkanAsync" : false` to the "steamvr" section. ### Envision -- 2.49.1 From 46f9a54a8e3cb054c7c9223e191541613c3ad2a9 Mon Sep 17 00:00:00 2001 From: bredo Date: Thu, 19 Jun 2025 09:10:21 +1200 Subject: [PATCH 08/85] Resonite: remove unnecessary comment about VRChat --- content/docs/resonite/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/resonite/_index.md b/content/docs/resonite/_index.md index 736cf92..dff5597 100644 --- a/content/docs/resonite/_index.md +++ b/content/docs/resonite/_index.md @@ -37,7 +37,7 @@ This can be easily done by prepending `OXR_VIEWPORT_SCALE_PERCENTAGE=75` to Reso ## Mods -Much unlike [VRChat](/docs/vrchat/), Resonite has a thriving modding community with an abundance of [mods](https://wiki.resonite.com/Mods) that offer greater user experience, optimizatons and new features. +Resonite has a thriving modding community with an abundance of [mods](https://wiki.resonite.com/Mods) that offer greater user experience, optimizations and new features. Currently there are 2 mod loaders: -- 2.49.1 From d9df0742766f8286b2a29d6118bd03e4d07adae3 Mon Sep 17 00:00:00 2001 From: galister <3123227-galister@users.noreply.gitlab.com> Date: Tue, 8 Jul 2025 11:09:10 +0000 Subject: [PATCH 09/85] add community & vrdb link to main index --- content/_index.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/content/_index.md b/content/_index.md index 6fed770..5807afd 100644 --- a/content/_index.md +++ b/content/_index.md @@ -15,3 +15,13 @@ You can start with the [hardware table](/docs/hardware/). For wireless/android/standalone headsets visit the [WiVRn](/docs/fossvr/wivrn/) page for installation instructions. For wired headsets similar to Valve Lighthouse/WMR/Oculus/Rift use [Envision](/docs/fossvr/envision/) application for quick setup and compatibility with your PC Steam games. + +## Community + +Join a community of thousands of Linux VR adventurers! + +[More info here.](/docs/community/). + +## Game Compatibility + +Check [db.vronlinux.org](https://db.vronlinux.org/) for an up-to-date report about what VR titles run well on Linux! \ No newline at end of file -- 2.49.1 From 1f6b776c6ac3a4e5a7b64819399a5f09bb7b7454 Mon Sep 17 00:00:00 2001 From: Owen Zimmerman Date: Wed, 9 Jul 2025 01:46:33 +0000 Subject: [PATCH 10/85] Unify Stardust docs by linking to Stardust wiki setup guide --- content/docs/fossvr/stardust/_index.md | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/content/docs/fossvr/stardust/_index.md b/content/docs/fossvr/stardust/_index.md index 7fc8037..1040ab5 100644 --- a/content/docs/fossvr/stardust/_index.md +++ b/content/docs/fossvr/stardust/_index.md @@ -15,17 +15,7 @@ Stardust provides a 3D environment, where anything from 2D windows (including yo ## Setup -For full installation instructions and a deeper dive into setting it up with various linux distributions, visit the [Stardust XR website](https://stardustxr.org/docs/get-started/What-is-Stardust) -The quickest way to try out Stardust XR is to install [Telescope](https://stardustxr.org/docs/get-started/Quickstart). It comes with the Stardust XR server, an app launcher called Hexagon Launcher, -and some helpful apps like Flatland to use your 2D apps inside Stardust, and Black Hole to quickly tuck away your objects and apps (kind of like desktop peek on Windows). Note that you'll need to have -the [Terra repository](https://terra.fyralabs.com/) installed. - -``` -sudo dnf install telescope -``` +For full installation and setup instructions and a deeper dive into setting it up with various linux distributions, visit the [Stardust XR website](https://stardustxr.org/docs/get-started/manual). Here's a demo showing some off some of what Stardust XR is like: - -The full installation of Stardust XR centers around the Stardust XR server, which can run a variety of clients. For a full list of what is available, -check out the [Github repository](https://github.com/StardustXR). -- 2.49.1 From 74f7992dc568f87a0648f3cd93e16276261699c2 Mon Sep 17 00:00:00 2001 From: bredo Date: Thu, 26 Jun 2025 22:04:04 +1200 Subject: [PATCH 11/85] Resonite: Add mention about Steam not using Proton Sometimes Steam will not use Proton to try and run the Windows build of Resonite - likely due to the Linux native build being removed. --- content/docs/resonite/_index.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/content/docs/resonite/_index.md b/content/docs/resonite/_index.md index dff5597..fe90b8f 100644 --- a/content/docs/resonite/_index.md +++ b/content/docs/resonite/_index.md @@ -11,6 +11,14 @@ weight: 50 {{% /hint %}} +{{% hint warning %}} + +Steam will sometimes try and run Resonite without using Proton. This may be due to the removal of the Linux native build. + +If Resonite fails to start, you may need to force Proton to be used. + +{{% /hint %}} + The current recommended Proton variant is [**GE-Proton-RTSP**](https://github.com/SpookySkeletons/proton-ge-rtsp/releases). [XRizer](/docs/fossvr/xrizer/) should now provide a close-to-flawless experience on most controllers and when using hand tracking. If you encounter any major issues you can fallback to [OpenComposite](/docs/fossvr/opencomposite/). -- 2.49.1 From 43e2f3329ecf847a4f7b8d6989f73149df937915 Mon Sep 17 00:00:00 2001 From: bredo Date: Thu, 3 Jul 2025 19:45:48 +1200 Subject: [PATCH 12/85] resonite: change recommended Proton version GE-Proton-RTSP doesn't help Resonite any more than normal GE - RTSP GE is primarily focused at VRChat --- content/docs/resonite/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/resonite/_index.md b/content/docs/resonite/_index.md index fe90b8f..59cf744 100644 --- a/content/docs/resonite/_index.md +++ b/content/docs/resonite/_index.md @@ -19,7 +19,7 @@ If Resonite fails to start, you may need to force Proton to be used. {{% /hint %}} -The current recommended Proton variant is [**GE-Proton-RTSP**](https://github.com/SpookySkeletons/proton-ge-rtsp/releases). +The current recommended Proton variant is [**Proton GE**](https://github.com/GloriousEggroll/proton-ge-custom/releases/latest). [XRizer](/docs/fossvr/xrizer/) should now provide a close-to-flawless experience on most controllers and when using hand tracking. If you encounter any major issues you can fallback to [OpenComposite](/docs/fossvr/opencomposite/). -- 2.49.1 From 803cf1a32006f2440f664d8e78360c51fda2c795 Mon Sep 17 00:00:00 2001 From: galister <3123227-galister@users.noreply.gitlab.com> Date: Mon, 21 Jul 2025 06:06:03 +0000 Subject: [PATCH 13/85] add native packages info to wivrn/steamvr_lh --- content/docs/fossvr/wivrn/_index.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/content/docs/fossvr/wivrn/_index.md b/content/docs/fossvr/wivrn/_index.md index 9079c1b..72c9058 100644 --- a/content/docs/fossvr/wivrn/_index.md +++ b/content/docs/fossvr/wivrn/_index.md @@ -142,6 +142,17 @@ This section covers using WiVRn 0.19 and newer with any Lighthouse-tracked devic You must have SteamVR installed (no need to run it). +### Using Distro-Native Packages + +These packages come with lighthouse support enabled (Flatpak & Envision does NOT) +- Arch: Install `wivrn-dashboard wivrn-server` from AUR +- Fedora: Install `wivrn-dashboard` via DNF +- Gentoo: Emerge `wivrn` from Guru + +Open the WiVRn dashboard and under advanced settings, tick `Enable SteamVR tracked devices support`, then stop/start the server. + +Warning: distro-native packages are known to have issues with Flatpak Steam. + ### Envision Set WiVRn Profile as such: - XR Service CMake Flags: -- 2.49.1 From 063b2051fc0d0aa1b53db0d3455c8c6f93520742 Mon Sep 17 00:00:00 2001 From: Bones Date: Mon, 21 Jul 2025 14:59:05 -0400 Subject: [PATCH 14/85] Update nvidia GPU situation --- content/docs/hardware/_index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/content/docs/hardware/_index.md b/content/docs/hardware/_index.md index 7ec6619..33b2b21 100644 --- a/content/docs/hardware/_index.md +++ b/content/docs/hardware/_index.md @@ -6,15 +6,15 @@ title: VR Gear & GPUs # Hardware {{% hint warning %}} -**NVIDIA WIRED VR ISSUES**: Nvidia proprietary drivers currently have a critical issue with DRM lease causing substantial presentation latency for wired VR headsets, resulting in a delayed viewport effect that makes VR uncomfortable. This affects all known driver versions. Wireless VR through WiVRn still works well. Users with Nvidia GPUs should consider wireless options or switching to AMD for the best experience. For details and to report your experience, see [this forum thread](https://forums.developer.nvidia.com/t/substantial-drm-lease-presentation-latency-resulting-in-unusable-vr-hmd-experience/332386). +**NVIDIA WIRED VR ISSUES**: Nvidia proprietary drivers currently have a critical issue with DRM lease causing substantial presentation latency for wired VR headsets, resulting in a delayed viewport effect that makes VR uncomfortable. This affects all known supported driver versions. Wireless VR through WiVRn is entirely unaffected only direct display type wired headsets. Users with Nvidia GPUs should consider the **Nvidia Wired VR Workaround** footnotes of the GPU table below or switch to AMD for the best experience. For details and to report your experience, see [this forum thread](https://forums.developer.nvidia.com/t/substantial-drm-lease-presentation-latency-resulting-in-unusable-vr-hmd-experience/332386). {{% /hint %}} ## GPU support matrix | Manufacturer | Driver | VR Support | Reprojection Support | Hybrid Graphics Support | Notes | |--------------|---------------------------|----------------|--------------------------------|-------------------------------|----------------------------------------------------------------------------------------------| -| Nvidia | Nvidia (Closed Source or Open Module) | ⚠️ Limited | ⚠️ Limited | ✅ Supported | Requires driver version 565+. [Critical DRM lease issue](https://forums.developer.nvidia.com/t/substantial-drm-lease-presentation-latency-resulting-in-unusable-vr-hmd-experience/332386) causes uncomfortable latency in wired VR. Best used with wireless solutions (WiVRn). | -| Nvidia | Nouveau (Open Source) | ⚠️ Limited | ❌ Not Viable | ✅ Supported | Cannot reproject due to lack of realtime compute shader support needed by Monado. Lacks DisplayPort audio. Not recommended for VR. | +| Nvidia | Nvidia (Closed Source or Open Module) | ✅ Acceptable | ⚠️ Mostly | ✅ Supported | Requires driver version 565+. [Critical DRM lease issue](https://forums.developer.nvidia.com/t/substantial-drm-lease-presentation-latency-resulting-in-unusable-vr-hmd-experience/332386) causes uncomfortable latency in wired VR. Best used with wireless solutions (WiVRn). | +| Nvidia | Nouveau (Open Source) | ⚠️ Limited | ❌ Not Viable | v Supported | Cannot reproject due to lack of realtime compute shader support needed by Monado. Lacks DisplayPort audio. Not recommended for VR. | | AMD | RADV (Open Source) | ✅ Excellent | ✅ Robust (RDNA+) | ✅ Supported | Recommended for wired VR. RDNA generation and newer supported with compute tunneling for reprojection. Pre-RDNA GPUs have functional but less robust reprojection. | | AMD | AMDVLK (Open Source) | ❌ Not Viable | ❌ Not Viable | ❌ N/A | RADV preferred in all circumstances. Unable to drive wired HMDs. Do not use. Do not seek support. | | AMD | AMDGPU PRO (Closed Source)| ❌ Not Viable | ❌ Not Viable | ❌ N/A | RADV preferred in all circumstances. Unable to drive wired HMDs. Do not use. Do not seek support. | @@ -26,8 +26,8 @@ title: VR Gear & GPUs - **Reprojection Support**: Describes the support and quality of reprojection features for VR. Poor support indicates that the driver is not able to properly handle Vulkan realtime shaders and it will present as visual stutter. Non-robust solutions will suffer stutter under very high GPU load. - **PRIME/ Hybrid GPU Support**: Compatibility with systems using multiple GPUs for render offload. Monado and all clients must be run on a single select GPU due to memory tiling requirements. - For Nvidia proprietary drivers *older* than 565, (please try to update!), the [vulkan-layers](https://gitlab.freedesktop.org/monado/utilities/vulkan-layers) must be installed in order to not crash: [*AUR*](https://aur.archlinux.org/packages/monado-vulkan-layers-git)・[*Fedora*](https://packages.fedoraproject.org/pkgs/monado-vulkan-layers/monado-vulkan-layers/) -- **Nvidia Wired VR Workaround**: Some users report setting `U_PACING_COMP_MIN_TIME_MS` to approximately 10 can slightly reduce the latency effect with Nvidia GPUs, but this is only a partial mitigation, not a solution. -- Nvidia GPUs work well for wireless VR through WiVRn, but have significant issues with wired headsets until the DRM lease presentation latency issue is resolved. +- **Nvidia Wired VR Workaround**: Wired users should certainly set `XRT_COMPOSITOR_USE_PRESENT_WAIT` to 1 which changes the swapchain to explicit sync behavior and `U_PACING_COMP_TIME_FRACTION_PERCENT` to 90, representing 90% of the time it takes to render a frame can significantly reduce the latency effect with Nvidia GPUs. There are notable frametime issues in the driver still which may result in stutter but this should vastly improve the experience. +- Nvidia GPUs work well for wireless VR through WiVRn. - AMD GPUs lower than RDNA generation have functional but less robust reprojection capabilities, expected to be similar to Intel. - Audio over displayport is known to temporarily cut out when new audio sources spring up on pipewire [without a fix to add alsa headroom](https://wiki.archlinux.org/title/PipeWire#Audio_cutting_out_when_multiple_streams_start_playing) - X11 configurations are discouraged but workable, please upgrade your system to Wayland if at all possible. -- 2.49.1 From 9bc48e92bc6deb3a83305207a18ff552f93791f6 Mon Sep 17 00:00:00 2001 From: Glax Date: Sun, 3 Aug 2025 18:04:54 +0000 Subject: [PATCH 15/85] Extend lighthouse-tracked pairing --- content/docs/steamvr/pairing.md | 58 +++++++++++++++++++++++++++------ 1 file changed, 48 insertions(+), 10 deletions(-) diff --git a/content/docs/steamvr/pairing.md b/content/docs/steamvr/pairing.md index fcc95aa..d9e6bd4 100644 --- a/content/docs/steamvr/pairing.md +++ b/content/docs/steamvr/pairing.md @@ -5,14 +5,53 @@ title: Pairing # Pairing Lighthouse Controllers or Trackers -To pair lighthouse-capable hardware such as the Valve Index or HTC -Vive Pro controllers, or VIVE Trackers you'll need enough receivers (one for -each device). +To pair lighthouse-tracked hardware such as the Valve Index "Knuckles" Controllers, +HTC Vive Wands, HTC Vive Pro controllers, Tundra Labs Trackers or VIVE Trackers you'll +need enough receivers (generally one for each device). -Receivers can be either: -- watchman dongles (plugged in your computer, preferably not on an USB hub) -- if you have a lighthouse HMD (e.g. Valve Index, HTC Vive, Bigscreen Beyond), - there will be two already built-in (for both controllers) +Receivers can be: +- Watchman dongles (plugged in your computer, preferably not on a USB hub) + - Tundra Labs "SW"-series dongles (now discontinued) can theoretically connect + 3 or even 4 (depending on the version) devices. However stability leaves + much to be desired when connecting more than 2 (respectively 3) devices. +- If you have a lighthouse-tracked HMD (e.g. Valve Index, HTC Vive, Bigscreen Beyond), +two receivers (for the controllers) are already built in. + +## Assigning Trackers + +After pairing Trackers, you need to assign roles to each tracker. + +This can be done through SteamVR _Settings > Controllers > Manage Trackers_ + +Alternatively you can also edit the settings-file `$HOME/.steam/steam/config/steamvr.vrsettings` by adding the following section: + +```json +"trackers" : { + "/devices/lighthouse/LHR-xxx" : "TrackerRole_LeftShoulder", + "/devices/lighthouse/LHR-xxx" : "TrackerRole_RightShoulder", + "/devices/lighthouse/LHR-xxx" : "TrackerRole_Waist", + "/devices/lighthouse/LHR-xxx" : "TrackerRole_LeftFoot", + "/devices/lighthouse/LHR-xxx" : "TrackerRole_RightFoot" + } +``` +Replace LHR-`xxx` with the Serialnumber of each tracker. +Serialnumbers can be obtained (after pairing) from `$HOME/.steam/steam/config/lighthouse/lhr-xxx` + +TrackerRoles are formatted `TrackerRole_` with `` one of: +- None +- Handed +- LeftFoot +- RightFoot +- LeftShoulder +- RightShoulder +- LeftElbow +- RightElbow +- LeftKnee +- RightKnee +- Waist +- Chest +- Camera +- Keyboard ## Pairing via SteamVR @@ -36,9 +75,8 @@ You'll be greeted by a shell which starts by listing the serial number of attach dongles and built-in, if your HMD is connected). Selecting a receiver is done by running `serial ` in the opened shell. -When pairing new devices, -you'll want to find a receiver that isn't paired with a device already. After a -receiver is selected, you can run `identifycontroller` to check if the receiver +When pairing new devices, you'll want to find a receiver that isn't paired with a device already. +After a receiver is selected, you can run `identifycontroller` to check if the receiver is paired with a device (assuming the device is on). In general, built-in HMD receivers will have longer serial numbers than dongle -- 2.49.1 From e8993b5ece05e3498d5fcf13d67934a72399f620 Mon Sep 17 00:00:00 2001 From: WMan Twentytwo Date: Sun, 3 Aug 2025 18:15:04 +0000 Subject: [PATCH 16/85] Edit _index.md --- content/docs/fossvr/monado/_index.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/content/docs/fossvr/monado/_index.md b/content/docs/fossvr/monado/_index.md index 24026d9..10a565b 100644 --- a/content/docs/fossvr/monado/_index.md +++ b/content/docs/fossvr/monado/_index.md @@ -45,6 +45,7 @@ You can add "OXR_PARALLEL_VIEWS=1 %command%" to the launch options to fix this. # Troubleshooting + ## [NVIDIA-specific] "NVIDIA: No allowlisted displays found!" This may be caused by a few different issues: @@ -52,5 +53,15 @@ This may be caused by a few different issues: This can be worked around by setting the environment variable `XRT_COMPOSITOR_FORCE_NVIDIA_DISPLAY="NVIDIA"`. - HMD display completely missing from the list: Try unplugging and replugging the power adapter. +## [NVIDIA-Specific] "I'm getting screen tearing inside of my VR headset!" +This is caused by having a monitor with VRR enabled. Turning it off in KDE Plasma's display settings may not fix it. + +- Step 1: Open your terminal and type `sudo nano /etc/default/grub` +- Step 2: Add `nvidia-modeset.conceal_vrr_caps=1` inside the parameters of `GRUB_CMDLINE_LINUX_DEFAULT=` +- Step 3: Close nano after saving the changes to the text file and update your grub config by typing `sudo grub-mkconfig -o /boot/grub/grub.cfg` +- Step 4: Restart your PC. + + ## "vkAcquireXlibDisplayEXT: VK_ERROR_UNKNOWN (0x000058b7a0764a80)" -Try unplugging and replugging the power adapter. If the issue still occurs and you are on a Wayland session, try setting the environment variable `XRT_COMPOSITOR_FORCE_WAYLAND_DIRECT=1`. \ No newline at end of file +Try unplugging and replugging the power adapter. If the issue still occurs and you are on a Wayland session, try setting the environment variable `XRT_COMPOSITOR_FORCE_WAYLAND_DIRECT=1`. + -- 2.49.1 From b4b8e2ad73fbbcb87a3440e450fb1f46563f360f Mon Sep 17 00:00:00 2001 From: hypevhs <4498312-hypevhs@users.noreply.gitlab.com> Date: Sun, 3 Aug 2025 13:50:06 -0500 Subject: [PATCH 17/85] vrcx: remove wine method --- content/docs/vrchat/vrcx.md | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/content/docs/vrchat/vrcx.md b/content/docs/vrchat/vrcx.md index 5b1f3af..247c3fb 100644 --- a/content/docs/vrchat/vrcx.md +++ b/content/docs/vrchat/vrcx.md @@ -21,17 +21,7 @@ VRCX is a tool for managing your VRChat friendships, as well as providing additi - Do the same steps as above, but download the latest .AppImage from here, instead: [VRCX Nightly Releases](https://github.com/Natsumi-sama/VRCX/releases) -## Installer Script (Wine) +## Wine (deprecated) -VRCX provides the [install-vrcx.sh](https://github.com/vrcx-team/VRCX/blob/master/Linux/install-vrcx.sh) script upstream, which does the steps of the manual installation for you. - -Install it by running: `curl -sSf https://raw.githubusercontent.com/vrcx-team/VRCX/master/Linux/install-vrcx.sh | bash` - - -## Manual Installation (Wine) - -1. Download the latest .zip from here: [VRCX Official Releases](https://github.com/vrcx-team/VRCX/releases) -1. Use a new or existing Wine prefix of Wine 9.2 or later. We recommend using a non-Proton build of Wine. -1. Run `winetricks corefonts`. -1. Symlink your `drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat` folder from the VRChat Wine prefix to the VRCX Wine prefix. -1. Run `VRCX.exe` via Wine. +Running VRCX in Wine is no longer supported, and the `install-vrcx.sh` script has been deleted upstream. Users should migrate to the +official Linux port above. \ No newline at end of file -- 2.49.1 From c24cffb35cb7d8b31c06db565643709f56608afb Mon Sep 17 00:00:00 2001 From: hypevhs <4498312-hypevhs@users.noreply.gitlab.com> Date: Sun, 3 Aug 2025 13:59:32 -0500 Subject: [PATCH 18/85] vrcx: just link to their guide --- content/docs/vrchat/vrcx.md | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/content/docs/vrchat/vrcx.md b/content/docs/vrchat/vrcx.md index 247c3fb..76fea6a 100644 --- a/content/docs/vrchat/vrcx.md +++ b/content/docs/vrchat/vrcx.md @@ -8,20 +8,5 @@ title: VRCX VRCX is a tool for managing your VRChat friendships, as well as providing additional convenience features. -## AppImage (Preferred Method) - -### Stable - -1. Download the latest .AppImage from here: [VRCX Official Releases](https://github.com/vrcx-team/VRCX/releases) -1. Run `chmod +x VRCX_*.AppImage`. -1. Run the AppImage. This will install it as an app, which then auto-removes the AppImage file. -1. Open VRCX from your apps. - -### Nightly - -- Do the same steps as above, but download the latest .AppImage from here, instead: [VRCX Nightly Releases](https://github.com/Natsumi-sama/VRCX/releases) - -## Wine (deprecated) - -Running VRCX in Wine is no longer supported, and the `install-vrcx.sh` script has been deleted upstream. Users should migrate to the -official Linux port above. \ No newline at end of file +VRCX now provides an official Linux port. Rather than duplicate that info here, please refer to the guide on their wiki: +[Running VRCX on Linux](https://github.com/vrcx-team/VRCX/wiki/Running-VRCX-on-Linux) \ No newline at end of file -- 2.49.1 From a4b56825fa81b461fda8916b5aada07a5029bdb2 Mon Sep 17 00:00:00 2001 From: hypevhs <4498312-hypevhs@users.noreply.gitlab.com> Date: Sun, 3 Aug 2025 15:56:06 -0500 Subject: [PATCH 19/85] monado: add kernel params for not-GRUB --- content/docs/fossvr/monado/_index.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/content/docs/fossvr/monado/_index.md b/content/docs/fossvr/monado/_index.md index 10a565b..30754aa 100644 --- a/content/docs/fossvr/monado/_index.md +++ b/content/docs/fossvr/monado/_index.md @@ -50,16 +50,19 @@ You can add "OXR_PARALLEL_VIEWS=1 %command%" to the launch options to fix this. This may be caused by a few different issues: - NVIDIA driver misnaming the display: If you see a display simply named "NVIDIA" in the output, the NVIDIA driver may be using a fallback name. - This can be worked around by setting the environment variable `XRT_COMPOSITOR_FORCE_NVIDIA_DISPLAY="NVIDIA"`. + This can be worked around by setting the environment variable `XRT_COMPOSITOR_FORCE_NVIDIA_DISPLAY="NVIDIA"` in your Envision profile or otherwise passed to Monado. - HMD display completely missing from the list: Try unplugging and replugging the power adapter. -## [NVIDIA-Specific] "I'm getting screen tearing inside of my VR headset!" -This is caused by having a monitor with VRR enabled. Turning it off in KDE Plasma's display settings may not fix it. +## [NVIDIA-Specific] "I'm getting screen tearing inside of my wired VR headset!" +This is caused by having a monitor with VRR enabled, while using a Nvidia GPU. Turning it off in KDE Plasma's display settings will not fix it. You need to add the kernel parameter `nvidia-modeset.conceal_vrr_caps=1` to your boot loader. -- Step 1: Open your terminal and type `sudo nano /etc/default/grub` -- Step 2: Add `nvidia-modeset.conceal_vrr_caps=1` inside the parameters of `GRUB_CMDLINE_LINUX_DEFAULT=` -- Step 3: Close nano after saving the changes to the text file and update your grub config by typing `sudo grub-mkconfig -o /boot/grub/grub.cfg` -- Step 4: Restart your PC. +ArchWiki has a guide on [how to add kernel parameters](https://wiki.archlinux.org/title/Kernel_parameters#Boot_loader_configuration) in general, but here's an example if you boot with GRUB. + +1. Open your terminal and type `sudo nano /etc/default/grub` +1. Add `nvidia-modeset.conceal_vrr_caps=1` inside the parameters of `GRUB_CMDLINE_LINUX_DEFAULT=` +1. Close nano after saving the changes to the text file +1. Update your grub config by typing `sudo grub-mkconfig -o /boot/grub/grub.cfg` +1. Restart your PC ## "vkAcquireXlibDisplayEXT: VK_ERROR_UNKNOWN (0x000058b7a0764a80)" -- 2.49.1 From 0ce06575f8855f3d3bf9e6923b97199de6eef0d6 Mon Sep 17 00:00:00 2001 From: hypevhs <4498312-hypevhs@users.noreply.gitlab.com> Date: Sun, 3 Aug 2025 16:06:42 -0500 Subject: [PATCH 20/85] add monado icon png --- static/images/monado_icon_medium.png | Bin 0 -> 3297 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 static/images/monado_icon_medium.png diff --git a/static/images/monado_icon_medium.png b/static/images/monado_icon_medium.png new file mode 100644 index 0000000000000000000000000000000000000000..299581b3ee5731a156e1a747772260fef595903c GIT binary patch literal 3297 zcmZXXWmFRm7sf|Q3>iv?AjlX9fv`q zl+;>Lf;=D^9=>TBdxQlN)J{t-5}U`t1iHpfnc@kCP4RFYV@fRBDTiU_S6q&fEwNvaAlB`X(rn6 zJ(1^T=QicjQT|kLSVDi1(qIqnQ&USL%c1=fUL5}EPQ=s)L~Keb-TSGAm~3n;<~|b! z*Q2&=4C)#6adBc`iLmgzYUSR2{NA^Ue;$~eCP|RNwzA>u*fC;_u%`4NBdAXUrb~Fn zDC{;ra8`Hk;94h~?{}wF92n9?D=6T5v1%0vH*EPz-KlFS&6F1y!52wL|C|S+99Ru( zpslGdkdAZ#CXaio)88;N0jT88mZ>|@xw)+mv8L;v#t=X|vM|#yp_dOjML>6UhMO5; z@8Oh``{m|PHaCEBFvp>H-Vp;-fO6>vgp&N?_oW3Ar9$LFb7XUD%*590YF z0$`wSk;2}Je3%#vTn8UwtBhv*LWY#9nJ3>BV{3k7WIV*MceVcgmDumL3!c0+5P=Ez=9TTNz8nJP^g=LsFIs__$29F7asc>rqF0%oWpFr6uH3T3XlVp%qOio`3@{-^TEBwcuZG{4n$2 zF`)q2Q9#vYBj@wf4yQ^;`ympa~TZmO88I|BaK>#lUA)kLFn&Tt8_-#sBrt>qd0AUrHwX(Gv|Mas}2I@04Og$a;vfkIZ$J}2jTn=b` zBO9UAnJTzT`qT(~cB(?9CaXUo-2e!PymU+;Oj(^-CXJJ)oD1pk>c zoc5&9@hYLHmv^}v@!+X4jyirzjH4M+UbE$T@OZsVG&ewWRBsU)pKNv8`E(PW*$&+^ zl|)+^Om7+6hlqxSW|Kh*%+pR~iJ4VLN%oxm(cGm*a@rkXY)E*s=5cV`_Vp?*{TJ%U zoAEnJO`CC7YfQlC==PA)`8nOYmN*ZclkDb$%p~@4s;a5rehBK8~lY* zE8Lt;UFQ7RHV_pLEDtgBUl_e%{es;|Ki7#98iG3U)%zShm<$!_Ti9oa!nXsjwJ;1E zxc;epzZF`Vx$NrS{X$rFsCe+K(yD-6)SK}&siS(iJ*iY?3NZd`h&f~B=o#LnA#FY-Wn-?qk=miZ{-l zrYg;oM47(DW-ZYy$Eaa+QMf{}`2poJ!p5G!+u)ZspX(84oR>=k8FhHmqdC>fd=B87 zf{L#)sfg?VBjq|J=Z^;0t>o855FD^ORt4Ny#5j)-oM5?4 zSMP*^&JWkjK7fHR%e9ZLJLQwX82_6xBgQ`&jpj_&Oj=T@lXcoI7U6AmwhtlSI5J;W zv825Q%Lk+fjYt-dspTR+Aw?XgUD>biQ`hs?#e*6OY-DuZ0L~DWsx4&@osJN%(O?Xw z#Eb#K1uHWSUS15`2uZQs&g!4Jf5-ZANmBJM@+~DAh|DMyMR(K8O~he;y*^_bUvd;a z{AeFU0aG0x9!c@2a1eWPY`it%mTpwR$z%^GPK{Nkd+vnfJqxq%s_8LaGZAnA@}L z91*nKq()mM5i;{U-a-M<vA*IG7y6x9uslil>i9TT(>#=vv%*9>X{dY-?cAxDs%ceKpxp<0e#^Bvi4XxwJY<3N-nHV0l_TQ4t50zs?@)-qZqk z3H|>5w7xP$vA^c5V3x4TbuK%{XH#~mfU3)vZ(e7WgrYfQ?-PWNa?ri!XQR$Ga@#W_ zwXQDF0YKR&o~XTNg3Q%=tQT!{njez1qPE7gRVyd`USkgFGv0RhJJ{OO23^-PMPh92 zr7m|b8<|^sruzgl^Aq>}4JJZ5+^*?0Hbgb}XQ zcJ>{ZuobsxjA{1l$8tY!G|r+fT66yAV)r(sNddWYN<4#xN9|NDurMMWUCk4>ER9yLtR-l1k zSEXas0_K%TRiTzdG;^UGOjV!T9(wP0wuJud$qFeSvCZ{iyW{wI$Kr>y&AU!{edh0K zK_6PX`#mXJqd;`^=TjOpKGjTyW`I$x6zS52djhqUU&+?i*8<_QiD(R&Y{uvRKjVxU zU{tzLjaUXZh@ge*y0b|5PC)2ay_4b}GR&43GV-ird z=qfksb8+b`C_OCsVL}hrqYYKD_MW@FznqL!Je6mWUNR;6u4!?E)M~E}_jmQUO{3?I0L2 z-Mn9x@a%Y--@M(&*1HLIIuyu6==ejt(c+CT_8Cj*N4E{gGwSZ3WHG|7Y7u0duhV9= z^RIuoL7CskY|aQtB=cKTAVnkv!f7L;p)ghCrdjJXOVhwvK6l&05+;#>Z#0xc)9Ah` zg}o}icMM+gcr=W;lCtSjzA|9(Nmu%OblcU=GmZ}5^oHTDyZVonB)2wnzh ztxXB6w)M2)ql;z!uJ)2A*A{aM1$q3)hAi_QTW24#-ikYYC6F%Jw4|%w(+G{cABo7j z`wEN`6g)IGmm?_~Ub2v6We20D@BW(qMg95ycQVmL4?rA>tLcB`ITQf6y6P7B$-BEv S`|0oN0?=01S1VVs3;Pd@;y2m= literal 0 HcmV?d00001 -- 2.49.1 From f6042da0fa83dd40b7ef95337e14373fd6161845 Mon Sep 17 00:00:00 2001 From: hypevhs <4498312-hypevhs@users.noreply.gitlab.com> Date: Sun, 3 Aug 2025 16:14:14 -0500 Subject: [PATCH 21/85] monado: don't hotlink logo --- content/docs/fossvr/monado/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/fossvr/monado/_index.md b/content/docs/fossvr/monado/_index.md index 30754aa..3a5e32f 100644 --- a/content/docs/fossvr/monado/_index.md +++ b/content/docs/fossvr/monado/_index.md @@ -8,7 +8,7 @@ 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 icon](/images/monado_icon_medium.png "The Legendary Big M") > 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. -- 2.49.1 From 7a3be60843bff1c20901371317c3e1f841b494a5 Mon Sep 17 00:00:00 2001 From: hypevhs <4498312-hypevhs@users.noreply.gitlab.com> Date: Sun, 3 Aug 2025 17:02:37 -0500 Subject: [PATCH 22/85] envision: the SteamLinuxRuntime_sniper-arm64 issue --- content/docs/fossvr/envision/_index.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/content/docs/fossvr/envision/_index.md b/content/docs/fossvr/envision/_index.md index 5cecdce..02ac465 100644 --- a/content/docs/fossvr/envision/_index.md +++ b/content/docs/fossvr/envision/_index.md @@ -90,6 +90,25 @@ Alternatively, you can use the following command: flatpak override --filesystem="xdg-data/envision:ro" --filesystem="xdg-run/monado_comp_ipc" --filesystem="xdg-config/openxr:ro" --filesystem="xdg-config/openvr:ro" com.valvesoftware.Steam ``` +## Known issues + +### The `SteamLinuxRuntime_sniper-arm64` issue + +If Envision crashes with this in terminal/logs: + +``` +thread 'main' panicked at src/util/file_utils.rs:165:9: +Failed to copy /home/USERNAME/.local/share/Steam/steamapps/common/SteamLinuxRuntime_sniper/_v2-entry-point to /home/USERNAME/.local/share/envision/backups/_v2-entry-point.bak: No such file or directory (os error 2) +``` + +This is because [Valve suddenly renamed a folder](https://steamdb.info/app/1628350/history/?changeid=30126564), and it hasn't been reflected in Envision yet. Anyone who has installed or moved the runtime since 18 July 2025 will run into this, even if they are not using ARM64. For now, please symlink it: + +```bash +ln -s ~/.steam/steam/steamapps/common/SteamLinuxRuntime_sniper-arm64 ~/.steam/steam/steamapps/common/SteamLinuxRuntime_sniper +# or if it's located on a different drive e.g. /mnt/steam +ln -s /mnt/steam/steamapps/common/SteamLinuxRuntime_sniper-arm64 /mnt/steam/steamapps/common/SteamLinuxRuntime_sniper +``` + ## Experimental feature settings The following resources can be entered into your Envision profile repo and branch settings to enable early access to code before it's fully upstream in Monado itself. To enable these feature sets, simply clone your profile, edit it with these settings, then build. -- 2.49.1 From 9cd33711857d56879a97b5cd21bccabdccf8f707 Mon Sep 17 00:00:00 2001 From: hypevhs <4498312-hypevhs@users.noreply.gitlab.com> Date: Mon, 4 Aug 2025 16:12:10 -0500 Subject: [PATCH 23/85] htmltest: ignore steamdb --- .htmltest.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.htmltest.yml b/.htmltest.yml index 894e641..bad192a 100644 --- a/.htmltest.yml +++ b/.htmltest.yml @@ -8,8 +8,9 @@ IgnoreURLs: # For "Edit this page" and "Last modified by": - "https://gitlab.com/lvra/lvra.gitlab.io/-/edit" - "https://gitlab.com/lvra/lvra.gitlab.io/-/commit" -# Uses Cloudflare to block bots: +# Blocks bots: - "https://www.pcgamingwiki.com/" +- "https://steamdb.info/" # IgnoreDirs: # - "lib" CacheExpires: "6h" -- 2.49.1 From 3e95d825f13f8f71a2d11f3a33226eee003b8d6a Mon Sep 17 00:00:00 2001 From: Bones Date: Tue, 5 Aug 2025 10:07:26 -0400 Subject: [PATCH 24/85] Update hardware support info --- content/docs/hardware/_index.md | 54 +++++++++++++++------------------ 1 file changed, 24 insertions(+), 30 deletions(-) diff --git a/content/docs/hardware/_index.md b/content/docs/hardware/_index.md index 33b2b21..1abef15 100644 --- a/content/docs/hardware/_index.md +++ b/content/docs/hardware/_index.md @@ -6,32 +6,27 @@ title: VR Gear & GPUs # Hardware {{% hint warning %}} -**NVIDIA WIRED VR ISSUES**: Nvidia proprietary drivers currently have a critical issue with DRM lease causing substantial presentation latency for wired VR headsets, resulting in a delayed viewport effect that makes VR uncomfortable. This affects all known supported driver versions. Wireless VR through WiVRn is entirely unaffected only direct display type wired headsets. Users with Nvidia GPUs should consider the **Nvidia Wired VR Workaround** footnotes of the GPU table below or switch to AMD for the best experience. For details and to report your experience, see [this forum thread](https://forums.developer.nvidia.com/t/substantial-drm-lease-presentation-latency-resulting-in-unusable-vr-hmd-experience/332386). +**NVIDIA WIRED VR ISSUES**: Nvidia proprietary drivers currently have a number of critical issues with DRM lease causing substantial presentation latency for wired VR headsets, or making DRM lease impossible, resulting in discomfort or breakage. Wireless VR through WiVRn is entirely unaffected only direct display type wired headsets. Users with Nvidia GPUs should consider the **Nvidia Wired VR Workaround** footnotes of the GPU table below or switch to AMD for the best experience. For details and to report your experience, see [this forum thread](https://forums.developer.nvidia.com/t/substantial-drm-lease-presentation-latency-resulting-in-unusable-vr-hmd-experience/332386) and [this issue as well](https://forums.developer.nvidia.com/t/nvidia-proprietary-non-open-modules-completely-unable-to-acquire-a-drm-lease-on-any-display-server-all-known-nvidia-drivers-any-hardware/341244). {{% /hint %}} ## GPU support matrix -| Manufacturer | Driver | VR Support | Reprojection Support | Hybrid Graphics Support | Notes | +| Manufacturer/ Hardware | Driver | VR Support | Reprojection Support | Hybrid Graphics Support | Notes | |--------------|---------------------------|----------------|--------------------------------|-------------------------------|----------------------------------------------------------------------------------------------| -| Nvidia | Nvidia (Closed Source or Open Module) | ✅ Acceptable | ⚠️ Mostly | ✅ Supported | Requires driver version 565+. [Critical DRM lease issue](https://forums.developer.nvidia.com/t/substantial-drm-lease-presentation-latency-resulting-in-unusable-vr-hmd-experience/332386) causes uncomfortable latency in wired VR. Best used with wireless solutions (WiVRn). | -| Nvidia | Nouveau (Open Source) | ⚠️ Limited | ❌ Not Viable | v Supported | Cannot reproject due to lack of realtime compute shader support needed by Monado. Lacks DisplayPort audio. Not recommended for VR. | -| AMD | RADV (Open Source) | ✅ Excellent | ✅ Robust (RDNA+) | ✅ Supported | Recommended for wired VR. RDNA generation and newer supported with compute tunneling for reprojection. Pre-RDNA GPUs have functional but less robust reprojection. | -| AMD | AMDVLK (Open Source) | ❌ Not Viable | ❌ Not Viable | ❌ N/A | RADV preferred in all circumstances. Unable to drive wired HMDs. Do not use. Do not seek support. | -| AMD | AMDGPU PRO (Closed Source)| ❌ Not Viable | ❌ Not Viable | ❌ N/A | RADV preferred in all circumstances. Unable to drive wired HMDs. Do not use. Do not seek support. | -| Intel | i915 (Open Source) | ⚡ Functional | ❓ Unknown | ✅ Supported | Relatively old driver, likely poor support for newer GPUs. Limited testing with VR applications. | -| Intel | Intel/Xe (Open Source) | ❌ No wired HMDs | ❌ N/A | ✅ Supported | Lacks direct mode implementation in driver, unable to drive wired HMDs. | +| Nvidia >= 16XX Series GPU | Nvidia (Open Module) | ✅ Acceptable | ⚠️ Partial | ✅ Supported | Requires driver version 565+. [Critical DRM lease issue](https://forums.developer.nvidia.com/t/substantial-drm-lease-presentation-latency-resulting-in-unusable-vr-hmd-experience/332386) causes uncomfortable latency in wired VR, requires runtime mitigation found below support table. Best used with wireless solutions (WiVRn). Works for wired VR. | +| Nvidia <= 10XX Series GPU | Nvidia (Closed Source Module) | ⚡ No wired VR | ⚠️ Partial | ✅ Supported | Requires driver version 565+. Best used with wireless solutions (WiVRn). [No wired VR support.](https://forums.developer.nvidia.com/t/nvidia-proprietary-non-open-modules-completely-unable-to-acquire-a-drm-lease-on-any-display-server-all-known-nvidia-drivers-any-hardware/341244) | +| Nvidia/ Any | Nouveau (Open Source) | ⚠️ Limited | ❌ Not Viable | ✅ Supported | Cannot reproject due to lack of realtime compute shader support needed by Monado. Lacks DisplayPort audio. Not recommended for VR. | +| AMD RDNA generation GPU | RADV (Open Source) | ✅ Excellent | ✅ Robust (RDNA+) | ✅ Supported | Recommended for wired VR. | +| AMD GCN generation GPU | RADV (Open Source) | ✅ Excellent | ⚠️ Limited | ✅ Supported | Not recommended for wired VR. Pre-RDNA GPUs have functional but less robust reprojection. | +| AMD/ Any | AMDVLK (Open Source) | ❌ Not Viable | ❌ Not Viable | ❌ N/A | RADV preferred in all circumstances. Unable to drive wired HMDs. Do not use. Do not seek support. | +| AMD/ Any | AMDGPU PRO (Closed Source)| ❌ Not Viable | ❌ Not Viable | ❌ N/A | RADV preferred in all circumstances. Unable to drive wired HMDs. Do not use. Do not seek support. | +| Intel/ Any | i915 (Open Source) | ⚡ Functional | ❓ Unknown | ✅ Supported | Relatively old driver, likely poor support for newer GPUs. Limited testing with VR applications. | +| Intel/ Any | Intel/Xe (Open Source) | ❌ No wired HMDs | ❌ N/A | ✅ Supported | Lacks direct mode implementation in driver, unable to drive wired HMDs. | **Notes:** -- **VR Support**: Indicates how well supported the necessary Vulkan API components are. -- **Reprojection Support**: Describes the support and quality of reprojection features for VR. Poor support indicates that the driver is not able to properly handle Vulkan realtime shaders and it will present as visual stutter. Non-robust solutions will suffer stutter under very high GPU load. -- **PRIME/ Hybrid GPU Support**: Compatibility with systems using multiple GPUs for render offload. Monado and all clients must be run on a single select GPU due to memory tiling requirements. -- For Nvidia proprietary drivers *older* than 565, (please try to update!), the [vulkan-layers](https://gitlab.freedesktop.org/monado/utilities/vulkan-layers) must be installed in order to not crash: [*AUR*](https://aur.archlinux.org/packages/monado-vulkan-layers-git)・[*Fedora*](https://packages.fedoraproject.org/pkgs/monado-vulkan-layers/monado-vulkan-layers/) - **Nvidia Wired VR Workaround**: Wired users should certainly set `XRT_COMPOSITOR_USE_PRESENT_WAIT` to 1 which changes the swapchain to explicit sync behavior and `U_PACING_COMP_TIME_FRACTION_PERCENT` to 90, representing 90% of the time it takes to render a frame can significantly reduce the latency effect with Nvidia GPUs. There are notable frametime issues in the driver still which may result in stutter but this should vastly improve the experience. -- Nvidia GPUs work well for wireless VR through WiVRn. -- AMD GPUs lower than RDNA generation have functional but less robust reprojection capabilities, expected to be similar to Intel. +- For Nvidia proprietary drivers *older* than 565, (please try to update!), the [vulkan-layers](https://gitlab.freedesktop.org/monado/utilities/vulkan-layers) must be installed in order to not crash: [*AUR*](https://aur.archlinux.org/packages/monado-vulkan-layers-git)・[*Fedora*](https://packages.fedoraproject.org/pkgs/monado-vulkan-layers/monado-vulkan-layers/) - Audio over displayport is known to temporarily cut out when new audio sources spring up on pipewire [without a fix to add alsa headroom](https://wiki.archlinux.org/title/PipeWire#Audio_cutting_out_when_multiple_streams_start_playing) -- X11 configurations are discouraged but workable, please upgrade your system to Wayland if at all possible. - ## XR Devices @@ -45,21 +40,21 @@ 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 | ✅ | ✅ | 🚧 (WiVRn PC-PC stream) | -| 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), AMD GPUs only.) | -- | -| Bigscreen Beyond | ✅ (with [kernel patch](https://gist.github.com/galister/08cddf10ac18929647d5fb6308df3e4b/raw/0f6417b6cb069f19d6c28b730499c07de06ec413/combined-bsb-6-10.patch), AMD GPUs only.) | ✅ (with [kernel patch](https://gist.github.com/galister/08cddf10ac18929647d5fb6308df3e4b/raw/0f6417b6cb069f19d6c28b730499c07de06ec413/combined-bsb-6-10.patch), AMD GPUs only.) | -- | -| Somnium VR1 | ? | ? | ? | +| 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), Nvidia driver 580+ open kernel modules.) | -- | +| Bigscreen Beyond | ✅ (with [kernel patch](https://gist.github.com/galister/08cddf10ac18929647d5fb6308df3e4b/raw/0f6417b6cb069f19d6c28b730499c07de06ec413/combined-bsb-6-10.patch), Nvidia driver 580+ open kernel modules.) | ✅ (with [kernel patch](https://gist.github.com/galister/08cddf10ac18929647d5fb6308df3e4b/raw/0f6417b6cb069f19d6c28b730499c07de06ec413/combined-bsb-6-10.patch), Nvidia driver 580+ open kernel modules.) | -- | +| Somnium VR1 | ⚠️ Rumored successful internal test by Somnium. | ⚠️ Rumored successful internal test by Somnium. | ⚠️🚧 (WiVRn PC-PC stream) | | VRgineers XTAL | ? | ? | ? | | StarVR One | ? | ? | ? | | Varjo VR-1 | ? | ? | ? | | Varjo VR-2 | ? | ? | ? | | Varjo VR-3 | ? | ? | ? | -| Pimax 4K | ❌ (Planned) | 🚧 (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch), AMD GPUs only.) | 🚧 (WiVRn PC-PC stream) | -| Pimax 5K Plus | ❌ (Planned) | ✅ (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch), AMD GPUs only.) | 🚧 (WiVRn PC-PC stream) | -| Pimax 5K XR | ❌ (Planned) | ✅ (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch), AMD GPUs only.) | 🚧 (WiVRn PC-PC stream) | -| Pimax 5K SUPER | ❌ (Planned) | ✅ (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch), AMD GPUs only.) | 🚧 (WiVRn PC-PC stream) | -| Pimax 8K | ❌ (Planned) | ✅ (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch), AMD GPUs only.) | 🚧 (WiVRn PC-PC stream) | -| Pimax Vision 8K X | ❌ (Planned) | ✅ (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch), AMD GPUs only.) | 🚧 (WiVRn PC-PC stream) | -| Pimax Vision 8K PLUS | ❌ (Planned) | ✅ (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch), AMD GPUs only.) | 🚧 (WiVRn PC-PC stream) | +| Pimax 4K | ❌ (Planned) | 🚧 (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch), Nvidia requires patching EDID.) | 🚧 (WiVRn PC-PC stream) | +| Pimax 5K Plus | ❌ (Planned) | ✅ (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch), Nvidia requires patching EDID.) | 🚧 (WiVRn PC-PC stream) | +| Pimax 5K XR | ❌ (Planned) | ✅ (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch), Nvidia requires patching EDID.) | 🚧 (WiVRn PC-PC stream) | +| Pimax 5K SUPER | ❌ (Planned) | ✅ (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch), Nvidia requires patching EDID.) | 🚧 (WiVRn PC-PC stream) | +| Pimax 8K | ❌ (Planned) | ✅ (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch), Nvidia requires patching EDID.) | 🚧 (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), Nvidia requires patching EDID.) | 🚧 (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) | @@ -88,7 +83,7 @@ A non-comprehensive table of various VR/XR devices and the drivers that support | SlimeVR trackers | ✅ | ✅ (OSC + experimental driver) | ✅ | | Project Babble | ✅ ([OscAvMgr](https://github.com/galister/oscavmgr) or [VRCFT.Avalonia](https://github.com/dfgHiatus/VRCFaceTracking.Avalonia)) | ✅ ([OscAvMgr](https://github.com/galister/oscavmgr) or [VRCFT.Avalonia](https://github.com/dfgHiatus/VRCFaceTracking.Avalonia)) | ✅ ([OscAvMgr](https://github.com/galister/oscavmgr) or [VRCFT.Avalonia](https://github.com/dfgHiatus/VRCFaceTracking.Avalonia)) | | Eyetrack VR | ✅ ([OscAvMgr](https://github.com/galister/oscavmgr) or [VRCFT.Avalonia](https://github.com/dfgHiatus/VRCFaceTracking.Avalonia)) | ✅ ([OscAvMgr](https://github.com/galister/oscavmgr) or [VRCFT.Avalonia](https://github.com/dfgHiatus/VRCFaceTracking.Avalonia)) | ✅ ([OscAvMgr](https://github.com/galister/oscavmgr) or [VRCFT.Avalonia](https://github.com/dfgHiatus/VRCFaceTracking.Avalonia)) | -| Mercury Handtrack | 🚧 (Monado SteamVR plugin, win only) | ✅ (survive driver only) | ❌ | +| Mercury Handtrack | ❌ | ✅ (no steamvr_lh driver support) | ❌ | | Ultraleap v1 | ? | ✅ (with `openxr-layer-ultraleap`) | ? | | Lucid VR Gloves | ? | ✅ (survive driver only) | ❌ | | Kinect FBT | ✅ | ✅ (experimental) | 🚧 | @@ -107,13 +102,12 @@ A non-comprehensive table of various VR/XR devices and the drivers that support - **Vive Pro** microphones should be set to use 44.1khz sample rates as feeding in 48khz raises the pitch of the audio. - **Vive Pro** creates HDMI Output Source after startup of SteamVR/Monado/etc. Use it instead of Vive Pro USB Audio Source, since the audio might appear distorted. - **Valve Index** audio output should be set to 48khz or no audio will output. -- **Valve Index** may bug out once per boot, resulting in VR refusing to start, or your DE seeing it as a normal monitor. Just unplug and replug the barrel connector that provides power to the HMD. +- **Valve Index** first presentation to system each fresh boot or first runtime plug in will yield no display, resulting in VR refusing to start. Replug the barrel connector that provides power to the HMD to reset it to make it available. - **Valve Index** may also exhibit unexpected activity with its microphone. If the microphone doesn't transmit at all during regular VR use, consider changing the DisplayPort slot the headset is currently plugged into. Also, as a reminder, the Index mic only works if the headset is actively being used to display something. - **Vive Pro Eye** HMD functional, eye tracking functionality with [ReVision](https://github.com/Blue-Doggo/ReVision) - **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. - Tracking technologies can be mixed Monado/WiVRn by using [motoc](https://github.com/galister/motoc). -- Having Ultraleap packages installed causes Monado to not compile. ## Applying a kernel patch (for Vive Pro 2, Bigscreen Beyond, Pimax) -- 2.49.1 From d7a7cec1617de8aa702dfe0c88e1d11cc0e2f08e Mon Sep 17 00:00:00 2001 From: Bones Date: Tue, 5 Aug 2025 10:40:27 -0400 Subject: [PATCH 25/85] Update Pico Neo 3 --- content/docs/hardware/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/hardware/_index.md b/content/docs/hardware/_index.md index 1abef15..93ed1a5 100644 --- a/content/docs/hardware/_index.md +++ b/content/docs/hardware/_index.md @@ -73,7 +73,7 @@ A non-comprehensive table of various VR/XR devices and the drivers that support | Quest Pro | ✅ (via [ALVR](/docs/steamvr/alvr/)) | -- | ✅ | | Quest 3 | ✅ (via [ALVR](/docs/steamvr/alvr/)) | -- | ✅ | | Pico 4 | ✅ (via [ALVR](/docs/steamvr/alvr/)) | -- | ✅ | -| Pico Neo 3 | ✅ (via [ALVR](/docs/steamvr/alvr/)) | -- | ❌ (Broken XR SDK) | +| Pico Neo 3 | ✅ (via [ALVR](/docs/steamvr/alvr/)) | -- | ✅ | | HTC Vive Focus 3 | ✅ (via [ALVR](/docs/steamvr/alvr/)) | -- | ✅ | | HTC Vive XR Elite | ✅ (via [ALVR](/docs/steamvr/alvr/)) | -- | ✅ | | Lynx R1 | ✅ (via [ALVR](/docs/steamvr/alvr/)) | -- | ✅ | -- 2.49.1 From 00c9650c03ce05a5e08990df88271a2dd675839d Mon Sep 17 00:00:00 2001 From: Supreeeme Date: Wed, 6 Aug 2025 03:58:52 +0000 Subject: [PATCH 26/85] Document disabling SteamVR controller autolaunch --- content/docs/fossvr/monado/_index.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/content/docs/fossvr/monado/_index.md b/content/docs/fossvr/monado/_index.md index 3a5e32f..adcbc60 100644 --- a/content/docs/fossvr/monado/_index.md +++ b/content/docs/fossvr/monado/_index.md @@ -31,6 +31,18 @@ To use Monado as the OpenXR runtime with Steam, or if you're planning to use the In order to use the SteamVR lighthouse driver in Monado, you just need to set the environment variable `STEAMVR_LH_ENABLE=true`. +You may want to disable SteamVR automatically starting whenever you turn on your controllers, because this will interfere with trying to use them with Monado. +To do this: +1. Launch SteamVR at least once, to create the `/config/steamvr.vrsettings` file + - `` is probably `~/.steam/steam` or `~/.local/share/Steam` +2. Add the following section to the end of the file, before the last closing brace: + + "power" : { + "autoLaunchSteamVROnButtonPress" : false + } + - This is a JSON file, so be sure that you add a comma to the end of the previous close brace. +3. Launch SteamVR again to apply the config. + 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. ### Fix View -- 2.49.1 From 9edb83bf8ba2fb0cbb3a81bf0a4dd12e275f28cf Mon Sep 17 00:00:00 2001 From: kzd Date: Sat, 9 Aug 2025 18:27:47 -0400 Subject: [PATCH 27/85] Bigscreen Beyond Driver under Proton --- content/docs/other/_index.md | 1 + .../other/bigscreen-beyond-driver/_index.md | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 content/docs/other/bigscreen-beyond-driver/_index.md diff --git a/content/docs/other/_index.md b/content/docs/other/_index.md index bdf9e6e..ad22301 100644 --- a/content/docs/other/_index.md +++ b/content/docs/other/_index.md @@ -7,5 +7,6 @@ title: Other This category houses guides that are not specific to any other cagegory. +- [Bigscreen Beyond Driver](/docs/other/bigscreen-beyond-driver/) for using the official configuration tool from Bigscreen for the BSB1/2/2e. - [Dongles over IP](/docs/other/dongles-over-ip/) plug your Watchman dongles into another host on the same network - [SVC Voice Changer](/docs/other/svc/) for AMD and NVidia GPUs, also works on CPU \ No newline at end of file diff --git a/content/docs/other/bigscreen-beyond-driver/_index.md b/content/docs/other/bigscreen-beyond-driver/_index.md new file mode 100644 index 0000000..9968f9d --- /dev/null +++ b/content/docs/other/bigscreen-beyond-driver/_index.md @@ -0,0 +1,21 @@ +--- +weight: 300 +title: Bigscreen Beyond Driver +--- + +# [Bigscreen Beyond Driver](https://steamdb.info/app/2467050/) + +You can get the "Bigscreen Beyond Driver" app from Steam working via Proton by following these instructions: +1. use a Proton version >=10 that has access to `PROTON_ENABLE_HIDRAW` env var; `Proton Experimental [bleeding-edge]` works well +2. set `PROTON_ENABLE_HIDRAW=0x35BD/0x0101 %command%` as your launch arg for the `Bigscreen Beyond Driver` under `Properties` +3. OPTIONAL: copy a SteamVR Windows install somewhere in the prefix (ie: C/ root) under appid 2467050 and when the driver is open, set the SteamVR path to where you placed the Windows install of SteamVR + +The "Bigscreen Beyond Driver" and all of its features should be working fine after doing the above! + +## Easier Device Mode Swapping + +You can also swap modes more easily without using the "Bigscreen Beyond Driver" if your device is set to 75hz mode via `XRT_COMPOSITOR_DESIRED_MODE` for an Enivison profile. + 1. `XRT_COMPOSITOR_DESIRED_MODE=0` is the 75hz mode + 2. `XRT_COMPOSITOR_DESIRED_MODE=1` is the 90hz mode + +You can verify which modes are which by using a tool like `xrandr` with the HMD plugged in. The top two modes are the relevant ones used here and are listed in order, starting at an index of 0. \ No newline at end of file -- 2.49.1 From c930d00537cc3629cc7ba19ec9d9bede49d4ea66 Mon Sep 17 00:00:00 2001 From: galister <3123227-galister@users.noreply.gitlab.com> Date: Mon, 11 Aug 2025 08:30:38 +0000 Subject: [PATCH 28/85] Update info on intel drivers --- content/docs/hardware/_index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/docs/hardware/_index.md b/content/docs/hardware/_index.md index 93ed1a5..5168e90 100644 --- a/content/docs/hardware/_index.md +++ b/content/docs/hardware/_index.md @@ -20,8 +20,8 @@ title: VR Gear & GPUs | AMD GCN generation GPU | RADV (Open Source) | ✅ Excellent | ⚠️ Limited | ✅ Supported | Not recommended for wired VR. Pre-RDNA GPUs have functional but less robust reprojection. | | AMD/ Any | AMDVLK (Open Source) | ❌ Not Viable | ❌ Not Viable | ❌ N/A | RADV preferred in all circumstances. Unable to drive wired HMDs. Do not use. Do not seek support. | | AMD/ Any | AMDGPU PRO (Closed Source)| ❌ Not Viable | ❌ Not Viable | ❌ N/A | RADV preferred in all circumstances. Unable to drive wired HMDs. Do not use. Do not seek support. | -| Intel/ Any | i915 (Open Source) | ⚡ Functional | ❓ Unknown | ✅ Supported | Relatively old driver, likely poor support for newer GPUs. Limited testing with VR applications. | -| Intel/ Any | Intel/Xe (Open Source) | ❌ No wired HMDs | ❌ N/A | ✅ Supported | Lacks direct mode implementation in driver, unable to drive wired HMDs. | +| Intel/ Any | i915 (Open Source) | ⚡ Functional | ✅ Robust (Limited testing) | ✅ Supported | Relatively old driver. SteamVR/ALVR doesn't start. WiVRn tested working. Graphical glitches in some games. | +| Intel/ Any | Intel/Xe (Open Source) | ❌ No wired HMDs | ✅ Robust (Limited testing) | ✅ Supported | Lacks direct mode implementation in driver, unable to drive wired HMDs. WiVRn tested working. Graphical glitches in some games. | **Notes:** - **Nvidia Wired VR Workaround**: Wired users should certainly set `XRT_COMPOSITOR_USE_PRESENT_WAIT` to 1 which changes the swapchain to explicit sync behavior and `U_PACING_COMP_TIME_FRACTION_PERCENT` to 90, representing 90% of the time it takes to render a frame can significantly reduce the latency effect with Nvidia GPUs. There are notable frametime issues in the driver still which may result in stutter but this should vastly improve the experience. -- 2.49.1 From b2aef3c37f757aaf8b9cd6d1fc0763ebfdac83b6 Mon Sep 17 00:00:00 2001 From: Naia Date: Tue, 12 Aug 2025 01:14:06 +0200 Subject: [PATCH 29/85] added info about resonite on the pre-release of the splittening --- content/docs/resonite/_index.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/content/docs/resonite/_index.md b/content/docs/resonite/_index.md index 59cf744..c935245 100644 --- a/content/docs/resonite/_index.md +++ b/content/docs/resonite/_index.md @@ -90,3 +90,22 @@ Resonite allows a VR player to take a break and switch to desktop mode by pressi Because controller hot-swapping is not yet implemented in Monado & OpenComposite, turning off a controller will freeze its state, including buttons pressed and analog stick input. Resonite will continue processing VR inputs even after switching to desktop. The end result is that desktop controls can act strangely. For example, if you were holding the grab sensor as you turned off the VR controller, picking up items or inspector windows stops working with the mouse. + +## Splittening + +{{% hint info %}} + +The Splittening is currently in pre-release. Linux should work OOTB, albeit a few issues. + +{{% /hint %}} + +{{% hint warning %}} + +The Splittening being in pre-release may have visual glitches. As such it is not recommended if you have any form of epilepsies. Please be warry of that. + +{{% /hint %}} + +The Splittening is still in active development, as such the linux support still varies a lot. +please use [this repository](https://github.com/baplar/resonitelinuxsplitteningpatches?tab=readme-ov-file) for any up to date information + +for VR support: OpenComposite appear to crash. Please use xrizer instead. -- 2.49.1 From 1592696bb4f2533b4931863994b725215bb90538 Mon Sep 17 00:00:00 2001 From: coolGi Date: Fri, 13 Jun 2025 22:50:21 +0930 Subject: [PATCH 30/85] added bigscreen beyond kernel patch for kernels post 6.15 --- content/docs/hardware/_index.md | 4 +- .../bigscreen-beyond-kernel-6.15.patch | 243 ++++++++++++++++++ 2 files changed, 245 insertions(+), 2 deletions(-) create mode 100644 content/docs/hardware/bigscreen-beyond-kernel-6.15.patch diff --git a/content/docs/hardware/_index.md b/content/docs/hardware/_index.md index 5168e90..008dda3 100644 --- a/content/docs/hardware/_index.md +++ b/content/docs/hardware/_index.md @@ -40,8 +40,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 | ✅ | ✅ | 🚧 (WiVRn PC-PC stream) | -| 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), Nvidia driver 580+ open kernel modules.) | -- | -| Bigscreen Beyond | ✅ (with [kernel patch](https://gist.github.com/galister/08cddf10ac18929647d5fb6308df3e4b/raw/0f6417b6cb069f19d6c28b730499c07de06ec413/combined-bsb-6-10.patch), Nvidia driver 580+ open kernel modules.) | ✅ (with [kernel patch](https://gist.github.com/galister/08cddf10ac18929647d5fb6308df3e4b/raw/0f6417b6cb069f19d6c28b730499c07de06ec413/combined-bsb-6-10.patch), Nvidia driver 580+ open kernel modules.) | -- | +| 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), AMD GPUs or Nvidia driver 580+ open kernel modules.) | -- | +| Bigscreen Beyond | ✅ (with kernel patch for [<= 6.14](https://gist.github.com/galister/08cddf10ac18929647d5fb6308df3e4b/raw/0f6417b6cb069f19d6c28b730499c07de06ec413/combined-bsb-6-10.patch) and [>= 6.15](bigscreen-beyond-kernel-6.15.patch), AMD GPUs or Nvidia driver 580+ open kernel modules.) | ✅ (with kernel patch for [<= 6.14](https://gist.github.com/galister/08cddf10ac18929647d5fb6308df3e4b/raw/0f6417b6cb069f19d6c28b730499c07de06ec413/combined-bsb-6-10.patch) and [>= 6.15](bigscreen-beyond-kernel-6.15.patch), AMD GPUs or Nvidia driver 580+ open kernel modules.) | -- | | Somnium VR1 | ⚠️ Rumored successful internal test by Somnium. | ⚠️ Rumored successful internal test by Somnium. | ⚠️🚧 (WiVRn PC-PC stream) | | VRgineers XTAL | ? | ? | ? | | StarVR One | ? | ? | ? | diff --git a/content/docs/hardware/bigscreen-beyond-kernel-6.15.patch b/content/docs/hardware/bigscreen-beyond-kernel-6.15.patch new file mode 100644 index 0000000..6875a96 --- /dev/null +++ b/content/docs/hardware/bigscreen-beyond-kernel-6.15.patch @@ -0,0 +1,243 @@ +diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c +index 3b4065099..639699e3b 100644 +--- a/drivers/gpu/drm/drm_edid.c ++++ b/drivers/gpu/drm/drm_edid.c +@@ -189,6 +189,9 @@ static const struct edid_quirk { + /* Rotel RSX-1058 forwards sink's EDID but only does HDMI 1.1*/ + EDID_QUIRK('E', 'T', 'R', 13896, EDID_QUIRK_FORCE_8BPC), + ++ /* Bigscreen Beyond Headset */ ++ EDID_QUIRK('B', 'I', 'G', 0x1234, EDID_QUIRK_NON_DESKTOP), ++ + /* Valve Index Headset */ + EDID_QUIRK('V', 'L', 'V', 0x91a8, EDID_QUIRK_NON_DESKTOP), + EDID_QUIRK('V', 'L', 'V', 0x91b0, EDID_QUIRK_NON_DESKTOP), + +From c33583995576e9ac532c4ad9e260324b1c4fa3a3 Mon Sep 17 00:00:00 2001 +From: Yaroslav Bolyukin +Date: Sun, 30 Oct 2022 19:04:26 +0100 +Subject: [PATCH 3/3] drm/amd: use fixed dsc bits-per-pixel from edid + +VESA vendor header from DisplayID spec may contain fixed bit per pixel +rate, it should be respected by drm driver + +Signed-off-by: Yaroslav Bolyukin +Reviewed-by: Wayne Lin +--- + drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 2 ++ + drivers/gpu/drm/amd/display/dc/dc_types.h | 3 +++ + 2 files changed, 5 insertions(+) + +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c +index 38d71b5c1f2d..f2467b64268b 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c +@@ -103,6 +103,8 @@ static bool dc_stream_construct(struct dc_stream_state *stream, + + /* EDID CAP translation for HDMI 2.0 */ + stream->timing.flags.LTE_340MCSC_SCRAMBLE = dc_sink_data->edid_caps.lte_340mcsc_scramble; ++ stream->timing.dsc_fixed_bits_per_pixel_x16 = ++ dc_sink_data->edid_caps.dsc_fixed_bits_per_pixel_x16; + + memset(&stream->timing.dsc_cfg, 0, sizeof(stream->timing.dsc_cfg)); + stream->timing.dsc_cfg.num_slices_h = 0; +diff --git a/drivers/gpu/drm/amd/display/dc/dc_types.h b/drivers/gpu/drm/amd/display/dc/dc_types.h +index dc78e2404b48..65915a10ab48 100644 +--- a/drivers/gpu/drm/amd/display/dc/dc_types.h ++++ b/drivers/gpu/drm/amd/display/dc/dc_types.h +@@ -231,6 +231,9 @@ struct dc_edid_caps { + bool edid_hdmi; + bool hdr_supported; + ++ /* DisplayPort caps */ ++ uint32_t dsc_fixed_bits_per_pixel_x16; ++ + struct dc_panel_patch panel_patch; + }; + +-- +2.38.1 + + +diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c +index 3b4065099..15268afa3 100644 +--- a/drivers/gpu/drm/drm_edid.c ++++ b/drivers/gpu/drm/drm_edid.c +@@ -6391,7 +6391,7 @@ static void drm_parse_vesa_mso_data(struct drm_connector *connector, + if (oui(vesa->oui[0], vesa->oui[1], vesa->oui[2]) != VESA_IEEE_OUI) + return; + +- if (sizeof(*vesa) != sizeof(*block) + block->num_bytes) { ++ if (block->num_bytes < 5) { + drm_dbg_kms(connector->dev, + "[CONNECTOR:%d:%s] Unexpected VESA vendor block size\n", + connector->base.id, connector->name); +@@ -6414,24 +6414,37 @@ static void drm_parse_vesa_mso_data(struct drm_connector *connector, + break; + } + +- if (!info->mso_stream_count) { +- info->mso_pixel_overlap = 0; +- return; +- } ++ info->mso_pixel_overlap = 0; ++ ++ if (info->mso_stream_count) { ++ info->mso_pixel_overlap = FIELD_GET(DISPLAYID_VESA_MSO_OVERLAP, vesa->mso); ++ ++ if (info->mso_pixel_overlap > 8) { ++ drm_dbg_kms(connector->dev, ++ "[CONNECTOR:%d:%s] Reserved MSO pixel overlap value %u\n", ++ connector->base.id, connector->name, ++ info->mso_pixel_overlap); ++ info->mso_pixel_overlap = 8; ++ } + +- info->mso_pixel_overlap = FIELD_GET(DISPLAYID_VESA_MSO_OVERLAP, vesa->mso); +- if (info->mso_pixel_overlap > 8) { + drm_dbg_kms(connector->dev, +- "[CONNECTOR:%d:%s] Reserved MSO pixel overlap value %u\n", +- connector->base.id, connector->name, +- info->mso_pixel_overlap); +- info->mso_pixel_overlap = 8; ++ "[CONNECTOR:%d:%s] MSO stream count %u, pixel overlap %u\n", ++ connector->base.id, connector->name, ++ info->mso_stream_count, info->mso_pixel_overlap); ++ } ++ ++ if (block->num_bytes < 7) { ++ /* DSC bpp is optional */ ++ return; + } + ++ info->dp_dsc_bpp = FIELD_GET(DISPLAYID_VESA_DSC_BPP_INT, vesa->dsc_bpp_int) * 16 + ++ FIELD_GET(DISPLAYID_VESA_DSC_BPP_FRACT, vesa->dsc_bpp_fract); ++ + drm_dbg_kms(connector->dev, +- "[CONNECTOR:%d:%s] MSO stream count %u, pixel overlap %u\n", +- connector->base.id, connector->name, +- info->mso_stream_count, info->mso_pixel_overlap); ++ "[CONNECTOR:%d:%s] DSC bits per pixel %u\n", ++ connector->base.id, connector->name, ++ info->dp_dsc_bpp); + } + + static void drm_update_mso(struct drm_connector *connector, +@@ -6479,6 +6492,7 @@ static void drm_reset_display_info(struct drm_connector *connector) + info->mso_stream_count = 0; + info->mso_pixel_overlap = 0; + info->max_dsc_bpp = 0; ++ info->dp_dsc_bpp = 0; + + kfree(info->vics); + info->vics = NULL; +diff --git a/drivers/gpu/drm/drm_edid.c.rej b/drivers/gpu/drm/drm_edid.c.rej +new file mode 100644 +index 000000000..de3b3bf4e +--- /dev/null ++++ b/drivers/gpu/drm/drm_edid.c.rej +@@ -0,0 +1,9 @@ ++diff a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c (rejected hunks) ++@@ -6376,6 +6389,7 @@ static void drm_reset_display_info(struct drm_connector *connector) ++ info->mso_stream_count = 0; ++ info->mso_pixel_overlap = 0; ++ info->max_dsc_bpp = 0; +++ info->dp_dsc_bpp = 0; ++ } ++ ++ static u32 update_display_info(struct drm_connector *connector, +diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h +index fe88d7fc6..1de1d1726 100644 +--- a/include/drm/drm_connector.h ++++ b/include/drm/drm_connector.h +@@ -803,6 +803,12 @@ struct drm_display_info { + */ + u32 max_dsc_bpp; + ++ /** ++ * @dp_dsc_bpp: DP Display-Stream-Compression (DSC) timing's target ++ * DST bits per pixel in 6.4 fixed point format. 0 means undefined ++ */ ++ u16 dp_dsc_bpp; ++ + /** + * @vics: Array of vics_len VICs. Internal to EDID parsing. + */ +diff --git a/include/drm/drm_connector.h.rej b/include/drm/drm_connector.h.rej +new file mode 100644 +index 000000000..d54d40443 +--- /dev/null ++++ b/include/drm/drm_connector.h.rej +@@ -0,0 +1,13 @@ ++diff a/include/drm/drm_connector.h b/include/drm/drm_connector.h (rejected hunks) ++@@ -721,6 +721,11 @@ struct drm_display_info { ++ * monitor's default value is used instead. ++ */ ++ u32 max_dsc_bpp; +++ /** +++ * @dp_dsc_bpp: DP Display-Stream-Compression (DSC) timing's target +++ * DST bits per pixel in 6.4 fixed point format. 0 means undefined +++ */ +++ u16 dp_dsc_bpp; ++ }; ++ ++ int drm_display_info_set_bus_formats(struct drm_display_info *info, +diff --git a/include/drm/drm_displayid.h b/include/drm/drm_displayid.h +index 566497eeb..3a4bd0816 100644 +--- a/drivers/gpu/drm/drm_displayid_internal.h ++++ b/drivers/gpu/drm/drm_displayid_internal.h +@@ -131,12 +131,16 @@ struct displayid_detailed_timing_block { + + #define DISPLAYID_VESA_MSO_OVERLAP GENMASK(3, 0) + #define DISPLAYID_VESA_MSO_MODE GENMASK(6, 5) ++#define DISPLAYID_VESA_DSC_BPP_INT GENMASK(5, 0) ++#define DISPLAYID_VESA_DSC_BPP_FRACT GENMASK(3, 0) + + struct displayid_vesa_vendor_specific_block { + struct displayid_block base; + u8 oui[3]; + u8 data_structure_type; + u8 mso; ++ u8 dsc_bpp_int; ++ u8 dsc_bpp_fract; + } __packed; + + /* +diff --git a/include/drm/drm_displayid.h.rej b/include/drm/drm_displayid.h.rej +new file mode 100644 +index 000000000..61fbd38e0 +--- /dev/null ++++ b/include/drm/drm_displayid.h.rej +@@ -0,0 +1,18 @@ ++diff a/include/drm/drm_displayid.h b/include/drm/drm_displayid.h (rejected hunks) ++@@ -131,12 +131,16 @@ struct displayid_detailed_timing_block { ++ ++ #define DISPLAYID_VESA_MSO_OVERLAP GENMASK(3, 0) ++ #define DISPLAYID_VESA_MSO_MODE GENMASK(6, 5) +++#define DISPLAYID_VESA_DSC_BPP_INT GENMASK(5, 0) +++#define DISPLAYID_VESA_DSC_BPP_FRACT GENMASK(3, 0) ++ ++ struct displayid_vesa_vendor_specific_block { ++ struct displayid_block base; ++ u8 oui[3]; ++ u8 data_structure_type; ++ u8 mso; +++ u8 dsc_bpp_int; +++ u8 dsc_bpp_fract; ++ } __packed; ++ ++ /* DisplayID iteration */ + +diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c +index d4395b92fb85..6c7f589e19ac 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c +@@ -136,6 +136,8 @@ enum dc_edid_status dm_helpers_parse_edid_caps( + + edid_caps->edid_hdmi = connector->display_info.is_hdmi; + ++ edid_caps->dsc_fixed_bits_per_pixel_x16 = connector->display_info.dp_dsc_bpp; ++ + apply_edid_quirks(dev, edid_buf, edid_caps); + + sad_count = drm_edid_to_sad((struct edid *) edid->raw_edid, &sads); -- 2.49.1 From da9293fe928f32bd569916aa3ad897a608881323 Mon Sep 17 00:00:00 2001 From: mae taylor Date: Sun, 6 Jul 2025 17:33:51 +0100 Subject: [PATCH 31/85] vrchat: add info on linking Pictures folder --- content/docs/vrchat/pictures.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 content/docs/vrchat/pictures.md diff --git a/content/docs/vrchat/pictures.md b/content/docs/vrchat/pictures.md new file mode 100644 index 0000000..192333c --- /dev/null +++ b/content/docs/vrchat/pictures.md @@ -0,0 +1,17 @@ +--- +weight: 150 +title: Pictures +--- + +# Pictures +By default, all pictures taken inside of VRChat will save inside the Wine prefix (`/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/Pictures/VRChat`). + +This can be a hassle to reach if you need to access VRChat pictures regularly. If you would like to link this folder to your user's regular Pictures folder, you can do so with the following steps: + +1. Install [protontricks](https://github.com/Matoking/protontricks) +2. Run `protontricks 438100 winecfg` +3. Select "Desktop Integration" +4. Select "Pictures" under folders, enable **Link to** and browse to your system's Pictures folder. + - eg. `/home/user/Pictures` +5. Apply and save. +6. Your VRChat pictures should now save to your regular pictures folder. -- 2.49.1 From 78adf4f04edf50922875d4c1884a0d376f961e5c Mon Sep 17 00:00:00 2001 From: Shiloh Fen Date: Tue, 12 Aug 2025 00:27:59 -0500 Subject: [PATCH 32/85] wivrn: add Steam Flatpak override for WiVRn user installation Signed-off-by: Shiloh Fen --- content/docs/fossvr/wivrn/_index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/docs/fossvr/wivrn/_index.md b/content/docs/fossvr/wivrn/_index.md index 72c9058..c68226a 100644 --- a/content/docs/fossvr/wivrn/_index.md +++ b/content/docs/fossvr/wivrn/_index.md @@ -71,6 +71,7 @@ flatpak override --user --filesystem=xdg-config/openxr:ro com.valvesoftware.Stea flatpak override --user --filesystem=xdg-config/openvr:ro com.valvesoftware.Steam flatpak override --user --filesystem=xdg-run/wivrn com.valvesoftware.Steam flatpak override --user --filesystem=/var/lib/flatpak/app/io.github.wivrn.wivrn:ro com.valvesoftware.Steam +flatpak override --user --filesystem=~/.var/app/io.github.wivrn.wivrn:ro com.valvesoftware.Steam ``` As an added bonus to the above, this command will save you the effort of having to set launch options for every single VR game in your Steam library: -- 2.49.1 From b1733b637b96c82864bbffd2a62b66a27f9ad10d Mon Sep 17 00:00:00 2001 From: Shiloh Fen Date: Tue, 12 Aug 2025 01:51:04 -0500 Subject: [PATCH 33/85] Add Fedora Atomic documentation Signed-off-by: Shiloh Fen --- content/docs/distros/Fedora_Atomic.md | 67 +++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 content/docs/distros/Fedora_Atomic.md diff --git a/content/docs/distros/Fedora_Atomic.md b/content/docs/distros/Fedora_Atomic.md new file mode 100644 index 0000000..3919c2f --- /dev/null +++ b/content/docs/distros/Fedora_Atomic.md @@ -0,0 +1,67 @@ +--- +title: Fedora Atomic (Bazzite) +--- + +# Fedora Atomic + +This documentation applies to both Fedora's Atomic images (Silverblue, Kinoite, etc.), as well as Universal Blue images (Bazzite, Bluefin, etc.) + +# AtomicXR + +The recommended way to set up Fedora Atomic for VR is with [AtomicXR](https://tangled.sh/@matrixfurry.com/atomic-xr). See the [README](https://tangled.sh/@matrixfurry.com/atomic-xr/blob/main/README.md) for the most up-to date usage instructions. + +## Installation & Setup +{{% hint info %}} +You'll need to install [Homebrew](https://brew.sh/) to use AtomicXR. See [this page](https://docs.brew.sh/Homebrew-on-Linux#install) for installation instructions. +If you're using a Universal Blue image (Bazzite, Bluefin, etc.), it's already installed for you. +{{% /hint %}} + +1. Add the AtomicXR Homebrew tap: + ```sh + brew tap matrixfurry.com/atomicxr https://tangled.sh/@matrixfurry.com/homebrew-atomicxr + ``` +2. Install the AtomicXR CLI (`axr`): + ```sh + brew install atomicxr-cli + ``` + +## [Envision](/docs/fossvr/envision) + +### Installation + +After installing the AtomicXR CLI, you can use `axr envision install` to install Envision. + +### Building profiles +{{% hint note %}} +It's bad practice to install development packages on your base system, to improve system stabilty and performance. +AtomicXR will instead set up a container with all your build depencencies installed. +Launching Envision in build mode will start it inside of that container. +{{% /hint %}} + +To build profiles, right click Envision in your application menu and click "Launch in Build Mode". + +### Plugins +AtomicXR can register [Plugins](/docs/fossvr/envision/#plugin-system) for all supported overlays & tools, so you don't need to manually add each one: +```sh +axr envision plugins register +``` + +## Overlays & Applications + +### Install +- [WlxOverlay-S](/docs/fossvr/wlxoverlay-s): `brew install wlx-overlay-s` +- [WayVR Dashboard](https://github.com/olekolek1000/wayvr-dashboard): `brew install wayvr-dashboard` +- [Monado Tracking Origin Calibrator](/docs/fossvr/motoc): `brew install motoc` +- [OSC Avatar Manager](https://github.com/galister/oscavmgr): `brew install oscavmgr vrc-advert` + +### OscAvMgr +OscAvMgr [requires VrcAdvert to handle OscQuery](https://github.com/galister/oscavmgr?tab=readme-ov-file#setting-up-to-use-with-vrchat). + +A command is included to launch OscAvMgr and VrcAdvert together for you (use `openxr` for WiVRn): +```sh +axr oscavmgr start +``` + +## Support + +You can open an issue on [Tangled](https://tangled.sh/@matrixfurry.com/atomic-xr/issues), ask questions in [this post](https://discord.com/channels/1065291958328758352/1389409336580767775) on the LVRA Discord, or reach out to [the maintainer](https://woosh.link/matrixfurry.com) directly. -- 2.49.1 From 304cf9c00b4472dcbce7573973478b339d9f13dd Mon Sep 17 00:00:00 2001 From: Shiloh Fen Date: Tue, 12 Aug 2025 03:00:18 -0500 Subject: [PATCH 34/85] add trailing slashes Signed-off-by: Shiloh Fen --- content/docs/distros/Fedora_Atomic.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/docs/distros/Fedora_Atomic.md b/content/docs/distros/Fedora_Atomic.md index 3919c2f..e4afaac 100644 --- a/content/docs/distros/Fedora_Atomic.md +++ b/content/docs/distros/Fedora_Atomic.md @@ -25,7 +25,7 @@ If you're using a Universal Blue image (Bazzite, Bluefin, etc.), it's already in brew install atomicxr-cli ``` -## [Envision](/docs/fossvr/envision) +## [Envision](/docs/fossvr/envision/) ### Installation @@ -49,9 +49,9 @@ axr envision plugins register ## Overlays & Applications ### Install -- [WlxOverlay-S](/docs/fossvr/wlxoverlay-s): `brew install wlx-overlay-s` +- [WlxOverlay-S](/docs/fossvr/wlxoverlay-s/): `brew install wlx-overlay-s` - [WayVR Dashboard](https://github.com/olekolek1000/wayvr-dashboard): `brew install wayvr-dashboard` -- [Monado Tracking Origin Calibrator](/docs/fossvr/motoc): `brew install motoc` +- [Monado Tracking Origin Calibrator](/docs/fossvr/motoc/): `brew install motoc` - [OSC Avatar Manager](https://github.com/galister/oscavmgr): `brew install oscavmgr vrc-advert` ### OscAvMgr -- 2.49.1 From d5a2888b39cd3ec9ea1e167a0b5d72874d5a9453 Mon Sep 17 00:00:00 2001 From: galister <3123227-galister@users.noreply.gitlab.com> Date: Sat, 16 Aug 2025 07:57:37 +0000 Subject: [PATCH 35/85] wmr: forcing nvidia display --- .../envision/wmr_controllers_on_arch.md | 50 +++++++++++-------- 1 file changed, 30 insertions(+), 20 deletions(-) diff --git a/content/docs/fossvr/envision/wmr_controllers_on_arch.md b/content/docs/fossvr/envision/wmr_controllers_on_arch.md index bb9cdf4..f85f03c 100644 --- a/content/docs/fossvr/envision/wmr_controllers_on_arch.md +++ b/content/docs/fossvr/envision/wmr_controllers_on_arch.md @@ -5,6 +5,8 @@ title: WMR Controller Tracking on Arch # Envision Installation on Arch with Controller Tracking +## Install Envision-XR with Paru on Arch + ## Recommendations: - **Paru** as the Arch AUR helper - **KDE** as the desktop environment for better compatibility with SteamVR (may not be necessary) @@ -18,31 +20,15 @@ cd paru makepkg -si ``` -## Monado Vulkan Layers -These are only needed if you have an NVIDIA Card and a Nvidia Driver before 565.77.01. - -[Monado Vulkan Layers AUR](https://aur.archlinux.org/packages/monado-vulkan-layers-git) -### Paru Installation -```bash -paru -S monado-vulkan-layers-git -``` -### Normal Installation with compiling manually -```bash -git clone https://aur.archlinux.org/monado-vulkan-layers-git.git -cd monado-vulkan-layers-git -makepkg -i -``` -- -> Install dependencies and, if needed, run `makepkg -i` again. - -## Envision-XR with Paru +### Install Envision-XR from AUR using Paru: [Envision-XR AUR](https://aur.archlinux.org/packages/envision-xr-git) ```bash paru -S envision-xr-git ``` +## Envision Configuration (Non-Arch users follow from here!) -### Envision Setup -- Select **WMR default**. +- Select profile: **WMR default**. ![WMR default](/images/EnvisionXR_WMR.png "Envision XR Screen with WMR Envision Default selected") - Duplicate and adjust settings: @@ -75,4 +61,28 @@ paru -S envision-xr-git WARN [wmr_controller_send_fw_cmd] Controller fw read timed out after 250 ms ERROR [wmr_bt_controller_create] WMR Controller (Bluetooth): Failed to create controller ERROR [wmr_create_bt_controller] Failed to create WMR controller (Bluetooth) - ``` \ No newline at end of file + ``` + +### Troubleshooting + +#### NVIDIA: No allowlisted displays found! + +1. See the logs: + + ``` + == Current Allowlist (8) == + Sony SIE HMD *08 + HTC Corporation HTC-VIVE + HTC Corporation VIVE Pro + Oculus VR Inc. Rift + Valve Corporation Index HMD + Seiko/Epson SEC144A + HPN + PNP + == Found Displays (2) == + SAMSUNG (HDMI-0) + HP Inc. (DP-2) + ``` +2. Identify which entry under Found Displays is your HMD. +3. Add the following env var to the Envision profile, with the correct name for your HMD: + `XRT_COMPOSITOR_FORCE_NVIDIA_DISPLAY="HP Inc."` \ No newline at end of file -- 2.49.1 From 12531fe42422e3ed0987bc825579780805efa2da Mon Sep 17 00:00:00 2001 From: hypevhs <4498312-hypevhs@users.noreply.gitlab.com> Date: Tue, 19 Aug 2025 14:31:23 -0500 Subject: [PATCH 36/85] Hardware: lower-latency ALSA headroom Co-authored-by: notfranko_ --- content/docs/hardware/_index.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/content/docs/hardware/_index.md b/content/docs/hardware/_index.md index 008dda3..455776b 100644 --- a/content/docs/hardware/_index.md +++ b/content/docs/hardware/_index.md @@ -26,7 +26,10 @@ title: VR Gear & GPUs **Notes:** - **Nvidia Wired VR Workaround**: Wired users should certainly set `XRT_COMPOSITOR_USE_PRESENT_WAIT` to 1 which changes the swapchain to explicit sync behavior and `U_PACING_COMP_TIME_FRACTION_PERCENT` to 90, representing 90% of the time it takes to render a frame can significantly reduce the latency effect with Nvidia GPUs. There are notable frametime issues in the driver still which may result in stutter but this should vastly improve the experience. - For Nvidia proprietary drivers *older* than 565, (please try to update!), the [vulkan-layers](https://gitlab.freedesktop.org/monado/utilities/vulkan-layers) must be installed in order to not crash: [*AUR*](https://aur.archlinux.org/packages/monado-vulkan-layers-git)・[*Fedora*](https://packages.fedoraproject.org/pkgs/monado-vulkan-layers/monado-vulkan-layers/) -- Audio over displayport is known to temporarily cut out when new audio sources spring up on pipewire [without a fix to add alsa headroom](https://wiki.archlinux.org/title/PipeWire#Audio_cutting_out_when_multiple_streams_start_playing) +- Audio over DisplayPort is known to temporarily cut out whenever new audio sources spring up on PipeWire [without a fix to add ALSA headroom](https://wiki.archlinux.org/title/PipeWire#Audio_cutting_out_when_multiple_streams_start_playing). + - This fix's default values adds a lot of audio latency to the entire system. If you're someone who is sensitive to audio latency, you can try changing period-size=64 and headroom=512. If audio continues to cut off, double these values. + - Also, this fix will change the latency of _all_ audio output devices. To tweak the audio output latency of your HMD _only_, which is usually sufficient to prevent cutouts, use `pactl list sinks` to identify the Sink Name that your HMD is currently connected to, and edit the headroom fix file by changing the `node.name`. + - For example: `node.name = "alsa_output.pci-0000_03_00.1.hdmi-stereo-extra2"` (not a typo, it's still connected via DisplayPort) ## XR Devices -- 2.49.1 From 564531e7fa08222d6b1a35f79f0c7b3a7cc7b1ef Mon Sep 17 00:00:00 2001 From: hypevhs <4498312-hypevhs@users.noreply.gitlab.com> Date: Tue, 19 Aug 2025 15:42:39 -0500 Subject: [PATCH 37/85] WayVR Dashboard: Add section --- content/docs/distros/Fedora_Atomic.md | 2 +- content/docs/fossvr/wlxoverlay-s.md | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/content/docs/distros/Fedora_Atomic.md b/content/docs/distros/Fedora_Atomic.md index e4afaac..00c80aa 100644 --- a/content/docs/distros/Fedora_Atomic.md +++ b/content/docs/distros/Fedora_Atomic.md @@ -50,7 +50,7 @@ axr envision plugins register ### Install - [WlxOverlay-S](/docs/fossvr/wlxoverlay-s/): `brew install wlx-overlay-s` -- [WayVR Dashboard](https://github.com/olekolek1000/wayvr-dashboard): `brew install wayvr-dashboard` +- [WayVR Dashboard](/docs/fossvr/wlxoverlay-s/#wayvr-dashboard): `brew install wayvr-dashboard` - [Monado Tracking Origin Calibrator](/docs/fossvr/motoc/): `brew install motoc` - [OSC Avatar Manager](https://github.com/galister/oscavmgr): `brew install oscavmgr vrc-advert` diff --git a/content/docs/fossvr/wlxoverlay-s.md b/content/docs/fossvr/wlxoverlay-s.md index 1ec99d7..62f8ce8 100644 --- a/content/docs/fossvr/wlxoverlay-s.md +++ b/content/docs/fossvr/wlxoverlay-s.md @@ -21,6 +21,12 @@ WayVR acts as a bridge between Wayland applications and WlxOverlay-S panels, all Read more about setup/usage in the [WayVR README](https://github.com/galister/wlx-overlay-s/tree/main/contrib/wayvr). +## WayVR-Dashboard + +WayVR Dashboard is a work-in-progress overlay application (in the form of a WlxOverlay-S plugin) for launching various applications and games directly into a VR desktop environment. + +For more details, read the [WayVR-Dashboard README](https://github.com/olekolek1000/wayvr-dashboard/). + ## Support -Reach out in the `wlxoverlay` room in Discord or Matrix. \ No newline at end of file +Reach out in the `wlxoverlay` room in Discord or Matrix. -- 2.49.1 From 2d7268861afd6b9f2d0582af482a71bea5d19a37 Mon Sep 17 00:00:00 2001 From: hypevhs <4498312-hypevhs@users.noreply.gitlab.com> Date: Tue, 19 Aug 2025 15:37:43 -0500 Subject: [PATCH 38/85] Reorder FOSS VR --- content/docs/fossvr/democap/_index.md | 4 ++-- content/docs/fossvr/envision/_index.md | 2 +- content/docs/fossvr/index_camera_passthrough.md | 2 +- content/docs/fossvr/lovr/_index.md | 4 ++-- content/docs/fossvr/monado/_index.md | 2 +- content/docs/fossvr/motoc.md | 4 ++-- content/docs/fossvr/opencomposite/_index.md | 2 +- content/docs/fossvr/stardust/_index.md | 2 +- content/docs/fossvr/wivrn/_index.md | 2 +- content/docs/fossvr/wlxoverlay-s.md | 2 +- content/docs/fossvr/wmr_lighthouse_hacky.md | 2 +- content/docs/fossvr/xrBinder/_index.md | 2 +- content/docs/fossvr/xrizer.md | 2 +- 13 files changed, 16 insertions(+), 16 deletions(-) diff --git a/content/docs/fossvr/democap/_index.md b/content/docs/fossvr/democap/_index.md index 4716f23..825ce8c 100644 --- a/content/docs/fossvr/democap/_index.md +++ b/content/docs/fossvr/democap/_index.md @@ -1,6 +1,6 @@ --- title: DEMoCap - Drag[en]gine Motion Capture -weight: 100 +weight: 1100 --- # DEMoCap - Drag[en]gine Motion Capture @@ -34,4 +34,4 @@ To start a motion capture project you have to first prepare your character model Once done you can create a motion capture project in DEMoCap and get going. See [Project Management](https://developer.dragondreams.ch/wiki/doku.php/democap:projectmanagement#project_management) to create a new project and the various pages under [Documentation and Tutorials](https://developer.dragondreams.ch/wiki/doku.php/democap:main#documentation) for information about the individual steps. -If you have questions or problems drop by the [discord channel](https://discord.gg/Jeg62ns) for help. \ No newline at end of file +If you have questions or problems drop by the [discord channel](https://discord.gg/Jeg62ns) for help. diff --git a/content/docs/fossvr/envision/_index.md b/content/docs/fossvr/envision/_index.md index 02ac465..1fff795 100644 --- a/content/docs/fossvr/envision/_index.md +++ b/content/docs/fossvr/envision/_index.md @@ -1,5 +1,5 @@ --- -weight: 49 +weight: 100 title: Envision --- diff --git a/content/docs/fossvr/index_camera_passthrough.md b/content/docs/fossvr/index_camera_passthrough.md index 2253e2b..4c4e8f6 100644 --- a/content/docs/fossvr/index_camera_passthrough.md +++ b/content/docs/fossvr/index_camera_passthrough.md @@ -1,5 +1,5 @@ --- -weight: 53 +weight: 900 title: Valve Index Camera Passthrough --- diff --git a/content/docs/fossvr/lovr/_index.md b/content/docs/fossvr/lovr/_index.md index 92aa1c0..0f414e2 100644 --- a/content/docs/fossvr/lovr/_index.md +++ b/content/docs/fossvr/lovr/_index.md @@ -1,5 +1,5 @@ --- -weight: 100 +weight: 800 title: LÖVR --- @@ -12,4 +12,4 @@ title: LÖVR The LÖVR engine is a Lua XR engine, written in C, which supports overlays on monado. Very simple and fun to implement whatever you would like. -- [lovr-playspace](/docs/fossvr/lovr/lovr-playspace/) A barebones room boundary built on the LÖVR engine. \ No newline at end of file +- [lovr-playspace](/docs/fossvr/lovr/lovr-playspace/) A barebones room boundary built on the LÖVR engine. diff --git a/content/docs/fossvr/monado/_index.md b/content/docs/fossvr/monado/_index.md index adcbc60..786974d 100644 --- a/content/docs/fossvr/monado/_index.md +++ b/content/docs/fossvr/monado/_index.md @@ -1,5 +1,5 @@ --- -weight: 50 +weight: 200 title: Monado --- diff --git a/content/docs/fossvr/motoc.md b/content/docs/fossvr/motoc.md index 52344cc..11f8b85 100644 --- a/content/docs/fossvr/motoc.md +++ b/content/docs/fossvr/motoc.md @@ -1,5 +1,5 @@ --- -weight: 50 +weight: 1000 title: Motoc --- @@ -19,4 +19,4 @@ Please take a look at the GitHub Readme for a comprehensive guide. ## Support -Reach out in the `monado` or `wivrn` room in Discord or Matrix. \ No newline at end of file +Reach out in the `monado` or `wivrn` room in Discord or Matrix. diff --git a/content/docs/fossvr/opencomposite/_index.md b/content/docs/fossvr/opencomposite/_index.md index 70d1164..fd7412d 100644 --- a/content/docs/fossvr/opencomposite/_index.md +++ b/content/docs/fossvr/opencomposite/_index.md @@ -1,5 +1,5 @@ --- -weight: 800 +weight: 500 title: OpenComposite --- diff --git a/content/docs/fossvr/stardust/_index.md b/content/docs/fossvr/stardust/_index.md index 1040ab5..d447921 100644 --- a/content/docs/fossvr/stardust/_index.md +++ b/content/docs/fossvr/stardust/_index.md @@ -1,6 +1,6 @@ --- title: Stardust XR -weight: 52 +weight: 700 --- # Stardust XR diff --git a/content/docs/fossvr/wivrn/_index.md b/content/docs/fossvr/wivrn/_index.md index c68226a..65eeef8 100644 --- a/content/docs/fossvr/wivrn/_index.md +++ b/content/docs/fossvr/wivrn/_index.md @@ -1,5 +1,5 @@ --- -weight: 50 +weight: 300 title: WiVRn --- diff --git a/content/docs/fossvr/wlxoverlay-s.md b/content/docs/fossvr/wlxoverlay-s.md index 62f8ce8..9ea93ef 100644 --- a/content/docs/fossvr/wlxoverlay-s.md +++ b/content/docs/fossvr/wlxoverlay-s.md @@ -1,5 +1,5 @@ --- -weight: 51 +weight: 600 title: WlxOverlay-S --- diff --git a/content/docs/fossvr/wmr_lighthouse_hacky.md b/content/docs/fossvr/wmr_lighthouse_hacky.md index e602db0..0d8435d 100644 --- a/content/docs/fossvr/wmr_lighthouse_hacky.md +++ b/content/docs/fossvr/wmr_lighthouse_hacky.md @@ -1,6 +1,6 @@ --- title: WMR Lighthouse (No SteamVR) -weight: 9000 +weight: 2000 --- # WMR Lighthouse (No SteamVR) diff --git a/content/docs/fossvr/xrBinder/_index.md b/content/docs/fossvr/xrBinder/_index.md index ef452d7..2e366e0 100644 --- a/content/docs/fossvr/xrBinder/_index.md +++ b/content/docs/fossvr/xrBinder/_index.md @@ -1,5 +1,5 @@ --- -weight: 900 +weight: 1200 title: xrBinder --- diff --git a/content/docs/fossvr/xrizer.md b/content/docs/fossvr/xrizer.md index ebfce00..28f9abf 100644 --- a/content/docs/fossvr/xrizer.md +++ b/content/docs/fossvr/xrizer.md @@ -1,5 +1,5 @@ --- -weight: 300 +weight: 400 title: xrizer --- -- 2.49.1 From 52b93d4dc1812e058e1e17affef2d8145405d194 Mon Sep 17 00:00:00 2001 From: bredo Date: Thu, 21 Aug 2025 22:08:55 +1200 Subject: [PATCH 39/85] Resonite: remove mention of ResonitePlatformSpoof Now that The Splittening has released and FrooxEngine runs on Linux natively, ResonitePlatformSpoof is no longer needed for the tux badge. --- content/docs/resonite/_index.md | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/content/docs/resonite/_index.md b/content/docs/resonite/_index.md index c935245..8835691 100644 --- a/content/docs/resonite/_index.md +++ b/content/docs/resonite/_index.md @@ -59,20 +59,6 @@ You can load RML mods with MonkeyLoader but not the other way around. The exact cause of this is currently unknown. Consider using MonkeyLoader if you encounter such issues starting the game as it seems to not cause the same problem. -### ResonitePlatformSpoof - -- [Mod Repo](https://github.com/isovel/ResonitePlatformSpoof) -- [Link to working version](https://github.com/isovel/ResonitePlatformSpoof/issues/2#issuecomment-2439588723) - - -{{% hint info %}} - -See [issue #2745](https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/2745#issuecomment-2573574108) for more context as to why the Linux badge isn't available for Proton users. - -{{% /hint %}} - -When the native Linux build of Resonite was still available, players are given a Linux badge to show others that they are running the native build of the client. When Proton is used to play the windows build of the game, you will not get the Linux badge. However, ResonitePlatformSpoof lets you 'spoof' your platform to the Linux native build and allows proton users to get the Linux badge. - ## Crashes Resonite has been seen causing random SteamVR crashes on Linux before. In some situations the engine also tends to freeze. On OpenComposite, the game will rarely close out on its own without leaving any obvious trace of things going wrong — this is being investigated. -- 2.49.1 From 16301492780d2f492c2056de1a9a35e0d1cc397d Mon Sep 17 00:00:00 2001 From: bredo Date: Thu, 21 Aug 2025 22:19:22 +1200 Subject: [PATCH 40/85] Resonite: the splittening is released Resonite technically runs natively on Linux now, but Proton is still required for the renderer. --- content/docs/resonite/_index.md | 29 +---------------------------- 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/content/docs/resonite/_index.md b/content/docs/resonite/_index.md index 8835691..2ad6e13 100644 --- a/content/docs/resonite/_index.md +++ b/content/docs/resonite/_index.md @@ -5,12 +5,6 @@ weight: 50 # Resonite -{{% hint info %}} - -**Note**: The Linux-native version of Resonite, amid deprioritization of developer time to fix its numerous issues, was put on indefinite hold in August 2024 and later removed in March 2025. This document only covers running under Proton. - -{{% /hint %}} - {{% hint warning %}} Steam will sometimes try and run Resonite without using Proton. This may be due to the removal of the Linux native build. @@ -36,9 +30,7 @@ To solve this, prepend `OXR_PARALLEL_VIEWS=1` to Resonite's launch options. ## Performance -Resonite currently runs under an extremely old version of Mono runtime required by Unity, which has very poor Garbage Collection causing frequent lag spikes and frame hitching during asset loading and unloading. Very soon, Resonite will be updated to use .NET 9, a far more modern and bespoke runtime, with Unity running on a separate thread only for rendering the game. Eventually Unity will be replaced by a custom rendering engine as well. - -The main developer and owner of Resonite goes into more detail [here](https://youtu.be/9cx2-VtL_LM&t=16). +In August 2025, Resonite updated to run FrooxEngine as a native Linux process, with the renderer being run through Proton. In larger sessions Resonite is typically CPU-bound, there isn't much that can be done besides upgrading your CPU. In situations where the GPU is a bottleneck, lowering the resolution (either in the OpenXR runtime or through OpenComposite) may help dramatically. This can be easily done by prepending `OXR_VIEWPORT_SCALE_PERCENTAGE=75` to Resonite's launch options. Experiment with different values to find your preferred balance between performance and quality. @@ -76,22 +68,3 @@ Resonite allows a VR player to take a break and switch to desktop mode by pressi Because controller hot-swapping is not yet implemented in Monado & OpenComposite, turning off a controller will freeze its state, including buttons pressed and analog stick input. Resonite will continue processing VR inputs even after switching to desktop. The end result is that desktop controls can act strangely. For example, if you were holding the grab sensor as you turned off the VR controller, picking up items or inspector windows stops working with the mouse. - -## Splittening - -{{% hint info %}} - -The Splittening is currently in pre-release. Linux should work OOTB, albeit a few issues. - -{{% /hint %}} - -{{% hint warning %}} - -The Splittening being in pre-release may have visual glitches. As such it is not recommended if you have any form of epilepsies. Please be warry of that. - -{{% /hint %}} - -The Splittening is still in active development, as such the linux support still varies a lot. -please use [this repository](https://github.com/baplar/resonitelinuxsplitteningpatches?tab=readme-ov-file) for any up to date information - -for VR support: OpenComposite appear to crash. Please use xrizer instead. -- 2.49.1 From df154f83649265adab1f4cf035846c83df1ffe5f Mon Sep 17 00:00:00 2001 From: bredo Date: Thu, 21 Aug 2025 22:21:34 +1200 Subject: [PATCH 41/85] Resonite: change wording of Proton warning --- content/docs/resonite/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/resonite/_index.md b/content/docs/resonite/_index.md index 2ad6e13..81cadc5 100644 --- a/content/docs/resonite/_index.md +++ b/content/docs/resonite/_index.md @@ -7,7 +7,7 @@ weight: 50 {{% hint warning %}} -Steam will sometimes try and run Resonite without using Proton. This may be due to the removal of the Linux native build. +Steam will sometimes try and run Resonite without using Proton. Despite the main process running natively, Proton is still required for the renderer. If Resonite fails to start, you may need to force Proton to be used. -- 2.49.1 From a77aa3f14fa8de0ea92ad8e05fae04113b66c232 Mon Sep 17 00:00:00 2001 From: bredo Date: Fri, 22 Aug 2025 07:03:06 +1200 Subject: [PATCH 42/85] Resonite: remove mention about needing to force Proton This has apparently been fixed: https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5303 https://gitlab.com/lvra/lvra.gitlab.io/-/merge_requests/132#note_2700847834 --- content/docs/resonite/_index.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/content/docs/resonite/_index.md b/content/docs/resonite/_index.md index 81cadc5..78d5aab 100644 --- a/content/docs/resonite/_index.md +++ b/content/docs/resonite/_index.md @@ -5,14 +5,6 @@ weight: 50 # Resonite -{{% hint warning %}} - -Steam will sometimes try and run Resonite without using Proton. Despite the main process running natively, Proton is still required for the renderer. - -If Resonite fails to start, you may need to force Proton to be used. - -{{% /hint %}} - The current recommended Proton variant is [**Proton GE**](https://github.com/GloriousEggroll/proton-ge-custom/releases/latest). [XRizer](/docs/fossvr/xrizer/) should now provide a close-to-flawless experience on most controllers and when using hand tracking. If you encounter any major issues you can fallback to [OpenComposite](/docs/fossvr/opencomposite/). -- 2.49.1 From 9474ce775926b9244f912fd7400589a9713ac1e6 Mon Sep 17 00:00:00 2001 From: bredo Date: Fri, 22 Aug 2025 07:07:28 +1200 Subject: [PATCH 43/85] Resonite: Mention OpenComposite crashing https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5152 --- content/docs/resonite/_index.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/content/docs/resonite/_index.md b/content/docs/resonite/_index.md index 78d5aab..3120a68 100644 --- a/content/docs/resonite/_index.md +++ b/content/docs/resonite/_index.md @@ -7,7 +7,7 @@ weight: 50 The current recommended Proton variant is [**Proton GE**](https://github.com/GloriousEggroll/proton-ge-custom/releases/latest). -[XRizer](/docs/fossvr/xrizer/) should now provide a close-to-flawless experience on most controllers and when using hand tracking. If you encounter any major issues you can fallback to [OpenComposite](/docs/fossvr/opencomposite/). +[XRizer](/docs/fossvr/xrizer/) should now provide a close-to-flawless experience on most controllers and when using hand tracking. ## Visual bugs @@ -49,6 +49,12 @@ Resonite has been seen causing random SteamVR crashes on Linux before. In some s The cause of these issues and whether they are Proton-specific isn't currently known. +### OpenComposite + +Currently, OpenComposite is known to crash Resonite when used in VR, so attempting to use OpenComposite for Resonite is not recommended. + +See https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5152 for more information. + ### Crash on loading into a world with video players On GE-Proton9-10 (for example), loading into a world with e.g. a YouTube video or live stream can crash the game. Try using the latest GE-Proton-RTSP release. -- 2.49.1 From 8cde6c33c1f13b673a5c9a39360ba67334d7fadb Mon Sep 17 00:00:00 2001 From: bredo Date: Fri, 22 Aug 2025 07:12:55 +1200 Subject: [PATCH 44/85] Resonite: Add section about viseme analysis on Linux --- content/docs/resonite/_index.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/content/docs/resonite/_index.md b/content/docs/resonite/_index.md index 3120a68..f4d34eb 100644 --- a/content/docs/resonite/_index.md +++ b/content/docs/resonite/_index.md @@ -27,6 +27,12 @@ In August 2025, Resonite updated to run FrooxEngine as a native Linux process, w In larger sessions Resonite is typically CPU-bound, there isn't much that can be done besides upgrading your CPU. In situations where the GPU is a bottleneck, lowering the resolution (either in the OpenXR runtime or through OpenComposite) may help dramatically. This can be easily done by prepending `OXR_VIEWPORT_SCALE_PERCENTAGE=75` to Resonite's launch options. Experiment with different values to find your preferred balance between performance and quality. +## Visemes + +Currently, viseme analysis does not work on Linux due to Meta not providing a Linux native build of OVRLipSync (https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5151#issuecomment-3170453491) + +There is an experimental mod developed by the community that allows for viseme analysis under Linux - https://github.com/KyuubiYoru/VisemesAtHome. + ## Mods Resonite has a thriving modding community with an abundance of [mods](https://wiki.resonite.com/Mods) that offer greater user experience, optimizations and new features. -- 2.49.1 From 7f24920de4aad066782ab82f0e711e685f88a7c5 Mon Sep 17 00:00:00 2001 From: bredo Date: Fri, 22 Aug 2025 08:18:02 +1200 Subject: [PATCH 45/85] Resonite: remove mention of texture bugs https://gitlab.com/lvra/lvra.gitlab.io/-/merge_requests/132#note_2701862285 --- content/docs/resonite/_index.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/content/docs/resonite/_index.md b/content/docs/resonite/_index.md index f4d34eb..c97d996 100644 --- a/content/docs/resonite/_index.md +++ b/content/docs/resonite/_index.md @@ -10,10 +10,6 @@ The current recommended Proton variant is [**Proton GE**](https://github.com/Glo [XRizer](/docs/fossvr/xrizer/) should now provide a close-to-flawless experience on most controllers and when using hand tracking. -## Visual bugs - -There are some minor visual bugs specific to running Resonite on Proton, such as textures taking longer to load and appearing black for a few seconds when close to the player. - ## Mirrors look cross-eyed When playing Resonite under [Monado](https://lvra.gitlab.io/docs/fossvr/monado/) or [WiVRn](https://lvra.gitlab.io/docs/fossvr/wivrn/), the 3D effect of mirrors may appear way off, as if looking through them feels like your eyes are crossed. This only affects headsets with canted displays (e.g. Valve Index, Pimax). -- 2.49.1 From dd5a19ac80a71e7bb6a15dece055ed96f4f68e9c Mon Sep 17 00:00:00 2001 From: bredo Date: Fri, 22 Aug 2025 08:19:05 +1200 Subject: [PATCH 46/85] Apply 1 suggestion(s) to 1 file(s) Co-authored-by: hypevhs <4498312-hypevhs@users.noreply.gitlab.com> --- content/docs/resonite/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/resonite/_index.md b/content/docs/resonite/_index.md index c97d996..0443f42 100644 --- a/content/docs/resonite/_index.md +++ b/content/docs/resonite/_index.md @@ -20,7 +20,7 @@ To solve this, prepend `OXR_PARALLEL_VIEWS=1` to Resonite's launch options. In August 2025, Resonite updated to run FrooxEngine as a native Linux process, with the renderer being run through Proton. -In larger sessions Resonite is typically CPU-bound, there isn't much that can be done besides upgrading your CPU. In situations where the GPU is a bottleneck, lowering the resolution (either in the OpenXR runtime or through OpenComposite) may help dramatically. +Resonite is typically GPU-bottlenecked. Lowering the resolution may help. This can be easily done by prepending `OXR_VIEWPORT_SCALE_PERCENTAGE=75` to Resonite's launch options. Experiment with different values to find your preferred balance between performance and quality. ## Visemes -- 2.49.1 From 0badd456b422b2d9eea859e6b20ffb353d17be55 Mon Sep 17 00:00:00 2001 From: bredo Date: Fri, 22 Aug 2025 08:31:14 +1200 Subject: [PATCH 47/85] Resonite: Mention issues with renderer on Linux --- content/docs/resonite/_index.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/content/docs/resonite/_index.md b/content/docs/resonite/_index.md index 0443f42..8803fa0 100644 --- a/content/docs/resonite/_index.md +++ b/content/docs/resonite/_index.md @@ -47,9 +47,11 @@ The exact cause of this is currently unknown. Consider using MonkeyLoader if you ## Crashes -Resonite has been seen causing random SteamVR crashes on Linux before. In some situations the engine also tends to freeze. On OpenComposite, the game will rarely close out on its own without leaving any obvious trace of things going wrong — this is being investigated. +### Renderer issues -The cause of these issues and whether they are Proton-specific isn't currently known. +Resonite's renderer is known to randomly crash suddenly - this is currently tracked at https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5325. + +There is also a known memory leak when running the renderer on Linux - however, it is uncertain currently whether this is an issue with Proton or there is something else at play - see https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5246. ### OpenComposite -- 2.49.1 From 939917bcdd2fb4f41a94f8bd01fda5a4e24014c7 Mon Sep 17 00:00:00 2001 From: Nat Osaka Date: Mon, 25 Aug 2025 07:52:38 +0000 Subject: [PATCH 48/85] FlipVR controller support for Monado instructions --- content/docs/fossvr/monado/flipvr.md | 27 +++++++++++++++++++++++++++ content/docs/resonite/_index.md | 4 ++++ 2 files changed, 31 insertions(+) create mode 100644 content/docs/fossvr/monado/flipvr.md diff --git a/content/docs/fossvr/monado/flipvr.md b/content/docs/fossvr/monado/flipvr.md new file mode 100644 index 0000000..1713b42 --- /dev/null +++ b/content/docs/fossvr/monado/flipvr.md @@ -0,0 +1,27 @@ +--- +weight: 200 +title: FlipVR controllers +--- + +# Using FlipVR with the Monado OpenXR Runtime + +This is currently the only way to use these controllers in [Resonite](/docs/resonite/) as of 2025-08-22 + +From the [ShiftAll Discord](https://discord.com/invite/Z9Tp7tUzmb) ([link to post](https://discord.com/channels/1093765691582185482/1262995177845293076/1408272236703387688)): +> ℹ️ _I expect you are using [Envision](https://gitlab.com/gabmus/envision) to setup Monado and OpenComposite/xrizer. If you aren't, you'll have to manually compile and setup Monado yourself._ +> +> 1. Create a new "Lighthouse Driver" profile in Envision. +> 2. Change the "XR Service Repo" to `https://gitlab.freedesktop.org/PointerOffset/monado` +> 3. Change the "XR Service Branch" to `steamvr_lh-flipvr` +> 4. Build the profile. +> 5. Install the "Shiftall Controller Driver" from Steam if you haven't already: https://store.steampowered.com/app/3036810/Shiftall_Controller_Driver/ +> 6. Copy the contents of the "Shiftall Controller Drivers" folder to SteamVR's driver folder. The directory _must_ be named `shiftall`. +> +> For the last step, if everything is in the default locations, this command should get it copied: +> ``` +> cp -r ~/.local/share/Steam/steamapps/common/Shiftall\ Controller\ Drivers ~/.local/share/Steam/steamapps/common/SteamVR/drivers/shiftall +> ``` +> +> If everything went correctly, you should now have working FlipVR controllers through Monado. **If you're using this to run Resonite on Linux, you'll need to use _xrizer_ for your "OpenVR Compatibility" module.** +> +> If you try it, please let me know if it works and how it feels! I might need to adjust the controller offsets and I'd like to make it so you don't need to copy the Shiftall driver files. Hoping to try and get this merged into Monado sometime in the near-future though. Thank you if you give it a shot! diff --git a/content/docs/resonite/_index.md b/content/docs/resonite/_index.md index 8803fa0..5f85011 100644 --- a/content/docs/resonite/_index.md +++ b/content/docs/resonite/_index.md @@ -29,6 +29,10 @@ Currently, viseme analysis does not work on Linux due to Meta not providing a Li There is an experimental mod developed by the community that allows for viseme analysis under Linux - https://github.com/KyuubiYoru/VisemesAtHome. +## FlipVR controller support with Monado + +Currently there is an experimental Monado branch that works with Shiftall FlipVR controllers. Instructions can be found [here](/docs/fossvr/monado/flipvr/). At the time of writing, this branch is the only way to use FlipVR controllers with Resonite, as they are not supported even through SteamVR on Windows. + ## Mods Resonite has a thriving modding community with an abundance of [mods](https://wiki.resonite.com/Mods) that offer greater user experience, optimizations and new features. -- 2.49.1 From ecfe4dd15a41881791ab80d3fb43af4d11841862 Mon Sep 17 00:00:00 2001 From: coolGi Date: Tue, 26 Aug 2025 06:28:21 +0930 Subject: [PATCH 49/85] Update quickstart page for Bigscreen Beyond patch --- content/docs/steamvr/quick-start.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/steamvr/quick-start.md b/content/docs/steamvr/quick-start.md index 841c4cc..1b796b7 100644 --- a/content/docs/steamvr/quick-start.md +++ b/content/docs/steamvr/quick-start.md @@ -42,7 +42,7 @@ sudo setcap CAP_SYS_NICE=eip ~/.local/share/Steam/steamapps/common/SteamVR/bin/l **Vive Pro 2** will need the driver from here: [VivePro2-Linux-Driver on GitHub](https://github.com/CertainLach/VivePro2-Linux-Driver) -**Bigscreen Beyond** requires a patched kernel: [Bigscreen Beyond Kernel Patch](https://gist.githubusercontent.com/TayouVR/af8635a4b8e1d02d038be1be1d221c83/raw/3806a6ff0a03721904164277d7523d43f7ca383c/bigscreenBeyond.patch) +**Bigscreen Beyond** requires a patched kernel: for [<= 6.14](https://gist.github.com/galister/08cddf10ac18929647d5fb6308df3e4b/raw/0f6417b6cb069f19d6c28b730499c07de06ec413/combined-bsb-6-10.patch) and [>= 6.15](../../hardware/bigscreen-beyond-kernel-6.15.patch) For any of the above headsets with {{< icon name="nvidia" >}} Nvidia, you will get a smoother experience with Monado + OpenComposite (use Envision for easy setup), albeit this combo does not work with all VR titles. -- 2.49.1 From 5cec88cc63cadf3d212165f105c3839f6e7addac Mon Sep 17 00:00:00 2001 From: Naia Date: Thu, 28 Aug 2025 21:03:17 +0200 Subject: [PATCH 50/85] Add common issues with audio on Resonite --- content/docs/resonite/_index.md | 37 +++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/content/docs/resonite/_index.md b/content/docs/resonite/_index.md index 5f85011..3725a2b 100644 --- a/content/docs/resonite/_index.md +++ b/content/docs/resonite/_index.md @@ -29,6 +29,43 @@ Currently, viseme analysis does not work on Linux due to Meta not providing a Li There is an experimental mod developed by the community that allows for viseme analysis under Linux - https://github.com/KyuubiYoru/VisemesAtHome. +## Clipboard + +As of the splittening release, Resonite only supports copy/pasting text, and does not work at all in Flatpak Steam with Wayland [(issue)](https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5321). + +This mod provides full clipboard functionality, but only works on Wayland: https://github.com/GrandtheUK/ResoniteLinuxClipboard + +## Audio Issues + +Resonite uses SDL for audio on Linux, but the current implementation can be a bit flaky. + +In particular, the WiVRn microphone [is known to be glitchy](https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5260). + +It is recommended that you use PipeWire as your system's audio service, including its PulseAudio and ALSA support. + +The game will default to the PipeWire API if it can, falling back to the PulseAudio API. + +### Glitchy audio + +The most straightforward way to fix a glitchy microphone is to use SDL's ALSA driver with `SDL_AUDIO_DRIVER=alsa %command%` as the launch argument on Steam. + +If that doesn't work, you can try forcing the other drivers by specifying `pipewire` or `pulseaudio` instead of `alsa` in the above launch arguments. + +If you want to use the PulseAudio driver, you may need `SDL_AUDIO_DRIVER=pulseaudio PULSE_LATENCY_MSEC=15 PULSE_BUFFER_MSEC=250 PULSE_FRAGMENT_SIZE_MSEC=25 %command%` as the launch arguments. + +### Virtual audio sources/sinks + +To be able to chose a virtual sink, you have two options: + +1. Use `SDL_AUDIO_INCLUDE_MONITORS=1`, but this works with the PulseAudio driver *only* (add it next to your other env var in launch arguments). +2. Select any other source in Resonite, and manually connect the wanted input or output to Resonite's sink using a PipeWire graph GUI (e.g. Coppwr, Qwpgraph, Helvum) + +Do note that for the Audio Stream feature of Resonite, you'll need to select a different source that the one you are using as your microphone, or else SDL will **not** create a sink dedicated for it. If you only have one input, use the Steam voice option. + +### Flatpak + +The PipeWire driver is not supported by Steam Flatpak OOtB, see [this issue](https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5261#issuecomment-3228033460) if you need to use the PipeWire driver on Resonite in Steam Flatpak. + ## FlipVR controller support with Monado Currently there is an experimental Monado branch that works with Shiftall FlipVR controllers. Instructions can be found [here](/docs/fossvr/monado/flipvr/). At the time of writing, this branch is the only way to use FlipVR controllers with Resonite, as they are not supported even through SteamVR on Windows. -- 2.49.1 From 573f1f39b6cc670f14ce694f2fe6fbcc0b9ccf17 Mon Sep 17 00:00:00 2001 From: hypevhs <4498312-hypevhs@users.noreply.gitlab.com> Date: Fri, 5 Sep 2025 13:13:59 -0500 Subject: [PATCH 51/85] Outer Wilds: remove RTSP mention --- content/docs/games/outer-wilds-vr-mod/_index.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/content/docs/games/outer-wilds-vr-mod/_index.md b/content/docs/games/outer-wilds-vr-mod/_index.md index 97511ac..519ccb3 100644 --- a/content/docs/games/outer-wilds-vr-mod/_index.md +++ b/content/docs/games/outer-wilds-vr-mod/_index.md @@ -28,8 +28,6 @@ While in VR, if you have mods that add extra items in the main menu, they will b Currently, Proton 9 and above has an issue ([#8409](https://github.com/ValveSoftware/Proton/issues/8409)) causing NomaiVR to instantly crash on startup, only rendering the game window for a split second.\ The workaround is to just use Proton 8. -Do note that as Proton GE-RTSP is using the latest releases of Proton upstream, it will also not work until this issue is patched. - ### Default Quest/Pico 4 controller bindings only partially work with XRizer When playing the game with XRizer and you use Quest or Pico 4 Controllers, it is recommended to use [this custom bindings file](https://github.com/user-attachments/files/19900420/oculustouch.json) ([more info here](https://github.com/Raicuparta/nomai-vr/issues/558#issue-3018649448)). -- 2.49.1 From d573067a0a62b05205970358b653536484c2124b Mon Sep 17 00:00:00 2001 From: Shiloh Fen Date: Fri, 5 Sep 2025 15:13:08 -0500 Subject: [PATCH 52/85] Fedora Atomic: Remove plugins section AtomicXR's plugins are now compiled directly into Envision, so no extra steps are needed to register them. --- content/docs/distros/Fedora_Atomic.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/content/docs/distros/Fedora_Atomic.md b/content/docs/distros/Fedora_Atomic.md index 00c80aa..0740cc7 100644 --- a/content/docs/distros/Fedora_Atomic.md +++ b/content/docs/distros/Fedora_Atomic.md @@ -40,12 +40,6 @@ Launching Envision in build mode will start it inside of that container. To build profiles, right click Envision in your application menu and click "Launch in Build Mode". -### Plugins -AtomicXR can register [Plugins](/docs/fossvr/envision/#plugin-system) for all supported overlays & tools, so you don't need to manually add each one: -```sh -axr envision plugins register -``` - ## Overlays & Applications ### Install -- 2.49.1 From 0475e48557556d33cd377421c6a968e85fa9bd10 Mon Sep 17 00:00:00 2001 From: Shiloh Fen Date: Fri, 5 Sep 2025 15:18:12 -0500 Subject: [PATCH 53/85] Fedora Atomic: Add troubleshooting section --- content/docs/distros/Fedora_Atomic.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/content/docs/distros/Fedora_Atomic.md b/content/docs/distros/Fedora_Atomic.md index 0740cc7..05b8f50 100644 --- a/content/docs/distros/Fedora_Atomic.md +++ b/content/docs/distros/Fedora_Atomic.md @@ -56,6 +56,14 @@ A command is included to launch OscAvMgr and VrcAdvert together for you (use `op axr oscavmgr start ``` +## Troubleshooting + +See [this section](https://tangled.sh/@matrixfurry.com/atomic-xr#troubleshooting) in the README for the most up-to-date troubleshooting steps. + +### Envision Plugin download failed + +Plugins should be installed from the [AtomicXR Homebrew Tap](https://tangled.sh/@matrixfurry.com/homebrew-atomicxr) instead of Envision. Envision doesn't provide a way to download plugins via a command (yet). + ## Support You can open an issue on [Tangled](https://tangled.sh/@matrixfurry.com/atomic-xr/issues), ask questions in [this post](https://discord.com/channels/1065291958328758352/1389409336580767775) on the LVRA Discord, or reach out to [the maintainer](https://woosh.link/matrixfurry.com) directly. -- 2.49.1 From f5dd8634e98f03ccd35339d54ecd736160e3c7ab Mon Sep 17 00:00:00 2001 From: Shiloh Fen Date: Sat, 6 Sep 2025 04:26:15 -0500 Subject: [PATCH 54/85] Fedora Atomic: Use Cask to install WayVR Dashboard --- content/docs/distros/Fedora_Atomic.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/distros/Fedora_Atomic.md b/content/docs/distros/Fedora_Atomic.md index 05b8f50..97d4476 100644 --- a/content/docs/distros/Fedora_Atomic.md +++ b/content/docs/distros/Fedora_Atomic.md @@ -44,7 +44,7 @@ To build profiles, right click Envision in your application menu and click "Laun ### Install - [WlxOverlay-S](/docs/fossvr/wlxoverlay-s/): `brew install wlx-overlay-s` -- [WayVR Dashboard](/docs/fossvr/wlxoverlay-s/#wayvr-dashboard): `brew install wayvr-dashboard` +- [WayVR Dashboard](/docs/fossvr/wlxoverlay-s/#wayvr-dashboard): `brew install --cask wayvr-dashboard` - [Monado Tracking Origin Calibrator](/docs/fossvr/motoc/): `brew install motoc` - [OSC Avatar Manager](https://github.com/galister/oscavmgr): `brew install oscavmgr vrc-advert` -- 2.49.1 From 470dec62bc97e7adabef7fc9186dff537fc4bca3 Mon Sep 17 00:00:00 2001 From: notfranko_ Date: Tue, 9 Sep 2025 22:52:42 +0300 Subject: [PATCH 55/85] Update SlimeVR IMU Recommendation --- content/docs/slimevr/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/slimevr/_index.md b/content/docs/slimevr/_index.md index d7615d2..1099f8b 100644 --- a/content/docs/slimevr/_index.md +++ b/content/docs/slimevr/_index.md @@ -22,7 +22,7 @@ Alternatively you can build it on your own, and you have a few variants to choos - [Frozen Slimes V2](https://github.com/frosty6742/frozen-slimes-v2) - while a bit bigger, Frozen Slimes V2 tend to be cheaper and a lot easier to build, being approachable even for people that are inexperienced with soldering -It's generally **highly recommended** to opt for the more expensive but higher quality [BNO085](https://shop.slimevr.dev/products/slimevr-imu-module-bno085) IMU module. This should offer the highest quality tracking with best precision and minimal drifting. +The **current recommended** IMU Modules are the [ICM-45686](https://shop.slimevr.dev/products/slimevr-mumo-breakout-module-v1-icm-45686-qmc6309), [LSM6DSV](https://moffshop.deyta.de/products/lsm6dsv-module) and [LSM6DSR](https://moffshop.deyta.de/products/lsm6dsr), The ICM-45686 is currently considered the best IMU with a reset time of 45-60 minutes but is more expensive compared to the other options. If you're looking for a budget option, the LSM6DSR comes at around half the price of the others with reset times of 45-50 minutes. ## Installing SlimeVR Server -- 2.49.1 From 03b66e329159106be26a052540bb389d1d9f30a0 Mon Sep 17 00:00:00 2001 From: Myra Date: Tue, 9 Sep 2025 21:56:07 +0000 Subject: [PATCH 56/85] Add an entry for shader issues caused by `noexec` for unity --- content/docs/vrchat/unity.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/content/docs/vrchat/unity.md b/content/docs/vrchat/unity.md index 2128675..6684249 100644 --- a/content/docs/vrchat/unity.md +++ b/content/docs/vrchat/unity.md @@ -142,6 +142,18 @@ A dialog may appear upon trying to build an avatar, where none of the buttons ar This seems to happen consistently if the projects are stored on an EXFAT partition. Consider using another filesystem, such as NTFS if you still need projects accessible under both Windows and Linux. +### Built avatar appears non-stereoscopic to me and everyone else + +Ensure the filesystem your project is on has not been mounted with `noexec`. + +With `noexec`, the shader compilation plugin from VRCSDK will fail with a warning: + +> Plugins: Couldn't open /run/media/blahblahblah/MyProject/Packages/com.vrchat.base/Editor/VRCSDK/ShaderCompilerPlugin/Plugins/Linux/x86_64/libvrc_shader_compiler_plugin.so, error: [...]: failed to map segment from shared object + +Even though the plugin fails to load, the avatar will upload anyway, without including the Double Wide Rendering shader variants necessary for VR. + +The `noexec` mount option may also contribute to other issues such as being unable to run any binaries from inside the project, such as avatar patchers. + ### Crashing frequently with Nvidia On some systems running Nvidia graphics, the Unity Editor may crash frequently from common actions like importing a unitypackage or dragging a file. -- 2.49.1 From 04463f27472d7dcbee471d838107570d372eca5a Mon Sep 17 00:00:00 2001 From: galister <3123227-galister@users.noreply.gitlab.com> Date: Wed, 10 Sep 2025 02:06:30 +0000 Subject: [PATCH 57/85] wivrn: add note about xrizer not supporting FBT --- content/docs/fossvr/wivrn/_index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/docs/fossvr/wivrn/_index.md b/content/docs/fossvr/wivrn/_index.md index 65eeef8..27c3baf 100644 --- a/content/docs/fossvr/wivrn/_index.md +++ b/content/docs/fossvr/wivrn/_index.md @@ -143,6 +143,8 @@ This section covers using WiVRn 0.19 and newer with any Lighthouse-tracked devic You must have SteamVR installed (no need to run it). +Upstream xrizer doesn't support FBT, so either **select OpenComposite as the OpenVR library** in WiVRn dashboard settings, or build the [experimental2 branch of xrizer](https://github.com/RinLovesYou/xrizer/tree/experimental2). + ### Using Distro-Native Packages These packages come with lighthouse support enabled (Flatpak & Envision does NOT) -- 2.49.1 From 2f7cf865c6fbb756c0381affa2ecc50de7dd3a2a Mon Sep 17 00:00:00 2001 From: galister <3123227-galister@users.noreply.gitlab.com> Date: Wed, 10 Sep 2025 02:58:41 +0000 Subject: [PATCH 58/85] wivrn: emphasize alternative options --- content/docs/fossvr/wivrn/_index.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/content/docs/fossvr/wivrn/_index.md b/content/docs/fossvr/wivrn/_index.md index 27c3baf..397b250 100644 --- a/content/docs/fossvr/wivrn/_index.md +++ b/content/docs/fossvr/wivrn/_index.md @@ -102,7 +102,7 @@ Manual steps: See the [README](https://github.com/WiVRn/WiVRn/blob/master/README To use SlimeVR trackers through WiVRn, you currently must use a [fork](https://github.com/notpeelz/WiVRn) of WiVRn: -### Usage with Envision +### Option A: Build with Envision To use this fork within Envision, edit these fields in your profile: - XR Service Repo: `https://github.com/notpeelz/WiVRn.git` @@ -111,7 +111,7 @@ To use this fork within Envision, edit these fields in your profile: Then save and clean build the profile. -### NixOS setup +### Option B: NixOS Override the `wivrn` package from nixpkgs with something resembling the following, replacing `[COMMIT HASH HERE]` with the latest commit hash from https://github.com/notpeelz/WiVRn/commits/solarxr-patches and filling in the correct src hash. Do note you may need to adapt this depending on how you install WiVRn: ```nix { pkgs, lib, ... }: @@ -145,7 +145,7 @@ You must have SteamVR installed (no need to run it). Upstream xrizer doesn't support FBT, so either **select OpenComposite as the OpenVR library** in WiVRn dashboard settings, or build the [experimental2 branch of xrizer](https://github.com/RinLovesYou/xrizer/tree/experimental2). -### Using Distro-Native Packages +### Option A: Use Distro-Native Packages These packages come with lighthouse support enabled (Flatpak & Envision does NOT) - Arch: Install `wivrn-dashboard wivrn-server` from AUR @@ -156,7 +156,7 @@ Open the WiVRn dashboard and under advanced settings, tick `Enable SteamVR track Warning: distro-native packages are known to have issues with Flatpak Steam. -### Envision +### Option B: Build using Envision Set WiVRn Profile as such: - XR Service CMake Flags: - `WIVRN_FEATURE_STEAMVR_LIGHTHOUSE=ON` @@ -166,7 +166,7 @@ Set WiVRn Profile as such: Perform a **Clean Build** after changing the CMake flags! -### NixOS +### Option C: NixOS Override the `wivrn` package and launch wivrn-server with the required environment variables: ```nix { @@ -186,7 +186,7 @@ Override the `wivrn` package and launch wivrn-server with the required environme } ``` -### Manual +### Option D: Manual Build Simply pass `-DWIVRN_FEATURE_STEAMVR_LIGHTHOUSE=ON` to CMake and export the above environment variables before starting `wivrn-server`. ### Usage tips -- 2.49.1 From 418bc4a276db4981fe378d07dad1f42cb3410337 Mon Sep 17 00:00:00 2001 From: Supreeeme Date: Wed, 17 Sep 2025 03:20:37 +0000 Subject: [PATCH 59/85] Document downloading Windows SteamVR via SteamCMD Also mention that firmware updates don't work for the Bigscreen Beyond Utility --- .../other/bigscreen-beyond-driver/_index.md | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/content/docs/other/bigscreen-beyond-driver/_index.md b/content/docs/other/bigscreen-beyond-driver/_index.md index 9968f9d..4b5cd17 100644 --- a/content/docs/other/bigscreen-beyond-driver/_index.md +++ b/content/docs/other/bigscreen-beyond-driver/_index.md @@ -8,9 +8,29 @@ title: Bigscreen Beyond Driver You can get the "Bigscreen Beyond Driver" app from Steam working via Proton by following these instructions: 1. use a Proton version >=10 that has access to `PROTON_ENABLE_HIDRAW` env var; `Proton Experimental [bleeding-edge]` works well 2. set `PROTON_ENABLE_HIDRAW=0x35BD/0x0101 %command%` as your launch arg for the `Bigscreen Beyond Driver` under `Properties` -3. OPTIONAL: copy a SteamVR Windows install somewhere in the prefix (ie: C/ root) under appid 2467050 and when the driver is open, set the SteamVR path to where you placed the Windows install of SteamVR +3. OPTIONAL: download/copy a SteamVR Windows install somewhere and when the driver is open, set the SteamVR path to where you placed the Windows install of SteamVR -The "Bigscreen Beyond Driver" and all of its features should be working fine after doing the above! +The "Bigscreen Beyond Driver" and most of its features should be working fine after doing the above! + +Note that currently firmware updates do not work. + +## Download Windows SteamVR via SteamCMD +You can easily downlwad the Windows version of SteamVR via SteamCMD. To do this: +1. [Download SteamCMD](https://developer.valvesoftware.com/wiki/SteamCMD#Linux) +2. Run this command somewhere you can create directories (i.e., your home directory): +```sh +mkdir steamvr_win && steamcmd +@ShutdownOnFailedCommand 1 \ + +@sSteamCmdForcePlatformType windows \ + +force_install_dir $(realpath steamvr_win) \ + +login anonymous \ + +app_update 250820 validate \ + +quit +``` +This will: +- Create a directory in the current directory named `steamvr_win` +- Download and validate Windows SteamVR into it. + +Note: your home directory is accessible under `Z:\home` by default in Proton. ## Easier Device Mode Swapping -- 2.49.1 From 5957c211b2f8986a1f011e9259f627dfbf7b601b Mon Sep 17 00:00:00 2001 From: Alicja Michalska Date: Sun, 21 Sep 2025 21:46:28 +0200 Subject: [PATCH 60/85] Document Direct Display Mode/Wired HMDs on Intel Arc GPUs. --- content/docs/hardware/_index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/content/docs/hardware/_index.md b/content/docs/hardware/_index.md index 455776b..e5074e0 100644 --- a/content/docs/hardware/_index.md +++ b/content/docs/hardware/_index.md @@ -26,6 +26,9 @@ title: VR Gear & GPUs **Notes:** - **Nvidia Wired VR Workaround**: Wired users should certainly set `XRT_COMPOSITOR_USE_PRESENT_WAIT` to 1 which changes the swapchain to explicit sync behavior and `U_PACING_COMP_TIME_FRACTION_PERCENT` to 90, representing 90% of the time it takes to render a frame can significantly reduce the latency effect with Nvidia GPUs. There are notable frametime issues in the driver still which may result in stutter but this should vastly improve the experience. - For Nvidia proprietary drivers *older* than 565, (please try to update!), the [vulkan-layers](https://gitlab.freedesktop.org/monado/utilities/vulkan-layers) must be installed in order to not crash: [*AUR*](https://aur.archlinux.org/packages/monado-vulkan-layers-git)・[*Fedora*](https://packages.fedoraproject.org/pkgs/monado-vulkan-layers/monado-vulkan-layers/) +- Wired HMDs on Intel Arc GPUs: Only DisplayPort-based HMDs work, only with i915 driver. Tested: A580, A770 with HP Reverb G2 (OK), Acer AH101 (FAIL). + - Direct Display Mode doesn't work with HDMI-based HMDs. + - Xe driver currently doesn't support Direct Display Mode at all. - Audio over DisplayPort is known to temporarily cut out whenever new audio sources spring up on PipeWire [without a fix to add ALSA headroom](https://wiki.archlinux.org/title/PipeWire#Audio_cutting_out_when_multiple_streams_start_playing). - This fix's default values adds a lot of audio latency to the entire system. If you're someone who is sensitive to audio latency, you can try changing period-size=64 and headroom=512. If audio continues to cut off, double these values. - Also, this fix will change the latency of _all_ audio output devices. To tweak the audio output latency of your HMD _only_, which is usually sufficient to prevent cutouts, use `pactl list sinks` to identify the Sink Name that your HMD is currently connected to, and edit the headroom fix file by changing the `node.name`. -- 2.49.1 From fbc53ec4fa514cad57dfd10eb49eabfcd4c3f7b1 Mon Sep 17 00:00:00 2001 From: Baplar Date: Sat, 27 Sep 2025 03:04:10 +0200 Subject: [PATCH 61/85] Resonite: Remove section about visemes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now that they’re officially supported, there’s no longer any need for a mod. --- content/docs/resonite/_index.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/content/docs/resonite/_index.md b/content/docs/resonite/_index.md index 3725a2b..ae51718 100644 --- a/content/docs/resonite/_index.md +++ b/content/docs/resonite/_index.md @@ -23,12 +23,6 @@ In August 2025, Resonite updated to run FrooxEngine as a native Linux process, w Resonite is typically GPU-bottlenecked. Lowering the resolution may help. This can be easily done by prepending `OXR_VIEWPORT_SCALE_PERCENTAGE=75` to Resonite's launch options. Experiment with different values to find your preferred balance between performance and quality. -## Visemes - -Currently, viseme analysis does not work on Linux due to Meta not providing a Linux native build of OVRLipSync (https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5151#issuecomment-3170453491) - -There is an experimental mod developed by the community that allows for viseme analysis under Linux - https://github.com/KyuubiYoru/VisemesAtHome. - ## Clipboard As of the splittening release, Resonite only supports copy/pasting text, and does not work at all in Flatpak Steam with Wayland [(issue)](https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5321). -- 2.49.1 From 88c0639109f0bf6495304a0879d7b58a4d87445d Mon Sep 17 00:00:00 2001 From: Glax Date: Wed, 1 Oct 2025 02:03:59 +0000 Subject: [PATCH 62/85] Beatsaber --- content/docs/games/beatsaber/_index.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 content/docs/games/beatsaber/_index.md diff --git a/content/docs/games/beatsaber/_index.md b/content/docs/games/beatsaber/_index.md new file mode 100644 index 0000000..4237590 --- /dev/null +++ b/content/docs/games/beatsaber/_index.md @@ -0,0 +1,13 @@ +--- +title: Beat Saber +weight: 50 +--- + +# Beat Saber + +[Beat Saber](https://store.steampowered.com/app/620980/Beat_Saber/) runs under Proton without issue. + +## Modding + +[BSManager](https://github.com/Zagrios/bs-manager) is a one-stop modding solution for Beat Saber modding under linux. [Installation instructions](https://github.com/Zagrios/bs-manager/wiki/install-bsmanager-on-linux) + -- 2.49.1 From 4d0f3332837d601706bc73c2c0bedaf2015e30b3 Mon Sep 17 00:00:00 2001 From: Glax Date: Wed, 1 Oct 2025 16:15:07 +0000 Subject: [PATCH 63/85] Instructions to fix desktop freezing when launching SteamVR --- content/docs/hardware/_index.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/content/docs/hardware/_index.md b/content/docs/hardware/_index.md index e5074e0..17b2b0b 100644 --- a/content/docs/hardware/_index.md +++ b/content/docs/hardware/_index.md @@ -115,6 +115,16 @@ A non-comprehensive table of various VR/XR devices and the drivers that support - Eyetrack VR and Project Babble will both be implemented through [oscavmgr](https://github.com/galister/oscavmgr) to emit proper unified flexes over OSC. - Tracking technologies can be mixed Monado/WiVRn by using [motoc](https://github.com/galister/motoc). +### Desktop hangs on start of SteamVR or Monado + +Symptoms: +- When starting the SteamVR or Monado for the first time, the desktop freezes and after 15 seconds the SteamVR window is open but the Headset does not show a picture. + - Restarting SteamVR solves this. + - Unplugging the headset and plugging it back in solves this. +- `dmesg | grep amdgpu` prints a line containing `ERROR dc_stream_state is NULL for crtc '1'!` (or some other number). + +This is a regression with the current RADV driver. A kernel patch is available [on this GitLab issue](https://gitlab.freedesktop.org/drm/amd/-/issues/1856#note_2836580). See the section on [how to apply a kernel patch](#applying-a-kernel-patch-for-vive-pro-2-bigscreen-beyond-pimax). + ## Applying a kernel patch (for Vive Pro 2, Bigscreen Beyond, Pimax) ### Arch -- 2.49.1 From d54462818272a1b2b4c353927acb3ec00a8476d0 Mon Sep 17 00:00:00 2001 From: Krzeszny Date: Sat, 4 Oct 2025 19:05:19 +0000 Subject: [PATCH 64/85] Troubleshooting steps for Resonite crashing on launch --- content/docs/resonite/_index.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/content/docs/resonite/_index.md b/content/docs/resonite/_index.md index ae51718..cbcf7ac 100644 --- a/content/docs/resonite/_index.md +++ b/content/docs/resonite/_index.md @@ -88,12 +88,29 @@ Resonite's renderer is known to randomly crash suddenly - this is currently trac There is also a known memory leak when running the renderer on Linux - however, it is uncertain currently whether this is an issue with Proton or there is something else at play - see https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5246. -### OpenComposite +### Crash on launching in VR mode Currently, OpenComposite is known to crash Resonite when used in VR, so attempting to use OpenComposite for Resonite is not recommended. +Symptoms: +- Crashes only in VR mode, where after several seconds a black window appears and closes briefly, then Resonite stops within approximately 30 seconds. +- The normal log file shows a renderer crash: `RendererProcess has exited. Shutting down.`. There's a Player.log file. + See https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5152 for more information. +### Crash on launching in desktop & VR mode + +Proton data can get corrupted, which will result in consistent crashes on launch. This only applies if you've already replaced OpenComposite (see above). + +The symptoms are: +- Crashes 2 seconds from launch in desktop mode (and in VR) +- No log files (no main log, no Player.log, no crash log, no proton log with PROTON_LOG=1, only the boostrapper log) +- It may be accompanied by error windows if you're using a mod loader. + +Navigate to compatdata in the folder above Resonite's folder (by default `.local/share/Steam/steamapps/compatdata/`) and delete the `2519830` folder; it will regenerate on the next launch. Then verify the integrity of Resonite files in Steam (right-click Resonite and go to Properties>Installed Files>Verify). + +It may be enough to just verify file integrity in some cases. + ### Crash on loading into a world with video players On GE-Proton9-10 (for example), loading into a world with e.g. a YouTube video or live stream can crash the game. Try using the latest GE-Proton-RTSP release. -- 2.49.1 From 1d9a82929d3acfb650058eee288fe230734c7459 Mon Sep 17 00:00:00 2001 From: Glax Date: Sun, 5 Oct 2025 23:16:53 +0000 Subject: [PATCH 65/85] Assetto corsa --- content/docs/games/assetto-corsa/_index.md | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 content/docs/games/assetto-corsa/_index.md diff --git a/content/docs/games/assetto-corsa/_index.md b/content/docs/games/assetto-corsa/_index.md new file mode 100644 index 0000000..bc0b0b9 --- /dev/null +++ b/content/docs/games/assetto-corsa/_index.md @@ -0,0 +1,28 @@ +--- +title: Assetto Corsa +weight: 50 +--- + +# Assetto Corsa + +[Assetto Corsa](https://store.steampowered.com/app/244210/Assetto_Corsa/) runs with [Proton](https://www.protondb.com/app/244210). + +## Content Manager + +The most commonly used method to load custom content is [Content Manager](https://assettocorsa.club/content-manager.html). + +Download the executable and place it in `~/.steam/steam/steamapps/common/assettocorsa/` as `Content Manager Safe.exe`. + +In Steam, create the following launch-option: +``` +'~/.steam/steam/steamapps/common/Proton - Experimental/proton' waitforexitandrun '~/.steam/steam/steamapps/common/assettocorsa/Content Manager Safe.exe'; echo %command% +``` +Optionally replace `~/.steam/steam/steamapps/common/Proton - Experimental/proton` with the path to another Proton executable. + +### Content + +All custom content is located in `~/.steam/steam/steamapps/common/assettocorsa/content/`. + +#### Settings/Further Reading + +[raptyyy's AC VR Guide](https://raptyyy.github.io/vr-guide/#/README) \ No newline at end of file -- 2.49.1 From 99c067b57cdadf148588901452ad8b1d6271594f Mon Sep 17 00:00:00 2001 From: hypevhs <4498312-hypevhs@users.noreply.gitlab.com> Date: Wed, 8 Oct 2025 02:20:25 -0500 Subject: [PATCH 66/85] hardware: mark Nvidia 10xx as acceptable --- content/docs/hardware/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/hardware/_index.md b/content/docs/hardware/_index.md index 17b2b0b..17774d7 100644 --- a/content/docs/hardware/_index.md +++ b/content/docs/hardware/_index.md @@ -14,7 +14,7 @@ title: VR Gear & GPUs | Manufacturer/ Hardware | Driver | VR Support | Reprojection Support | Hybrid Graphics Support | Notes | |--------------|---------------------------|----------------|--------------------------------|-------------------------------|----------------------------------------------------------------------------------------------| | Nvidia >= 16XX Series GPU | Nvidia (Open Module) | ✅ Acceptable | ⚠️ Partial | ✅ Supported | Requires driver version 565+. [Critical DRM lease issue](https://forums.developer.nvidia.com/t/substantial-drm-lease-presentation-latency-resulting-in-unusable-vr-hmd-experience/332386) causes uncomfortable latency in wired VR, requires runtime mitigation found below support table. Best used with wireless solutions (WiVRn). Works for wired VR. | -| Nvidia <= 10XX Series GPU | Nvidia (Closed Source Module) | ⚡ No wired VR | ⚠️ Partial | ✅ Supported | Requires driver version 565+. Best used with wireless solutions (WiVRn). [No wired VR support.](https://forums.developer.nvidia.com/t/nvidia-proprietary-non-open-modules-completely-unable-to-acquire-a-drm-lease-on-any-display-server-all-known-nvidia-drivers-any-hardware/341244) | +| Nvidia <= 10XX Series GPU | Nvidia (Closed Source Module) | ✅ Acceptable | ⚠️ Partial | ✅ Supported | Requires driver version 565+. Best used with wireless solutions (WiVRn). [No wired VR support.](https://forums.developer.nvidia.com/t/nvidia-proprietary-non-open-modules-completely-unable-to-acquire-a-drm-lease-on-any-display-server-all-known-nvidia-drivers-any-hardware/341244) | | Nvidia/ Any | Nouveau (Open Source) | ⚠️ Limited | ❌ Not Viable | ✅ Supported | Cannot reproject due to lack of realtime compute shader support needed by Monado. Lacks DisplayPort audio. Not recommended for VR. | | AMD RDNA generation GPU | RADV (Open Source) | ✅ Excellent | ✅ Robust (RDNA+) | ✅ Supported | Recommended for wired VR. | | AMD GCN generation GPU | RADV (Open Source) | ✅ Excellent | ⚠️ Limited | ✅ Supported | Not recommended for wired VR. Pre-RDNA GPUs have functional but less robust reprojection. | -- 2.49.1 From 8ae5688725d3ec8e5378071c3f6d8016b5e53abf Mon Sep 17 00:00:00 2001 From: hypevhs <4498312-hypevhs@users.noreply.gitlab.com> Date: Wed, 8 Oct 2025 02:24:02 -0500 Subject: [PATCH 67/85] hardware: 10xx can't Index --- content/docs/hardware/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/hardware/_index.md b/content/docs/hardware/_index.md index 17774d7..3a33ac0 100644 --- a/content/docs/hardware/_index.md +++ b/content/docs/hardware/_index.md @@ -14,7 +14,7 @@ title: VR Gear & GPUs | Manufacturer/ Hardware | Driver | VR Support | Reprojection Support | Hybrid Graphics Support | Notes | |--------------|---------------------------|----------------|--------------------------------|-------------------------------|----------------------------------------------------------------------------------------------| | Nvidia >= 16XX Series GPU | Nvidia (Open Module) | ✅ Acceptable | ⚠️ Partial | ✅ Supported | Requires driver version 565+. [Critical DRM lease issue](https://forums.developer.nvidia.com/t/substantial-drm-lease-presentation-latency-resulting-in-unusable-vr-hmd-experience/332386) causes uncomfortable latency in wired VR, requires runtime mitigation found below support table. Best used with wireless solutions (WiVRn). Works for wired VR. | -| Nvidia <= 10XX Series GPU | Nvidia (Closed Source Module) | ✅ Acceptable | ⚠️ Partial | ✅ Supported | Requires driver version 565+. Best used with wireless solutions (WiVRn). [No wired VR support.](https://forums.developer.nvidia.com/t/nvidia-proprietary-non-open-modules-completely-unable-to-acquire-a-drm-lease-on-any-display-server-all-known-nvidia-drivers-any-hardware/341244) | +| Nvidia <= 10XX Series GPU | Nvidia (Closed Source Module) | ✅ Acceptable | ⚠️ Partial | ✅ Supported | Requires driver version 565+. [No Valve Index support.](https://forums.developer.nvidia.com/t/nvidia-proprietary-non-open-modules-completely-unable-to-acquire-a-drm-lease-on-any-display-server-all-known-nvidia-drivers-any-hardware/341244) | | Nvidia/ Any | Nouveau (Open Source) | ⚠️ Limited | ❌ Not Viable | ✅ Supported | Cannot reproject due to lack of realtime compute shader support needed by Monado. Lacks DisplayPort audio. Not recommended for VR. | | AMD RDNA generation GPU | RADV (Open Source) | ✅ Excellent | ✅ Robust (RDNA+) | ✅ Supported | Recommended for wired VR. | | AMD GCN generation GPU | RADV (Open Source) | ✅ Excellent | ⚠️ Limited | ✅ Supported | Not recommended for wired VR. Pre-RDNA GPUs have functional but less robust reprojection. | -- 2.49.1 From 74709faffdf91ad6b69d78e07c26cb6fc83e6de6 Mon Sep 17 00:00:00 2001 From: Bones Date: Thu, 16 Oct 2025 03:35:38 +0000 Subject: [PATCH 68/85] fix: warn not to use Envision in place of WiVRn distribution --- content/docs/fossvr/envision/_index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/docs/fossvr/envision/_index.md b/content/docs/fossvr/envision/_index.md index 1fff795..e786229 100644 --- a/content/docs/fossvr/envision/_index.md +++ b/content/docs/fossvr/envision/_index.md @@ -13,6 +13,10 @@ title: Envision Envision is a graphical app that acts as an orchestrator to get a full [Monado](/docs/fossvr/monado/) or [WiVRn](/docs/fossvr/wivrn/) setup up and running with a few clicks. +{{% hint danger %}} +**Do not** use Envision for WiVRn directly unless you absolutely need it to access experimental patches. See [WiVRn](/docs/fossvr/wivrn/) as WiVRn has it's own GUI much more suited to itself than Envision and may be installed via Flatpak, AUR, or Fedora repos. +{{% /hint %}} + Envision attempts to construct a working runtime with both a native OpenXR and an OpenVR API, provided by [OpenComposite](/docs/fossvr/opencomposite/), for client aplications to utilize. 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). {{% hint danger %}} -- 2.49.1 From 67122b835bcaa3482444d04b879cd8c1f4558985 Mon Sep 17 00:00:00 2001 From: Bones Date: Thu, 16 Oct 2025 03:38:53 +0000 Subject: [PATCH 69/85] fix: update fbt branches for xrizer --- content/docs/fossvr/xrizer.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/docs/fossvr/xrizer.md b/content/docs/fossvr/xrizer.md index 28f9abf..c6d282f 100644 --- a/content/docs/fossvr/xrizer.md +++ b/content/docs/fossvr/xrizer.md @@ -20,7 +20,7 @@ title: xrizer If you would like a battle-tested solution, see [OpenComposite](/docs/fossvr/opencomposite/). {{% /hint %}} -Currently xrizer does not support full body tracking, however there is a **work-in-progress** [fork by RinLovesYou](https://github.com/RinLovesYou/xrizer/tree/experimental2) with support while using Monado. +Currently xrizer does not support full body tracking, however there is a **work-in-progress** [fork by RinLovesYou, maintained by Mr-Zero88](https://github.com/Mr-Zero88/xrizer/tree/fbt) with support while using Monado. To use the above fork, follow these steps: @@ -28,8 +28,8 @@ To use the above fork, follow these steps: - Click the three dots next to the profile selector and select 'Edit profile' - If a popup asks if you would like to duplicate the profile, click yes. - Scroll down to 'OpenVR Compatibility' and set the following fields: - - OpenVR Compatibility Repo: `https://github.com/RinLovesYou/xrizer.git` - - OpenVR Compatibility Branch: `experimental2` + - OpenVR Compatibility Repo: `https://github.com/Mr-Zero88/xrizer.git` + - OpenVR Compatibility Branch: `fbt` - Clean build your profile from the menu at the top right, or use the Ctrl+F5 keybind. ### NixOS -- 2.49.1 From 2a215d33c00b0e1abf3665a229942145523da331 Mon Sep 17 00:00:00 2001 From: kzd Date: Fri, 17 Oct 2025 17:36:08 -0400 Subject: [PATCH 70/85] Bsb2e baballonia guide --- .../other/bigscreen-beyond-driver/_index.md | 72 ++++++++++++++++++- 1 file changed, 70 insertions(+), 2 deletions(-) diff --git a/content/docs/other/bigscreen-beyond-driver/_index.md b/content/docs/other/bigscreen-beyond-driver/_index.md index 4b5cd17..35f6e34 100644 --- a/content/docs/other/bigscreen-beyond-driver/_index.md +++ b/content/docs/other/bigscreen-beyond-driver/_index.md @@ -12,7 +12,7 @@ You can get the "Bigscreen Beyond Driver" app from Steam working via Proton by f The "Bigscreen Beyond Driver" and most of its features should be working fine after doing the above! -Note that currently firmware updates do not work. +Note that currently eye camera firmware loading and updates do not work, but HMD firmware updates do work. ## Download Windows SteamVR via SteamCMD You can easily downlwad the Windows version of SteamVR via SteamCMD. To do this: @@ -38,4 +38,72 @@ You can also swap modes more easily without using the "Bigscreen Beyond Driver" 1. `XRT_COMPOSITOR_DESIRED_MODE=0` is the 75hz mode 2. `XRT_COMPOSITOR_DESIRED_MODE=1` is the 90hz mode -You can verify which modes are which by using a tool like `xrandr` with the HMD plugged in. The top two modes are the relevant ones used here and are listed in order, starting at an index of 0. \ No newline at end of file +You can verify which modes are which by using a tool like `xrandr` with the HMD plugged in. The top two modes are the relevant ones used here and are listed in order, starting at an index of 0. + +## Bigscreen Beyond 1/2/2e `udev` Rules + +You may need these udev rules (ie: in `/etc/udev/rules.d/`) for full functionality. + +```udev +# Bigscreen Beyond +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="0101", MODE="0660", TAG+="uaccess" +# Bigscreen Bigeye +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="0202", MODE="0660", TAG+="uaccess" +# Bigscreen Beyond Audio Strap +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="0105", MODE="0660", TAG+="uaccess" +# Bigscreen Beyond Firmware Mode? +KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct}=="4004", MODE="0660", TAG+="uaccess" +``` + +## Bigscreen Beyond 2e Eyetracking via Baballonia under Linux + +### Requirements: + * Windows 10/11 dual-boot availability or separate Windows 10/11 machine + * Some form of re-streaming the Bigeye camera to bypass broken `v4l`/`uvcvideo` default drivers; `libuvc` is known to work, as does `cameractls` for viewing the cameras as well + * ie: `go-bsb-cams` modified from `garymcbay/mjpeg` for this purpose by @lillia + +To have functioning eyetracking while using a Bigscreen Beyond 2e under Linux, you will currently need to supplement the Baballonia portion of the software stack via Proton. + +The full stack can be pictured as such: +```mermaid +graph TB + E[Bigscreen Beyond 2e]-->F + F[Bigscreen Bigeye]-->A + E-->M[Monado] + M-->O[OpenComposite] + M-->X[XRizer] + O-->D + X-->D + A[go-bsb-cams using libuvc] --> B[Baballonia.Desktop.exe] --> C[VRCFT.Avalonia] --> D[VRChat/etc.] + subgraph Linux Native + A + C + E + F + M + O + X + end + subgraph Proton/Wine + B + D + end +``` + +`go-bsb-cams` can be found here: https://github.com/LilliaElaine/go-bsb-cams + +`Baballonia` releases can be found here: https://github.com/Project-Babble/Baballonia/releases + +`VRCFT.Avalonia` releases can be found here: https://github.com/dfgHiatus/VRCFaceTracking.Avalonia/releases + +You will need to boot into Windows and use `Baballonia.Desktop` there in order to train any and all models as needed so that you can then transfer them over to your Linux filesystem. They are typically stored at `%APPDATA%/Roaming/ProjectBabble/Models` on Windows and can be loaded from wherever you like via the `Babbalonia.Desktop` GUI. + +Then you can start `Baballonia.Desktop.exe` via `Proton` as a "non-steam game" and tell it to load your pre-trained model, the `Baballonia` setup executable can be run first and then you'll want to point the Steam Library entry to the proper `Baballonia.Desktop.exe` afterwards for future launches. + +**NOTE:** You'll need to disable `GPU Acceleration` for it to track the full volume as it seems to be weirdly clamped while `GPU Acceleration` is enabled under `Proton`. + +`Baballonia.Desktop` can be given the `http://127.0.0.1:8080/stream` endpoints for each camera if you're using `go-bsb-cams` to load the cameras. You'll need to adjust cropping and brightness for the cameras as necessary, but it should allow you to easily select the whole left/right areas automatically for the Bigeye in particular. + +Ensure `Baballonia.Desktop` is set to provide `Eye` or `Both` tracking to `VRCFT.Avalonia`, alongside the `Native OSC` option if desired, and then launch `VRCFT.Avalonia`. If successful, you should see some small transfers of data, assuming the `VRCFT-Babble` module is loaded in `VRCFT.Avalonia`. + +Assuming all goes well, you should be able to see OSC data coming in with it enabled after launching VRChat under `Proton`. Avatar parameters should load into `VRCFT.Avalonia` and you should see both send/receive values for data rates at this point alongside live results within VRChat itself. \ No newline at end of file -- 2.49.1 From 5d79df68d3daa02e1190cb37275d4511ca868f9b Mon Sep 17 00:00:00 2001 From: hypevhs <4498312-hypevhs@users.noreply.gitlab.com> Date: Fri, 17 Oct 2025 16:41:16 -0500 Subject: [PATCH 71/85] xrizer: switch FBT branch --- content/docs/fossvr/xrizer.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/content/docs/fossvr/xrizer.md b/content/docs/fossvr/xrizer.md index c6d282f..f902b6c 100644 --- a/content/docs/fossvr/xrizer.md +++ b/content/docs/fossvr/xrizer.md @@ -28,8 +28,8 @@ To use the above fork, follow these steps: - Click the three dots next to the profile selector and select 'Edit profile' - If a popup asks if you would like to duplicate the profile, click yes. - Scroll down to 'OpenVR Compatibility' and set the following fields: - - OpenVR Compatibility Repo: `https://github.com/Mr-Zero88/xrizer.git` - - OpenVR Compatibility Branch: `fbt` + - OpenVR Compatibility Repo: `https://github.com/Mr-Zero88-FBT/xrizer.git` + - OpenVR Compatibility Branch: `experimental2` - Clean build your profile from the menu at the top right, or use the Ctrl+F5 keybind. ### NixOS @@ -41,9 +41,9 @@ Apply an overlay over nixpkgs to override the xrizer src: (final: prev: { xrizer = prev.xrizer.overrideAttrs { src = final.fetchFromGitHub { - owner = "RinLovesYou"; + owner = "Mr-Zero88-FBT"; repo = "xrizer"; - # IMPORTANT: Fill the below field with the latest commit hash from https://github.com/RinLovesYou/xrizer/commits/experimental2 (click the Copy full SHA button on the right side) + # IMPORTANT: Fill the below field with the latest commit hash from https://github.com/Mr-Zero88-FBT/xrizer/commits/experimental2 (click the Copy full SHA button on the right side) rev = ""; # IMPORTANT: Replace the below field with the correct hash, the error when building with this empty will give you the expected hash. hash = ""; -- 2.49.1 From 2aea1d50fe393983cabe64d5918731fb29f895f3 Mon Sep 17 00:00:00 2001 From: hypevhs <4498312-hypevhs@users.noreply.gitlab.com> Date: Fri, 17 Oct 2025 16:48:53 -0500 Subject: [PATCH 72/85] xrizer: switch FBT branch pt2 --- content/docs/fossvr/xrizer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/fossvr/xrizer.md b/content/docs/fossvr/xrizer.md index f902b6c..c6913c2 100644 --- a/content/docs/fossvr/xrizer.md +++ b/content/docs/fossvr/xrizer.md @@ -20,7 +20,7 @@ title: xrizer If you would like a battle-tested solution, see [OpenComposite](/docs/fossvr/opencomposite/). {{% /hint %}} -Currently xrizer does not support full body tracking, however there is a **work-in-progress** [fork by RinLovesYou, maintained by Mr-Zero88](https://github.com/Mr-Zero88/xrizer/tree/fbt) with support while using Monado. +Currently xrizer does not support full body tracking, however there is a **work-in-progress** [fork by RinLovesYou, maintained by Mr-Zero88](https://github.com/Mr-Zero88-FBT/xrizer/tree/experimental2) with support while using Monado. To use the above fork, follow these steps: -- 2.49.1 From cb879b08bbb58f9ad1b59ddf130388a008ec36bb Mon Sep 17 00:00:00 2001 From: hypevhs <4498312-hypevhs@users.noreply.gitlab.com> Date: Fri, 17 Oct 2025 16:53:40 -0500 Subject: [PATCH 73/85] unity: remove dead link --- content/docs/vrchat/unity.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/content/docs/vrchat/unity.md b/content/docs/vrchat/unity.md index 6684249..9615aab 100644 --- a/content/docs/vrchat/unity.md +++ b/content/docs/vrchat/unity.md @@ -106,7 +106,8 @@ Rather than using Assets -> Import New Asset or Import Package, it's normally po However, if your file browser is running on Wayland, this will show "Failed copying file" errors. -See issue [flathub/com.unity.UnityHub#97](https://github.com/flathub/com.unity.UnityHub/issues/97). + + As a workaround, launch your file browser in Xwayland mode. Unity will accept the file as it should. -- 2.49.1 From b3f0c90fbd7d01c21598395767571b6b10d8aec4 Mon Sep 17 00:00:00 2001 From: hypevhs <4498312-hypevhs@users.noreply.gitlab.com> Date: Fri, 17 Oct 2025 16:57:27 -0500 Subject: [PATCH 74/85] htmltest: ignore npmjs --- .htmltest.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.htmltest.yml b/.htmltest.yml index bad192a..b5fad6a 100644 --- a/.htmltest.yml +++ b/.htmltest.yml @@ -11,6 +11,7 @@ IgnoreURLs: # Blocks bots: - "https://www.pcgamingwiki.com/" - "https://steamdb.info/" +- "https://www.npmjs.com/" # IgnoreDirs: # - "lib" CacheExpires: "6h" -- 2.49.1 From bedce32c2cccb176d76bf8f915588842ab5177d7 Mon Sep 17 00:00:00 2001 From: kzd Date: Sat, 18 Oct 2025 16:28:03 -0400 Subject: [PATCH 75/85] bsb page mermaid chart fix --- content/docs/other/bigscreen-beyond-driver/_index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/docs/other/bigscreen-beyond-driver/_index.md b/content/docs/other/bigscreen-beyond-driver/_index.md index 35f6e34..615233b 100644 --- a/content/docs/other/bigscreen-beyond-driver/_index.md +++ b/content/docs/other/bigscreen-beyond-driver/_index.md @@ -65,7 +65,7 @@ KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="35bd", ATTRS{idProduct To have functioning eyetracking while using a Bigscreen Beyond 2e under Linux, you will currently need to supplement the Baballonia portion of the software stack via Proton. The full stack can be pictured as such: -```mermaid +{{% mermaid %}} graph TB E[Bigscreen Beyond 2e]-->F F[Bigscreen Bigeye]-->A @@ -88,7 +88,7 @@ graph TB B D end -``` +{{% /mermaid %}} `go-bsb-cams` can be found here: https://github.com/LilliaElaine/go-bsb-cams -- 2.49.1 From ea9d4f177fa377d0559a3411fb8d305595ab69c4 Mon Sep 17 00:00:00 2001 From: polyborea Date: Sun, 19 Oct 2025 19:42:00 +0000 Subject: [PATCH 76/85] Edit _index.md to indicate where the WiVRn APK for the solarxr-patches branch can be found --- content/docs/fossvr/wivrn/_index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/docs/fossvr/wivrn/_index.md b/content/docs/fossvr/wivrn/_index.md index 397b250..6a0dd4d 100644 --- a/content/docs/fossvr/wivrn/_index.md +++ b/content/docs/fossvr/wivrn/_index.md @@ -101,6 +101,7 @@ Manual steps: See the [README](https://github.com/WiVRn/WiVRn/blob/master/README ## WiVRn + SlimeVR trackers To use SlimeVR trackers through WiVRn, you currently must use a [fork](https://github.com/notpeelz/WiVRn) of WiVRn: +The APK for this fork of WiVRn can be found as an artifact of the most recent GitHub action on the solarxr-patches branch. ### Option A: Build with Envision -- 2.49.1 From 01793ccb4a99115716b4396c30eac823bd6ae6f2 Mon Sep 17 00:00:00 2001 From: notfranko_ Date: Tue, 21 Oct 2025 22:59:26 +0300 Subject: [PATCH 77/85] Update Bigscreen Beyond information --- content/docs/hardware/_index.md | 5 +- .../bigscreen-beyond-kernel-6.15.patch | 243 ------------------ .../bigscreen-beyond-kernel-6.17-1.patch | 234 +++++++++++++++++ .../bigscreen-beyond-kernel-6.17-2.patch | 46 ++++ content/docs/other/_index.md | 2 +- .../_index.md | 2 +- content/docs/steamvr/quick-start.md | 2 +- 7 files changed, 286 insertions(+), 248 deletions(-) delete mode 100644 content/docs/hardware/bigscreen-beyond-kernel-6.15.patch create mode 100644 content/docs/hardware/bigscreen-beyond-kernel-6.17-1.patch create mode 100644 content/docs/hardware/bigscreen-beyond-kernel-6.17-2.patch rename content/docs/other/{bigscreen-beyond-driver => bigscreen-beyond}/_index.md (99%) diff --git a/content/docs/hardware/_index.md b/content/docs/hardware/_index.md index 3a33ac0..d5bd851 100644 --- a/content/docs/hardware/_index.md +++ b/content/docs/hardware/_index.md @@ -47,7 +47,8 @@ A non-comprehensive table of various VR/XR devices and the drivers that support | HTC Vive Pro | ✅ | ✅ | 🚧 (WiVRn PC-PC stream) | | HTC Vive Pro Eye | ✅ | ✅ | 🚧 (WiVRn PC-PC stream) | | 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), AMD GPUs or Nvidia driver 580+ open kernel modules.) | -- | -| Bigscreen Beyond | ✅ (with kernel patch for [<= 6.14](https://gist.github.com/galister/08cddf10ac18929647d5fb6308df3e4b/raw/0f6417b6cb069f19d6c28b730499c07de06ec413/combined-bsb-6-10.patch) and [>= 6.15](bigscreen-beyond-kernel-6.15.patch), AMD GPUs or Nvidia driver 580+ open kernel modules.) | ✅ (with kernel patch for [<= 6.14](https://gist.github.com/galister/08cddf10ac18929647d5fb6308df3e4b/raw/0f6417b6cb069f19d6c28b730499c07de06ec413/combined-bsb-6-10.patch) and [>= 6.15](bigscreen-beyond-kernel-6.15.patch), AMD GPUs or Nvidia driver 580+ open kernel modules.) | -- | +| Bigscreen Beyond | ✅ (with kernel patch for [<= 6.14](https://gist.github.com/galister/08cddf10ac18929647d5fb6308df3e4b/raw/0f6417b6cb069f19d6c28b730499c07de06ec413/combined-bsb-6-10.patch) or with two patches for >= 6.15 [1](bigscreen-beyond-kernel-6.17-1.patch) [2](bigscreen-beyond-kernel-6.17-2.patch), AMD GPUs or Nvidia driver 580+ open kernel modules.) | ✅ (with kernel patch for [<= 6.14](https://gist.github.com/galister/08cddf10ac18929647d5fb6308df3e4b/raw/0f6417b6cb069f19d6c28b730499c07de06ec413/combined-bsb-6-10.patch) or with two patches for >= 6.15 [1](bigscreen-beyond-kernel-6.17-1.patch) [2](bigscreen-beyond-kernel-6.17-2.patch), AMD GPUs or Nvidia driver 580+ open kernel modules.) | -- | +| Bigscreen Beyond 2/e | ✅ (with kernel patch for [<= 6.14](https://gist.github.com/galister/08cddf10ac18929647d5fb6308df3e4b/raw/0f6417b6cb069f19d6c28b730499c07de06ec413/combined-bsb-6-10.patch) or with two patches for >= 6.15 [1](bigscreen-beyond-kernel-6.17-1.patch) [2](bigscreen-beyond-kernel-6.17-2.patch), AMD GPUs or Nvidia driver 580+ open kernel modules.) | ✅ (with kernel patch for [<= 6.14](https://gist.github.com/galister/08cddf10ac18929647d5fb6308df3e4b/raw/0f6417b6cb069f19d6c28b730499c07de06ec413/combined-bsb-6-10.patch) or with two patches for >= 6.15 [1](bigscreen-beyond-kernel-6.17-1.patch) [2](bigscreen-beyond-kernel-6.17-2.patch), AMD GPUs or Nvidia driver 580+ open kernel modules.) | -- | | Somnium VR1 | ⚠️ Rumored successful internal test by Somnium. | ⚠️ Rumored successful internal test by Somnium. | ⚠️🚧 (WiVRn PC-PC stream) | | VRgineers XTAL | ? | ? | ? | | StarVR One | ? | ? | ? | @@ -114,7 +115,7 @@ A non-comprehensive table of various VR/XR devices and the drivers that support - **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. - Tracking technologies can be mixed Monado/WiVRn by using [motoc](https://github.com/galister/motoc). - +- **Beyond 2e users**: to use eyetracking on your headset please follow the guide in the [Bigscreen Beyond](/docs/other/bigscreen-beyond/#bigscreen-beyond-2e-eyetracking-via-baballonia-under-linux) page ### Desktop hangs on start of SteamVR or Monado Symptoms: diff --git a/content/docs/hardware/bigscreen-beyond-kernel-6.15.patch b/content/docs/hardware/bigscreen-beyond-kernel-6.15.patch deleted file mode 100644 index 6875a96..0000000 --- a/content/docs/hardware/bigscreen-beyond-kernel-6.15.patch +++ /dev/null @@ -1,243 +0,0 @@ -diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c -index 3b4065099..639699e3b 100644 ---- a/drivers/gpu/drm/drm_edid.c -+++ b/drivers/gpu/drm/drm_edid.c -@@ -189,6 +189,9 @@ static const struct edid_quirk { - /* Rotel RSX-1058 forwards sink's EDID but only does HDMI 1.1*/ - EDID_QUIRK('E', 'T', 'R', 13896, EDID_QUIRK_FORCE_8BPC), - -+ /* Bigscreen Beyond Headset */ -+ EDID_QUIRK('B', 'I', 'G', 0x1234, EDID_QUIRK_NON_DESKTOP), -+ - /* Valve Index Headset */ - EDID_QUIRK('V', 'L', 'V', 0x91a8, EDID_QUIRK_NON_DESKTOP), - EDID_QUIRK('V', 'L', 'V', 0x91b0, EDID_QUIRK_NON_DESKTOP), - -From c33583995576e9ac532c4ad9e260324b1c4fa3a3 Mon Sep 17 00:00:00 2001 -From: Yaroslav Bolyukin -Date: Sun, 30 Oct 2022 19:04:26 +0100 -Subject: [PATCH 3/3] drm/amd: use fixed dsc bits-per-pixel from edid - -VESA vendor header from DisplayID spec may contain fixed bit per pixel -rate, it should be respected by drm driver - -Signed-off-by: Yaroslav Bolyukin -Reviewed-by: Wayne Lin ---- - drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 2 ++ - drivers/gpu/drm/amd/display/dc/dc_types.h | 3 +++ - 2 files changed, 5 insertions(+) - -diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c -index 38d71b5c1f2d..f2467b64268b 100644 ---- a/drivers/gpu/drm/amd/display/dc/core/dc_stream.c -+++ b/drivers/gpu/drm/amd/display/dc/core/dc_stream.c -@@ -103,6 +103,8 @@ static bool dc_stream_construct(struct dc_stream_state *stream, - - /* EDID CAP translation for HDMI 2.0 */ - stream->timing.flags.LTE_340MCSC_SCRAMBLE = dc_sink_data->edid_caps.lte_340mcsc_scramble; -+ stream->timing.dsc_fixed_bits_per_pixel_x16 = -+ dc_sink_data->edid_caps.dsc_fixed_bits_per_pixel_x16; - - memset(&stream->timing.dsc_cfg, 0, sizeof(stream->timing.dsc_cfg)); - stream->timing.dsc_cfg.num_slices_h = 0; -diff --git a/drivers/gpu/drm/amd/display/dc/dc_types.h b/drivers/gpu/drm/amd/display/dc/dc_types.h -index dc78e2404b48..65915a10ab48 100644 ---- a/drivers/gpu/drm/amd/display/dc/dc_types.h -+++ b/drivers/gpu/drm/amd/display/dc/dc_types.h -@@ -231,6 +231,9 @@ struct dc_edid_caps { - bool edid_hdmi; - bool hdr_supported; - -+ /* DisplayPort caps */ -+ uint32_t dsc_fixed_bits_per_pixel_x16; -+ - struct dc_panel_patch panel_patch; - }; - --- -2.38.1 - - -diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c -index 3b4065099..15268afa3 100644 ---- a/drivers/gpu/drm/drm_edid.c -+++ b/drivers/gpu/drm/drm_edid.c -@@ -6391,7 +6391,7 @@ static void drm_parse_vesa_mso_data(struct drm_connector *connector, - if (oui(vesa->oui[0], vesa->oui[1], vesa->oui[2]) != VESA_IEEE_OUI) - return; - -- if (sizeof(*vesa) != sizeof(*block) + block->num_bytes) { -+ if (block->num_bytes < 5) { - drm_dbg_kms(connector->dev, - "[CONNECTOR:%d:%s] Unexpected VESA vendor block size\n", - connector->base.id, connector->name); -@@ -6414,24 +6414,37 @@ static void drm_parse_vesa_mso_data(struct drm_connector *connector, - break; - } - -- if (!info->mso_stream_count) { -- info->mso_pixel_overlap = 0; -- return; -- } -+ info->mso_pixel_overlap = 0; -+ -+ if (info->mso_stream_count) { -+ info->mso_pixel_overlap = FIELD_GET(DISPLAYID_VESA_MSO_OVERLAP, vesa->mso); -+ -+ if (info->mso_pixel_overlap > 8) { -+ drm_dbg_kms(connector->dev, -+ "[CONNECTOR:%d:%s] Reserved MSO pixel overlap value %u\n", -+ connector->base.id, connector->name, -+ info->mso_pixel_overlap); -+ info->mso_pixel_overlap = 8; -+ } - -- info->mso_pixel_overlap = FIELD_GET(DISPLAYID_VESA_MSO_OVERLAP, vesa->mso); -- if (info->mso_pixel_overlap > 8) { - drm_dbg_kms(connector->dev, -- "[CONNECTOR:%d:%s] Reserved MSO pixel overlap value %u\n", -- connector->base.id, connector->name, -- info->mso_pixel_overlap); -- info->mso_pixel_overlap = 8; -+ "[CONNECTOR:%d:%s] MSO stream count %u, pixel overlap %u\n", -+ connector->base.id, connector->name, -+ info->mso_stream_count, info->mso_pixel_overlap); -+ } -+ -+ if (block->num_bytes < 7) { -+ /* DSC bpp is optional */ -+ return; - } - -+ info->dp_dsc_bpp = FIELD_GET(DISPLAYID_VESA_DSC_BPP_INT, vesa->dsc_bpp_int) * 16 + -+ FIELD_GET(DISPLAYID_VESA_DSC_BPP_FRACT, vesa->dsc_bpp_fract); -+ - drm_dbg_kms(connector->dev, -- "[CONNECTOR:%d:%s] MSO stream count %u, pixel overlap %u\n", -- connector->base.id, connector->name, -- info->mso_stream_count, info->mso_pixel_overlap); -+ "[CONNECTOR:%d:%s] DSC bits per pixel %u\n", -+ connector->base.id, connector->name, -+ info->dp_dsc_bpp); - } - - static void drm_update_mso(struct drm_connector *connector, -@@ -6479,6 +6492,7 @@ static void drm_reset_display_info(struct drm_connector *connector) - info->mso_stream_count = 0; - info->mso_pixel_overlap = 0; - info->max_dsc_bpp = 0; -+ info->dp_dsc_bpp = 0; - - kfree(info->vics); - info->vics = NULL; -diff --git a/drivers/gpu/drm/drm_edid.c.rej b/drivers/gpu/drm/drm_edid.c.rej -new file mode 100644 -index 000000000..de3b3bf4e ---- /dev/null -+++ b/drivers/gpu/drm/drm_edid.c.rej -@@ -0,0 +1,9 @@ -+diff a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c (rejected hunks) -+@@ -6376,6 +6389,7 @@ static void drm_reset_display_info(struct drm_connector *connector) -+ info->mso_stream_count = 0; -+ info->mso_pixel_overlap = 0; -+ info->max_dsc_bpp = 0; -++ info->dp_dsc_bpp = 0; -+ } -+ -+ static u32 update_display_info(struct drm_connector *connector, -diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h -index fe88d7fc6..1de1d1726 100644 ---- a/include/drm/drm_connector.h -+++ b/include/drm/drm_connector.h -@@ -803,6 +803,12 @@ struct drm_display_info { - */ - u32 max_dsc_bpp; - -+ /** -+ * @dp_dsc_bpp: DP Display-Stream-Compression (DSC) timing's target -+ * DST bits per pixel in 6.4 fixed point format. 0 means undefined -+ */ -+ u16 dp_dsc_bpp; -+ - /** - * @vics: Array of vics_len VICs. Internal to EDID parsing. - */ -diff --git a/include/drm/drm_connector.h.rej b/include/drm/drm_connector.h.rej -new file mode 100644 -index 000000000..d54d40443 ---- /dev/null -+++ b/include/drm/drm_connector.h.rej -@@ -0,0 +1,13 @@ -+diff a/include/drm/drm_connector.h b/include/drm/drm_connector.h (rejected hunks) -+@@ -721,6 +721,11 @@ struct drm_display_info { -+ * monitor's default value is used instead. -+ */ -+ u32 max_dsc_bpp; -++ /** -++ * @dp_dsc_bpp: DP Display-Stream-Compression (DSC) timing's target -++ * DST bits per pixel in 6.4 fixed point format. 0 means undefined -++ */ -++ u16 dp_dsc_bpp; -+ }; -+ -+ int drm_display_info_set_bus_formats(struct drm_display_info *info, -diff --git a/include/drm/drm_displayid.h b/include/drm/drm_displayid.h -index 566497eeb..3a4bd0816 100644 ---- a/drivers/gpu/drm/drm_displayid_internal.h -+++ b/drivers/gpu/drm/drm_displayid_internal.h -@@ -131,12 +131,16 @@ struct displayid_detailed_timing_block { - - #define DISPLAYID_VESA_MSO_OVERLAP GENMASK(3, 0) - #define DISPLAYID_VESA_MSO_MODE GENMASK(6, 5) -+#define DISPLAYID_VESA_DSC_BPP_INT GENMASK(5, 0) -+#define DISPLAYID_VESA_DSC_BPP_FRACT GENMASK(3, 0) - - struct displayid_vesa_vendor_specific_block { - struct displayid_block base; - u8 oui[3]; - u8 data_structure_type; - u8 mso; -+ u8 dsc_bpp_int; -+ u8 dsc_bpp_fract; - } __packed; - - /* -diff --git a/include/drm/drm_displayid.h.rej b/include/drm/drm_displayid.h.rej -new file mode 100644 -index 000000000..61fbd38e0 ---- /dev/null -+++ b/include/drm/drm_displayid.h.rej -@@ -0,0 +1,18 @@ -+diff a/include/drm/drm_displayid.h b/include/drm/drm_displayid.h (rejected hunks) -+@@ -131,12 +131,16 @@ struct displayid_detailed_timing_block { -+ -+ #define DISPLAYID_VESA_MSO_OVERLAP GENMASK(3, 0) -+ #define DISPLAYID_VESA_MSO_MODE GENMASK(6, 5) -++#define DISPLAYID_VESA_DSC_BPP_INT GENMASK(5, 0) -++#define DISPLAYID_VESA_DSC_BPP_FRACT GENMASK(3, 0) -+ -+ struct displayid_vesa_vendor_specific_block { -+ struct displayid_block base; -+ u8 oui[3]; -+ u8 data_structure_type; -+ u8 mso; -++ u8 dsc_bpp_int; -++ u8 dsc_bpp_fract; -+ } __packed; -+ -+ /* DisplayID iteration */ - -diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c -index d4395b92fb85..6c7f589e19ac 100644 ---- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c -+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c -@@ -136,6 +136,8 @@ enum dc_edid_status dm_helpers_parse_edid_caps( - - edid_caps->edid_hdmi = connector->display_info.is_hdmi; - -+ edid_caps->dsc_fixed_bits_per_pixel_x16 = connector->display_info.dp_dsc_bpp; -+ - apply_edid_quirks(dev, edid_buf, edid_caps); - - sad_count = drm_edid_to_sad((struct edid *) edid->raw_edid, &sads); diff --git a/content/docs/hardware/bigscreen-beyond-kernel-6.17-1.patch b/content/docs/hardware/bigscreen-beyond-kernel-6.17-1.patch new file mode 100644 index 0000000..55d2ac7 --- /dev/null +++ b/content/docs/hardware/bigscreen-beyond-kernel-6.17-1.patch @@ -0,0 +1,234 @@ +From f8b7d3bad1225150c8909df309f8d10c365fdf3b Mon Sep 17 00:00:00 2001 +From: Yaroslav Bolyukin +Date: Sun, 30 Oct 2022 18:59:15 +0100 +Subject: [PATCH 1/2] drm/edid: parse DRM VESA dsc bpp target + +As per DisplayID v2.0 Errata E9 spec "DSC pass-through timing support" +VESA vendor-specific data block may contain target DSC bits per pixel +fields + +Signed-off-by: Yaroslav Bolyukin +Signed-off-by: Lach +--- + drivers/gpu/drm/drm_displayid_internal.h | 8 ++++ + drivers/gpu/drm/drm_edid.c | 61 ++++++++++++++++-------- + include/drm/drm_connector.h | 6 +++ + include/drm/drm_modes.h | 10 ++++ + 4 files changed, 64 insertions(+), 21 deletions(-) + +diff --git a/drivers/gpu/drm/drm_displayid_internal.h b/drivers/gpu/drm/drm_displayid_internal.h +index 957dd0619f5c..d008a98994bb 100644 +--- a/drivers/gpu/drm/drm_displayid_internal.h ++++ b/drivers/gpu/drm/drm_displayid_internal.h +@@ -97,6 +97,10 @@ struct displayid_header { + u8 ext_count; + } __packed; + ++#define DISPLAYID_BLOCK_REV GENMASK(2, 0) ++#define DISPLAYID_BLOCK_PASSTHROUGH_TIMINGS_SUPPORT BIT(3) ++#define DISPLAYID_BLOCK_DESCRIPTOR_PAYLOAD_BYTES GENMASK(6, 4) ++ + struct displayid_block { + u8 tag; + u8 rev; +@@ -144,12 +148,16 @@ struct displayid_formula_timing_block { + + #define DISPLAYID_VESA_MSO_OVERLAP GENMASK(3, 0) + #define DISPLAYID_VESA_MSO_MODE GENMASK(6, 5) ++#define DISPLAYID_VESA_DSC_BPP_INT GENMASK(5, 0) ++#define DISPLAYID_VESA_DSC_BPP_FRACT GENMASK(3, 0) + + struct displayid_vesa_vendor_specific_block { + struct displayid_block base; + u8 oui[3]; + u8 data_structure_type; + u8 mso; ++ u8 dsc_bpp_int; ++ u8 dsc_bpp_fract; + } __packed; + + /* +diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c +index e2e85345aa9a..6e42e55b41f9 100644 +--- a/drivers/gpu/drm/drm_edid.c ++++ b/drivers/gpu/drm/drm_edid.c +@@ -6524,8 +6524,8 @@ static void drm_get_monitor_range(struct drm_connector *connector, + info->monitor_range.min_vfreq, info->monitor_range.max_vfreq); + } + +-static void drm_parse_vesa_mso_data(struct drm_connector *connector, +- const struct displayid_block *block) ++static void drm_parse_vesa_specific_block(struct drm_connector *connector, ++ const struct displayid_block *block) + { + struct displayid_vesa_vendor_specific_block *vesa = + (struct displayid_vesa_vendor_specific_block *)block; +@@ -6541,7 +6541,7 @@ static void drm_parse_vesa_mso_data(struct drm_connector *connector, + if (oui(vesa->oui[0], vesa->oui[1], vesa->oui[2]) != VESA_IEEE_OUI) + return; + +- if (sizeof(*vesa) != sizeof(*block) + block->num_bytes) { ++ if (block->num_bytes < 5) { + drm_dbg_kms(connector->dev, + "[CONNECTOR:%d:%s] Unexpected VESA vendor block size\n", + connector->base.id, connector->name); +@@ -6564,28 +6564,40 @@ static void drm_parse_vesa_mso_data(struct drm_connector *connector, + break; + } + +- if (!info->mso_stream_count) { +- info->mso_pixel_overlap = 0; +- return; +- } ++ info->mso_pixel_overlap = 0; + +- info->mso_pixel_overlap = FIELD_GET(DISPLAYID_VESA_MSO_OVERLAP, vesa->mso); +- if (info->mso_pixel_overlap > 8) { +- drm_dbg_kms(connector->dev, +- "[CONNECTOR:%d:%s] Reserved MSO pixel overlap value %u\n", +- connector->base.id, connector->name, +- info->mso_pixel_overlap); +- info->mso_pixel_overlap = 8; ++ if (info->mso_stream_count) { ++ info->mso_pixel_overlap = FIELD_GET(DISPLAYID_VESA_MSO_OVERLAP, vesa->mso); ++ if (info->mso_pixel_overlap > 8) { ++ drm_dbg_kms(connector->dev, ++ "[CONNECTOR:%d:%s] Reserved MSO pixel overlap value %u\n", ++ connector->base.id, connector->name, ++ info->mso_pixel_overlap); ++ info->mso_pixel_overlap = 8; ++ } + } + + drm_dbg_kms(connector->dev, + "[CONNECTOR:%d:%s] MSO stream count %u, pixel overlap %u\n", + connector->base.id, connector->name, + info->mso_stream_count, info->mso_pixel_overlap); ++ ++ if (block->num_bytes < 7) { ++ /* DSC bpp is optional */ ++ return; ++ } ++ ++ info->dp_dsc_bpp = FIELD_GET(DISPLAYID_VESA_DSC_BPP_INT, vesa->dsc_bpp_int) << 4 | ++ FIELD_GET(DISPLAYID_VESA_DSC_BPP_FRACT, vesa->dsc_bpp_fract); ++ ++ drm_dbg_kms(connector->dev, ++ "[CONNECTOR:%d:%s] DSC bits per pixel %u\n", ++ connector->base.id, connector->name, ++ info->dp_dsc_bpp); + } + +-static void drm_update_mso(struct drm_connector *connector, +- const struct drm_edid *drm_edid) ++static void drm_update_vesa_specific_block(struct drm_connector *connector, ++ const struct drm_edid *drm_edid) + { + const struct displayid_block *block; + struct displayid_iter iter; +@@ -6593,7 +6605,7 @@ static void drm_update_mso(struct drm_connector *connector, + displayid_iter_edid_begin(drm_edid, &iter); + displayid_iter_for_each(block, &iter) { + if (block->tag == DATA_BLOCK_2_VENDOR_SPECIFIC) +- drm_parse_vesa_mso_data(connector, block); ++ drm_parse_vesa_specific_block(connector, block); + } + displayid_iter_end(&iter); + } +@@ -6630,6 +6642,7 @@ static void drm_reset_display_info(struct drm_connector *connector) + info->mso_stream_count = 0; + info->mso_pixel_overlap = 0; + info->max_dsc_bpp = 0; ++ info->dp_dsc_bpp = 0; + + kfree(info->vics); + info->vics = NULL; +@@ -6753,7 +6766,7 @@ static void update_display_info(struct drm_connector *connector, + if (edid->features & DRM_EDID_FEATURE_RGB_YCRCB422) + info->color_formats |= DRM_COLOR_FORMAT_YCBCR422; + +- drm_update_mso(connector, drm_edid); ++ drm_update_vesa_specific_block(connector, drm_edid); + + out: + if (drm_edid_has_internal_quirk(connector, EDID_QUIRK_NON_DESKTOP)) { +@@ -6784,7 +6797,8 @@ static void update_display_info(struct drm_connector *connector, + + static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *dev, + const struct displayid_detailed_timings_1 *timings, +- bool type_7) ++ bool type_7, ++ int rev) + { + struct drm_display_mode *mode; + unsigned int pixel_clock = (timings->pixel_clock[0] | +@@ -6805,6 +6819,10 @@ static struct drm_display_mode *drm_mode_displayid_detailed(struct drm_device *d + if (!mode) + return NULL; + ++ if (type_7 && FIELD_GET(DISPLAYID_BLOCK_REV, rev) >= 1) ++ mode->dsc_passthrough_timings_support = ++ !!(rev & DISPLAYID_BLOCK_PASSTHROUGH_TIMINGS_SUPPORT); ++ + /* resolution is kHz for type VII, and 10 kHz for type I */ + mode->clock = type_7 ? pixel_clock : pixel_clock * 10; + mode->hdisplay = hactive; +@@ -6846,7 +6864,7 @@ static int add_displayid_detailed_1_modes(struct drm_connector *connector, + for (i = 0; i < num_timings; i++) { + struct displayid_detailed_timings_1 *timings = &det->timings[i]; + +- newmode = drm_mode_displayid_detailed(connector->dev, timings, type_7); ++ newmode = drm_mode_displayid_detailed(connector->dev, timings, type_7, block->rev); + if (!newmode) + continue; + +@@ -6893,7 +6911,8 @@ static int add_displayid_formula_modes(struct drm_connector *connector, + struct drm_display_mode *newmode; + int num_modes = 0; + bool type_10 = block->tag == DATA_BLOCK_2_TYPE_10_FORMULA_TIMING; +- int timing_size = 6 + ((formula_block->base.rev & 0x70) >> 4); ++ int timing_size = 6 + ++ FIELD_GET(DISPLAYID_BLOCK_DESCRIPTOR_PAYLOAD_BYTES, formula_block->base.rev); + + /* extended blocks are not supported yet */ + if (timing_size != 6) +diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h +index 8f34f4b8183d..01640fcf7464 100644 +--- a/include/drm/drm_connector.h ++++ b/include/drm/drm_connector.h +@@ -837,6 +837,12 @@ struct drm_display_info { + */ + u32 max_dsc_bpp; + ++ /** ++ * @dp_dsc_bpp: DP Display-Stream-Compression (DSC) timing's target ++ * DSC bits per pixel in 6.4 fixed point format. 0 means undefined. ++ */ ++ u16 dp_dsc_bpp; ++ + /** + * @vics: Array of vics_len VICs. Internal to EDID parsing. + */ +diff --git a/include/drm/drm_modes.h b/include/drm/drm_modes.h +index b9bb92e4b029..312e5c03af9a 100644 +--- a/include/drm/drm_modes.h ++++ b/include/drm/drm_modes.h +@@ -417,6 +417,16 @@ struct drm_display_mode { + */ + enum hdmi_picture_aspect picture_aspect_ratio; + ++ /** ++ * @dsc_passthrough_timing_support: ++ * ++ * Indicates whether this mode timing descriptor is supported ++ * with specific target DSC bits per pixel only. ++ * ++ * VESA vendor-specific data block shall exist with the relevant ++ * DSC bits per pixel declaration when this flag is set to true. ++ */ ++ bool dsc_passthrough_timings_support; + }; + + /** +-- +2.51.0 \ No newline at end of file diff --git a/content/docs/hardware/bigscreen-beyond-kernel-6.17-2.patch b/content/docs/hardware/bigscreen-beyond-kernel-6.17-2.patch new file mode 100644 index 0000000..612be24 --- /dev/null +++ b/content/docs/hardware/bigscreen-beyond-kernel-6.17-2.patch @@ -0,0 +1,46 @@ +From 4374e685d46122ac59ccdd201c3be785e7f3558d Mon Sep 17 00:00:00 2001 +From: Yaroslav Bolyukin +Date: Sun, 30 Oct 2022 19:04:26 +0100 +Subject: [PATCH 2/2] drm/amd: use fixed dsc bits-per-pixel from edid + +VESA vendor header from DisplayID spec may contain fixed bit per pixel +rate, it should be respected by drm driver + +Signed-off-by: Yaroslav Bolyukin +Signed-off-by: Lach +--- + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +index ef026143dc1c..d068c6db91ce 100644 +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +@@ -6430,6 +6430,11 @@ static void fill_stream_properties_from_drm_display_mode( + + stream->output_color_space = get_output_color_space(timing_out, connector_state); + stream->content_type = get_output_content_type(connector_state); ++ ++ /* DisplayID Type VII pass-through timings. */ ++ if (mode_in->dsc_passthrough_timings_support && info->dp_dsc_bpp != 0) { ++ stream->timing.dsc_fixed_bits_per_pixel_x16 = info->dp_dsc_bpp; ++ } + } + + static void fill_audio_info(struct audio_info *audio_info, +@@ -6976,6 +6981,13 @@ create_stream_for_sink(struct drm_connector *connector, + &mode, preferred_mode, scale); + + preferred_refresh = drm_mode_vrefresh(preferred_mode); ++ ++ /* ++ * HACK: In case of multiple supported modes, we should look at the matching mode to decide this flag. ++ * But what is matching mode, how should it be decided? ++ * Assuming that only preferred mode would have this flag. ++ */ ++ mode.dsc_passthrough_timings_support = preferred_mode->dsc_passthrough_timings_support; + } + } + +-- +2.51.0 \ No newline at end of file diff --git a/content/docs/other/_index.md b/content/docs/other/_index.md index ad22301..756642f 100644 --- a/content/docs/other/_index.md +++ b/content/docs/other/_index.md @@ -7,6 +7,6 @@ title: Other This category houses guides that are not specific to any other cagegory. -- [Bigscreen Beyond Driver](/docs/other/bigscreen-beyond-driver/) for using the official configuration tool from Bigscreen for the BSB1/2/2e. +- [Bigscreen Beyond](/docs/other/bigscreen-beyond/) for using the official configuration tool from Bigscreen for the BSB1/2/2e and setting up eye tracking for the 2e. - [Dongles over IP](/docs/other/dongles-over-ip/) plug your Watchman dongles into another host on the same network - [SVC Voice Changer](/docs/other/svc/) for AMD and NVidia GPUs, also works on CPU \ No newline at end of file diff --git a/content/docs/other/bigscreen-beyond-driver/_index.md b/content/docs/other/bigscreen-beyond/_index.md similarity index 99% rename from content/docs/other/bigscreen-beyond-driver/_index.md rename to content/docs/other/bigscreen-beyond/_index.md index 615233b..9f6c1f9 100644 --- a/content/docs/other/bigscreen-beyond-driver/_index.md +++ b/content/docs/other/bigscreen-beyond/_index.md @@ -1,6 +1,6 @@ --- weight: 300 -title: Bigscreen Beyond Driver +title: Bigscreen Beyond --- # [Bigscreen Beyond Driver](https://steamdb.info/app/2467050/) diff --git a/content/docs/steamvr/quick-start.md b/content/docs/steamvr/quick-start.md index 1b796b7..9a94d59 100644 --- a/content/docs/steamvr/quick-start.md +++ b/content/docs/steamvr/quick-start.md @@ -42,7 +42,7 @@ sudo setcap CAP_SYS_NICE=eip ~/.local/share/Steam/steamapps/common/SteamVR/bin/l **Vive Pro 2** will need the driver from here: [VivePro2-Linux-Driver on GitHub](https://github.com/CertainLach/VivePro2-Linux-Driver) -**Bigscreen Beyond** requires a patched kernel: for [<= 6.14](https://gist.github.com/galister/08cddf10ac18929647d5fb6308df3e4b/raw/0f6417b6cb069f19d6c28b730499c07de06ec413/combined-bsb-6-10.patch) and [>= 6.15](../../hardware/bigscreen-beyond-kernel-6.15.patch) +**Bigscreen Beyond** requires a patched kernel: for [<= 6.14](https://gist.github.com/galister/08cddf10ac18929647d5fb6308df3e4b/raw/0f6417b6cb069f19d6c28b730499c07de06ec413/combined-bsb-6-10.patch) or two patches for >= 6.15 [1](../../hardware/bigscreen-beyond-kernel-6.17-1.patch) [2](../../hardware/bigscreen-beyond-kernel-6.17-2.patch) For any of the above headsets with {{< icon name="nvidia" >}} Nvidia, you will get a smoother experience with Monado + OpenComposite (use Envision for easy setup), albeit this combo does not work with all VR titles. -- 2.49.1 From b7c806534e70aac6b349b90e40ae66ec93e7edf3 Mon Sep 17 00:00:00 2001 From: hypevhs <4498312-hypevhs@users.noreply.gitlab.com> Date: Tue, 21 Oct 2025 15:08:59 -0500 Subject: [PATCH 78/85] wivrn: more info about solarxr apk --- content/docs/fossvr/wivrn/_index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/docs/fossvr/wivrn/_index.md b/content/docs/fossvr/wivrn/_index.md index 6a0dd4d..73f12ff 100644 --- a/content/docs/fossvr/wivrn/_index.md +++ b/content/docs/fossvr/wivrn/_index.md @@ -100,8 +100,7 @@ Manual steps: See the [README](https://github.com/WiVRn/WiVRn/blob/master/README ## WiVRn + SlimeVR trackers -To use SlimeVR trackers through WiVRn, you currently must use a [fork](https://github.com/notpeelz/WiVRn) of WiVRn: -The APK for this fork of WiVRn can be found as an artifact of the most recent GitHub action on the solarxr-patches branch. +To use SlimeVR trackers through WiVRn, you currently must use the `solarxr-patches` fork of WiVRn. Follow one of the **below options first**, then don't forget to come back and sideload the [solarxr-patches WiVRn APK](https://nightly.link/notpeelz/WiVRn/workflows/Build/solarxr-patches/apk-Standard-Release). ### Option A: Build with Envision @@ -113,6 +112,7 @@ To use this fork within Envision, edit these fields in your profile: Then save and clean build the profile. ### Option B: NixOS + Override the `wivrn` package from nixpkgs with something resembling the following, replacing `[COMMIT HASH HERE]` with the latest commit hash from https://github.com/notpeelz/WiVRn/commits/solarxr-patches and filling in the correct src hash. Do note you may need to adapt this depending on how you install WiVRn: ```nix { pkgs, lib, ... }: -- 2.49.1 From da725637969ed815a4995dd16c79bacb3c7dbb1a Mon Sep 17 00:00:00 2001 From: Coreforge Date: Thu, 23 Oct 2025 22:32:05 +0200 Subject: [PATCH 79/85] add pimax page --- content/docs/fossvr/monado/pimax.md | 52 +++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 content/docs/fossvr/monado/pimax.md diff --git a/content/docs/fossvr/monado/pimax.md b/content/docs/fossvr/monado/pimax.md new file mode 100644 index 0000000..858935c --- /dev/null +++ b/content/docs/fossvr/monado/pimax.md @@ -0,0 +1,52 @@ +--- +weight: 200 +title: Pimax +--- + +# Pimax P2 HMDs +At the moment, only headsets from the P2 series (the 5k and 8k headsets with various suffixes) are supported. The Crystal, Crystal light, and Crystal super use different protocols that have not been reverse engineered yet. + +# Setup +## Kernel patches +For the most convenient use, a few kernel patches are required. One to mark the display as non-desktop (can also be manually done without a patch on Xorg), and one to ignore the EDID checksum errors a lot of these headsets feature (alternatively, overriding the edid with a fixed version also works). +- [non-desktop](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch) +- [EDID](https://gist.githubusercontent.com/Coreforge/59ed3548427c999273ec012002461eab/raw/f70df3afd5cccbfc6fb34ef805db41d00dbf4770/ps0002-drm-edid-fix-checksum-errors-in-Pimax-HMD-EDIDs.patch) + +## udev rules +To allow monado to access to the Pimax HID device, a udev rule is required. +``` +SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="0101", MODE="0660", TAG+="uaccess", TAG+="udev-acl" +KERNEL=="hidraw*", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="0101", MODE="0660", TAG+="uaccess", TAG+="udev-acl" +``` + +## Distortion meshes +Since calculating the lens distortion isn't implemented yet, precalculated distortion meshes which have been exported from pimax's runtime are used instead. +The meshes are available here: +- https://gitlab.freedesktop.org/othello7/pimax-distortion/ + +The tools to dump meshes yourself are available here (requires a windows install that can drive the headset): +- https://github.com/Coreforge/pimax-utils + +## Monado +Use monado from the branch `pimax` from the repository `https://gitlab.freedesktop.org/Coreforge/monado/`. +Make sure to use the lighthouse driver `steamvr_lh`, other lighthouse drivers are currently not supported with the pimax driver. + +At this point, you should have a working headset. + +### Configuration options +The headset should work without changing any of these options, but they may improve the experience or stability (e.g. if the headset only works on the first launch of monado after powering the headset), or might be needed for less standard setups. + +| Name | default value | description | +|--------------------|---------------|------------------| +| `PIMAX_MESHES_PATH`| `~/.config/pimax/meshes` | The directory distortion meshes are loaded from | +| `PIMAX_MESH_NAME` | automatically determined | The file name the distortion meshes are loaded from | +| `PIMAX_CHECK_INIT` | 0 | If enabled, display unlock commands are only sent if the HMD hasn't been unlocked (displays enabled) yet | +| `PIMAX_REBOOT` | 0 | If enabled, reboots the HMD on startup, like PiTool does | +| `PIMAX_REBOOT_DELAY_MS` | 5000 | How long to wait after sending the reboot command | +| `PIMAX_HID_RETRY_COUNT` | 3 | How many times to retry opening the pimax HID device before giving up | +| `PIMAX_HID_RETRY_DELAY_MS` | 1000 | How long to wait between attempts | +| `PIMAX_OFFS_X_R` `PIMAX_OFFS_X_G` `PIMAX_OFFS_X_R` | 0.0 for all | Shifts one channel of the distortion mesh sideways by the given amount of pixels. This is an attempt at reducing the coloured edges especially visible on the 5K XR due to monado currently not supporting subpixel shading. | +| `PIMAX_IPD_V0` `PIMAX_IPD_V1` | 0.0 | Vertical offsets (in meters) added to the view poses, somewhat similar to the display offsets in PiTool | +| `PIMAX_IPD_H0` `PIMAX_IPD_H1` | 0.0 | Horizontal offsets (in meters) added to the view poses and IPD (for the distortion correction), somewhat similar to the display offsets in PiTool | + +The display (or IPD in the option name) offsets can also be adjusted in the debug GUI, following the same procedure as for PiTool (values are **not** saved in the debug GUI). \ No newline at end of file -- 2.49.1 From 30b77184a3115183b853768eeba666d81d424a18 Mon Sep 17 00:00:00 2001 From: Krzeszny Date: Thu, 23 Oct 2025 23:29:27 +0000 Subject: [PATCH 80/85] Shooting more troubles for Resonite --- content/docs/resonite/_index.md | 76 ++++++++++++++++++++++++++++++--- 1 file changed, 71 insertions(+), 5 deletions(-) diff --git a/content/docs/resonite/_index.md b/content/docs/resonite/_index.md index cbcf7ac..8e95642 100644 --- a/content/docs/resonite/_index.md +++ b/content/docs/resonite/_index.md @@ -29,7 +29,7 @@ As of the splittening release, Resonite only supports copy/pasting text, and doe This mod provides full clipboard functionality, but only works on Wayland: https://github.com/GrandtheUK/ResoniteLinuxClipboard -## Audio Issues +## Audio issues Resonite uses SDL for audio on Linux, but the current implementation can be a bit flaky. @@ -39,11 +39,43 @@ It is recommended that you use PipeWire as your system's audio service, includin The game will default to the PipeWire API if it can, falling back to the PulseAudio API. -### Glitchy audio +### Crackling microphone audio -The most straightforward way to fix a glitchy microphone is to use SDL's ALSA driver with `SDL_AUDIO_DRIVER=alsa %command%` as the launch argument on Steam. +There is an issue WiVRn users have in Resonite, resulting in their microphone audio becoming crackly / glitchy to others. In order to solve this issue, it's necessary to set Resonite to use the ALSA SDL audio backend, and make sure PipeWire sample rates are configured properly. -If that doesn't work, you can try forcing the other drivers by specifying `pipewire` or `pulseaudio` instead of `alsa` in the above launch arguments. +The steps are as follows: + +1. Force Resonite to use ALSA SDL backend for audio: + + Add the following to Resonite's Launch Options in Steam: + + ``` + SDL_AUDIO_DRIVER=alsa %command% + ``` + + **NOTE:** If you have already set launch arguments for Resonite, simply add `SDL_AUDIO_DRIVER=alsa` next to other env vars in your launch arguments. + + +2. Configure PipeWire sampling rates: + + For most if not all users, **using ALSA _WILL_ bork your audio** until you've manually configured PipeWire to use a default sample rate of 48kHz. If this happens: + + 2.1. Locate the directory or create it if it doesn't exist: `~/.config/pipewire/pipewire.conf.d/`. + + **NOTE:** If you have set `$XDG_CONFIG_HOME` to something other than `~/.config` then please adjust the paths according. + + 2.2 Create a configuration file (`01-sample-rates.conf` for this example) in that folder. The full path should be `~/.config/pipewire/pipewire.conf.d/01-sample-rates.conf`. + + 2.3 Paste the following content into the file to define supported sample rates, and save it: + + ``` + context.properties = { + default.clock.allowed-rates = [ 44100 48000 88200 96000 ] + default.clock.rate = 48000 + } + ``` + +If that doesn't work, you can try forcing the other drivers by specifying `pulseaudio` (or `pipewire`) instead of `alsa` in the above launch argument. If you want to use the PulseAudio driver, you may need `SDL_AUDIO_DRIVER=pulseaudio PULSE_LATENCY_MSEC=15 PULSE_BUFFER_MSEC=250 PULSE_FRAGMENT_SIZE_MSEC=25 %command%` as the launch arguments. @@ -51,7 +83,7 @@ If you want to use the PulseAudio driver, you may need `SDL_AUDIO_DRIVER=pulseau To be able to chose a virtual sink, you have two options: -1. Use `SDL_AUDIO_INCLUDE_MONITORS=1`, but this works with the PulseAudio driver *only* (add it next to your other env var in launch arguments). +1. Use `SDL_AUDIO_INCLUDE_MONITORS=1`, but this works with the PulseAudio driver *only* (add it next to your other env vars in launch arguments). 2. Select any other source in Resonite, and manually connect the wanted input or output to Resonite's sink using a PipeWire graph GUI (e.g. Coppwr, Qwpgraph, Helvum) Do note that for the Audio Stream feature of Resonite, you'll need to select a different source that the one you are using as your microphone, or else SDL will **not** create a sink dedicated for it. If you only have one input, use the Steam voice option. @@ -60,6 +92,12 @@ Do note that for the Audio Stream feature of Resonite, you'll need to select a d The PipeWire driver is not supported by Steam Flatpak OOtB, see [this issue](https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5261#issuecomment-3228033460) if you need to use the PipeWire driver on Resonite in Steam Flatpak. +### No WiVRn mic audio + +If you're using WiVRn, close and reopen it. This mostly happens after Resonite has crashed. + +**NOTE:** Closing WiVRn will cause xrizer to crash Resonite if it's open. + ## FlipVR controller support with Monado Currently there is an experimental Monado branch that works with Shiftall FlipVR controllers. Instructions can be found [here](/docs/fossvr/monado/flipvr/). At the time of writing, this branch is the only way to use FlipVR controllers with Resonite, as they are not supported even through SteamVR on Windows. @@ -111,10 +149,38 @@ Navigate to compatdata in the folder above Resonite's folder (by default `.local It may be enough to just verify file integrity in some cases. +This can also happen because of **incorrect Steam launch options**. + ### Crash on loading into a world with video players On GE-Proton9-10 (for example), loading into a world with e.g. a YouTube video or live stream can crash the game. Try using the latest GE-Proton-RTSP release. +### Hanging on Launch + +Symptoms: + +- Steam reports Resonite is running but Resonite does not launch. + +Possible causes: +- Not having a default audio device selected. + + **Solution:** Select an/another audio device in your volume panel and see if it works. This is likely an SDL issue. + +- Improperly configured mod loaders and plugins. + + **Solution:** Try starting without Steam launch options and then re-add the env vars one by one. This is commonly caused by misconfigured MonkeyLoader. + +### Crash after loading + +Although this is rare, some proton updates can start crashing Resonite repetitively. + +Symptoms: +- Crashes approximately 1 minute after successfully loading Resonite. +- Everything freezes in both desktop mode and VR, but you can still hear sounds, including the voices of other users. + +If this happens, just switch Proton to another version such as Proton-GE or Proton-GE-rtsp. + + ## Controls busted after switching to desktop Resonite allows a VR player to take a break and switch to desktop mode by pressing the F8 key. -- 2.49.1 From 67fe496d4cc05532efd4f453dc1846cc9fb92d78 Mon Sep 17 00:00:00 2001 From: Krzeszny Date: Fri, 24 Oct 2025 12:12:17 +0000 Subject: [PATCH 81/85] Specify what causes no mic audio --- content/docs/resonite/_index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/docs/resonite/_index.md b/content/docs/resonite/_index.md index 8e95642..d9b0e9f 100644 --- a/content/docs/resonite/_index.md +++ b/content/docs/resonite/_index.md @@ -92,9 +92,9 @@ Do note that for the Audio Stream feature of Resonite, you'll need to select a d The PipeWire driver is not supported by Steam Flatpak OOtB, see [this issue](https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5261#issuecomment-3228033460) if you need to use the PipeWire driver on Resonite in Steam Flatpak. -### No WiVRn mic audio +### No microphone audio -If you're using WiVRn, close and reopen it. This mostly happens after Resonite has crashed. +Assuming you have the correct mic chosen in Resonite, this bug happens when SDL is set to ALSA and you restart Resonite while WiVRn is running. If you're using ALSA mode, you must restart WiVRn **every time** you restart Resonite. **NOTE:** Closing WiVRn will cause xrizer to crash Resonite if it's open. -- 2.49.1 From 055bfbedfa8ea957a6c41cec203ff7717faf706f Mon Sep 17 00:00:00 2001 From: notfranko_ Date: Fri, 24 Oct 2025 19:52:42 +0300 Subject: [PATCH 82/85] BSB: GPU Acceleration is busted for Nvidia --- content/docs/other/bigscreen-beyond/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/other/bigscreen-beyond/_index.md b/content/docs/other/bigscreen-beyond/_index.md index 9f6c1f9..d4d2694 100644 --- a/content/docs/other/bigscreen-beyond/_index.md +++ b/content/docs/other/bigscreen-beyond/_index.md @@ -100,7 +100,7 @@ You will need to boot into Windows and use `Baballonia.Desktop` there in order t Then you can start `Baballonia.Desktop.exe` via `Proton` as a "non-steam game" and tell it to load your pre-trained model, the `Baballonia` setup executable can be run first and then you'll want to point the Steam Library entry to the proper `Baballonia.Desktop.exe` afterwards for future launches. -**NOTE:** You'll need to disable `GPU Acceleration` for it to track the full volume as it seems to be weirdly clamped while `GPU Acceleration` is enabled under `Proton`. +**NOTE:** If you're using an Nvidia GPU you'll need to disable `GPU Acceleration` for it to track the full volume as it seems to be weirdly clamped while `GPU Acceleration` is enabled under `Proton`. `Baballonia.Desktop` can be given the `http://127.0.0.1:8080/stream` endpoints for each camera if you're using `go-bsb-cams` to load the cameras. You'll need to adjust cropping and brightness for the cameras as necessary, but it should allow you to easily select the whole left/right areas automatically for the Bigeye in particular. -- 2.49.1 From bed37ca954fe53f406c45b55e3652dacd81beb17 Mon Sep 17 00:00:00 2001 From: albibi Date: Mon, 27 Oct 2025 17:27:20 +0000 Subject: [PATCH 83/85] Change command to use right directory --- content/docs/slimevr/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/docs/slimevr/_index.md b/content/docs/slimevr/_index.md index 1099f8b..3b95faf 100644 --- a/content/docs/slimevr/_index.md +++ b/content/docs/slimevr/_index.md @@ -48,7 +48,7 @@ Then you'll need to register the driver using the following command. **Important**: make sure to **NOT** run this command twice, adding a driver twice will cause problems. ```bash -$HOME/.steam/steam/steamapps/common/SteamVR/bin/linux64/vrpathreg.sh adddriver $HOME/.steam/steam/steamapps/common/SteamVR/drivers/slimevr +$HOME/.steam/steam/steamapps/common/SteamVR/bin/vrpathreg.sh adddriver $HOME/.steam/steam/steamapps/common/SteamVR/drivers/slimevr ``` Now the only thing you have to do is restart the SlimeVR server. -- 2.49.1 From bb2edd7308bbcea836abd8d99da4f51baafca91c Mon Sep 17 00:00:00 2001 From: Marcus Howser Date: Thu, 30 Oct 2025 14:05:30 -0700 Subject: [PATCH 84/85] [Take 2] Tidy up links, update mod section, add crash info --- content/docs/resonite/_index.md | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/content/docs/resonite/_index.md b/content/docs/resonite/_index.md index d9b0e9f..fd679d2 100644 --- a/content/docs/resonite/_index.md +++ b/content/docs/resonite/_index.md @@ -12,7 +12,7 @@ The current recommended Proton variant is [**Proton GE**](https://github.com/Glo ## Mirrors look cross-eyed -When playing Resonite under [Monado](https://lvra.gitlab.io/docs/fossvr/monado/) or [WiVRn](https://lvra.gitlab.io/docs/fossvr/wivrn/), the 3D effect of mirrors may appear way off, as if looking through them feels like your eyes are crossed. This only affects headsets with canted displays (e.g. Valve Index, Pimax). +When playing Resonite under [Monado](/docs/fossvr/monado/) or [WiVRn](/docs/fossvr/wivrn/), the 3D effect of mirrors may appear way off, as if looking through them feels like your eyes are crossed. This only affects headsets with canted displays (e.g. Valve Index, Pimax). To solve this, prepend `OXR_PARALLEL_VIEWS=1` to Resonite's launch options. @@ -25,9 +25,9 @@ This can be easily done by prepending `OXR_VIEWPORT_SCALE_PERCENTAGE=75` to Reso ## Clipboard -As of the splittening release, Resonite only supports copy/pasting text, and does not work at all in Flatpak Steam with Wayland [(issue)](https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5321). +As of the splittening release, Resonite only supports copy/pasting text, and does not work at all in Flatpak Steam with Wayland, [issue #5321](https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5321). -This mod provides full clipboard functionality, but only works on Wayland: https://github.com/GrandtheUK/ResoniteLinuxClipboard +This mod provides full clipboard functionality, but only works on Wayland: [ResoniteLinuxClipboard](https://github.com/GrandtheUK/ResoniteLinuxClipboard) ## Audio issues @@ -106,25 +106,33 @@ Currently there is an experimental Monado branch that works with Shiftall FlipVR Resonite has a thriving modding community with an abundance of [mods](https://wiki.resonite.com/Mods) that offer greater user experience, optimizations and new features. -Currently there are 2 mod loaders: +Currently there are 3 mod loaders: - [ResoniteModLoader (RML)](https://github.com/resonite-modding-group/ResoniteModLoader) + - [Resolute](https://github.com/Gawdl3y/Resolute) is available for installing and managing RML mods -- [MonkeyLoader](https://github.com/ResoniteModdingGroup/MonkeyLoader.GamePacks.Resonite) +- [MonkeyLoader (ML)](https://github.com/ResoniteModdingGroup/MonkeyLoader.GamePacks.Resonite) + - ML mods require manual installation and updating for now + +- [BepisLoader (BL)](https://thunderstore.io/c/resonite/p/ResoniteModding/BepisLoader/) + - Uses [Thunderstore](https://thunderstore.io/c/resonite/) for mod management + +A more detailed comparison table between modloaders is available [here](https://modding.resonite.net/getting-started/installation/#mod-loader-comparison). -You can load RML mods with MonkeyLoader but not the other way around. ### Resonite randomly gets stuck on initial loading screen when using RML -The exact cause of this is currently unknown. Consider using MonkeyLoader if you encounter such issues starting the game as it seems to not cause the same problem. +The exact cause of this is currently unknown. Consider using a different modloader if you encounter such issues starting the game as it seems to not cause the same problem. ## Crashes ### Renderer issues -Resonite's renderer is known to randomly crash suddenly - this is currently tracked at https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5325. +Resonite's renderer is known to randomly crash suddenly - this is currently tracked at [Issue #5325](https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5325). -There is also a known memory leak when running the renderer on Linux - however, it is uncertain currently whether this is an issue with Proton or there is something else at play - see https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5246. +There is also a known memory leak when running the renderer on Linux - however, it is uncertain currently whether this is an issue with Proton or there is something else at play - see [Issue #5246](https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5246). + +During VR gameplay, the renderer may cause a full GPU Reset if you have an AMD graphics card that is heavily loaded. Check `dmesg` if this occurs. ### Crash on launching in VR mode @@ -134,7 +142,7 @@ Symptoms: - Crashes only in VR mode, where after several seconds a black window appears and closes briefly, then Resonite stops within approximately 30 seconds. - The normal log file shows a renderer crash: `RendererProcess has exited. Shutting down.`. There's a Player.log file. -See https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5152 for more information. +See [Issue #5152](https://github.com/Yellow-Dog-Man/Resonite-Issues/issues/5152) for more information. ### Crash on launching in desktop & VR mode @@ -153,7 +161,7 @@ This can also happen because of **incorrect Steam launch options**. ### Crash on loading into a world with video players -On GE-Proton9-10 (for example), loading into a world with e.g. a YouTube video or live stream can crash the game. Try using the latest GE-Proton-RTSP release. +On GE-Proton9-10 (for example), loading into a world with e.g. a YouTube video or live stream can crash the game. Try using the latest [GE-Proton-RTSP](https://github.com/SpookySkeletons/proton-ge-rtsp/releases) release. ### Hanging on Launch -- 2.49.1 From 06407f0ec5a654739626bd2005553ee4ae545092 Mon Sep 17 00:00:00 2001 From: PoorPockets McNewHold Date: Sun, 2 Nov 2025 14:49:30 +0100 Subject: [PATCH 85/85] Add Euro Truck Simulator 2 & American Truck Simulator VR page --- content/docs/games/ets2-ats/_index.md | 122 ++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 content/docs/games/ets2-ats/_index.md diff --git a/content/docs/games/ets2-ats/_index.md b/content/docs/games/ets2-ats/_index.md new file mode 100644 index 0000000..29b0394 --- /dev/null +++ b/content/docs/games/ets2-ats/_index.md @@ -0,0 +1,122 @@ +--- +title: Euro Truck Simulator 2 & American Truck Simulator +weight: 50 +--- + +# Euro Truck Simulator 2 & American Truck Simulator + +[Euro Truck Simulator 2](https://store.steampowered.com/app/227300/Euro_Truck_Simulator_2/) & [American Truck Simulator](https://store.steampowered.com/app/270880/American_Truck_Simulator/) run fine on their native version. However, the VR experimental branch (oculus branch) is Windows only. +As such, you will need to run them in Proton + +In Steam, go into your game properties, and switch to the `oculus - Oculus+OpenVR+OpenXR` beta. +*If necessary, you can use `oculus_previous` or previous `oculus` branches to use an older version of the game for modding compatibility.* + +Then, create the following launch option: +``` +-openxr +``` + +## Keybindings + +Once in the main menu, you will notice the game starting as it was before and no output in your VR headset. **Press F11 to switch to the VR view**. This actually switches the rendering of the menu from the desktop one to the VR one. + +To reset your head position, **press F12 to reset your head to the center**. + +## Settings +These commands can be modified in the game configuration file to adjust some specific settings + +In Euro Truck Simulator 2, it is in + +`\userdata\\227300\remote\profiles\\config.cfg` + +In American Truck Simulator, it is in: + +`\userdata\\270880\remote\profiles\\config.cfg` + +|Commands|Description| +|-------|---------:| +r_manual_stereo_buffer_scale|Manually force the game rendering size past the 200% the game allows. Useful for supersampling. Render multiplied by the inputted value +r_manual_stereo_ui_mipmap |Manually deactivate the UI texture mipmaps. 0 to disable +r_manual_stereo_ui_lod_bias |Manually adjust the UI mipmaps. Values lower than zero increase sharpness. Alternative to disabling the mipmaps entirely +r_manual_stereo_mirror_mode|Choose the desktop mirror mode of the VR view. 1 is the default and shows right and left eye views. 0 Disable the desktop mirror mode. 2 zoom in the center of the eye area. 3 display the content of the left eye. **For streaming/recording the content of your game, I would suggest you use o_oculus_mirror_mode to 1 instead**. +r_manual_stereo_in_menu| Activate or deactivate the 3D menu. 1 is the VR menu. +r_manual_stereo_ui_fov| Manually control the 3D parameters of the plane on which the UI is shown. This one controls the view of all corners. +r_manual_stereo_ui_dist| This one controls the distance of the UI +r_manual_stereo_ui_x|This one controls the UI position on the X axis +r_manual_stereo_ui_y|This one controls the UI position on the Y axis +r_manual_stereo_ui_yaw|This one controls the UI yaw angle +r_manual_stereo_ui_pitch|This one controls the UI pitch angle +r_manual_stereo_ui_static_fov| Manually adjust the view of the static loading screen in 3D mode +r_manual_stereo_ui_radius| Adjust the curve of the UI view. At 0, the default, it is a pure planar view. Otherwise, the value represents a radius of the cylinder the view is displayed on +g_hmd_no_artifical_movement|Disable the window lookout animation when moving your head to 85 degrees. In the game, moving your view towards the window allows you to look manually behind the truck, in the dead corner +g_hmd_reduced_cabin_movement|Allow you to deactivate or decrease the applied cabin movement reduction in VR mode. +r_ipd_scale|Manually adjust your VR headset IPD scale +r_hmd_water_pixels_per_deg|Adjust the water reflection size in game. The game multiplies your VR headset FOV with this value +r_hmd_draw_controllers|Draw VR controllers if connected in-game. Note that the game doesn't natively support VR controllers. It is only useful for visualization, like where your steering wheel or desk is in-game +t_ignore_hmd_timing|Manually adjust the VR headset frame timing +o_openxr_force_symmetrical_fov|Switch from the default asymmetrical FOV to a symmetrical FOV for compatibility purposes +o_openxr_max_hor_fov_override|Reduce the maximum value of FOV in the horizontal direction +o_openxr_max_vert_fov_override|Reduce the maximum value of FOV in the vertical direction +o_openxr_left_left_override|Reduce the maximum render view of the left eye,left side view. +o_openxr_left_right_override|Reduce the maximum render view of the left eye, right side view. +o_openxr_left_top_override|Reduce the maximum render view of the left eye, top side view. +o_openxr_left_bottom_override|Reduce the maximum render view of the left eye, bottom view. +o_openxr_right_left_override|Reduce the maximum render view of the right eye,left side view. +o_openxr_right_right_override|Reduce the maximum render view of the right eye, right side view. +o_openxr_right_top_override|Reduce the maximum render view of the right eye, top side view. +o_openxr_right_bottom_override|Reduce the maximum render view of the right eye, bottom view. +o_openxr_threaded_submit|Disable the game second thread rendering of finished rendered frames +o_openxr_acquire_after_begin|Adjust the amount of time by which rendering can overlap into the next frame +o_openxr_async_wait|Experimental async rendering of the next frame +o_openxr_one_period_ahead|Modify the game timing calculation to show new frames to use time extrapolated by one refresh period ahead. +### Multiplayer + +Convoy mode does work with the oculus branch and in VR. The main drawback is that it isn't backward compatible with the other game branches. As such, other players will have to also switch to the same `oculus` branch to connect to you. +Thankfully, desktop users can safely switch to the oculus branch and play as usual, as the game starts in desktop mode by default and only switches to VR mode via **F11**. + +### Modding + +The popular TruckersMP multiplayer mod [doesn't yet allow users to use the experimental VR mode on their servers](https://forum.truckersmp.com/index.php?/topic/111098-vr-support/). +However, most mods installed from the workshop or locally, in the Proton Prefix Documents folder, should work fine. +Some suggested VR mods would be an edited VR advisor that positions the advisor at a better angle in-game. Made by FatesOfNorns + +[ETS2](https://steamcommunity.com/sharedfiles/filedetails/?id=2877653830) + +[ATS](https://steamcommunity.com/sharedfiles/filedetails/?id=2562138763) + +And on the opposite, for those wanting to play with the advisor UI, this mod helps users doing quick jobs by adding a portable GPS to all quick job trucks that don't have it (and would require the advisor GPS for smooth navigation). Made by Duke Leto + +[ETS2](https://steamcommunity.com/sharedfiles/filedetails/?id=2780470092) + +[ATS](https://steamcommunity.com/sharedfiles/filedetails/?id=2790522630) + +### Notes + +The games do have VR support officially added to official builds since version 1.55. However, they don't contain all the latest advancements of the oculus branch for virtual reality compatibility. + +> Starting with 1.55 it is possible to enable VR support also in the normal builds however there are a few extra caveats to that: +> + Only OpenXR is supported in those builds. + When the build is not part of a experimental* or oculus* branch on Steam, you will need to specify additional command line parameter -experimental_vr to enable VR support. + The VR features in the normal build are likely to lag behind the VR build. VR improvements happening after release of the normal build will be frequently only included in the VR build until the next major update. + It is possible that some VR changes will be initially too big hacks/too experimental to include in the normal build so they will be only available in the VR build until they can be integrated properly. + +To use it, on the stable version of the game : + +In Steam, in the game properties, switch the compatibility layer to your preferred version of Proton. + +This will force Steam to download and run the Windows version of the game, instead of the native Linux version. + +Then, create the following launch option: +``` +-openxr +``` + +#### Settings/Further Reading +[Official SCS Thread about the Virtual Reality experimental support](forum.scssoft.com/viewtopic.php?t=330624) + +[American Truck Simulator Virtual Reality thread](https://steamcommunity.com/app/270880/discussions/0/1480982971179620062/) + +[Euro Truck Simulator 2 Virtual Reality thread](https://steamcommunity.com/app/227300/discussions/0/648814844007204502/) + +[ETS2/ATS VR guide](https://steamcommunity.com/sharedfiles/filedetails/?id=1193990367) \ No newline at end of file -- 2.49.1