mirror of
https://gitlab.com/lvra/lvra.gitlab.io.git
synced 2025-07-01 17:25:31 +02:00
Merge branch 'main' of https://gitlab.com/lvra/lvra.gitlab.io
This commit is contained in:
commit
e2707c859b
33 changed files with 966 additions and 167 deletions
|
@ -8,6 +8,8 @@ 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:
|
||||
- "https://www.pcgamingwiki.com/"
|
||||
# IgnoreDirs:
|
||||
# - "lib"
|
||||
CacheExpires: "6h"
|
||||
|
|
|
@ -12,4 +12,6 @@ Feel free to contribute to this wiki yourself if you find anything useful that y
|
|||
|
||||
You can start with the [hardware table](/docs/hardware/).
|
||||
|
||||
After which you may want to take a look at the [Envision](/docs/fossvr/envision/) application for quick setup and compatibility with your PC Steam games.
|
||||
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.
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -8,4 +8,17 @@ title: OpenSUSE Tumbleweed
|
|||
- The OpenXR SDK package can be found in the [hardware:xr](https://build.opensuse.org/package/show/hardware:xr/OpenXR-SDK) [Open Build service](https://en.opensuse.org/openSUSE:Build_Service_FAQ) project. To build [Envision](/docs/fossvr/envision/) profiles, the devel package will also have to be installed.
|
||||
- The set of [Monado Vulkan Layers](/docs/hardware/) is provided by a [community package](https://build.opensuse.org/package/show/home:Etch-9:xr/monado-vulkan-layers-git).
|
||||
|
||||
Any other package in hardware:xr is really outdated and should not be used. Additional information on third-party repositories can be found here: [Additional package repositories (opensuse.org)](https://en.opensuse.org/Additional_package_repositories)
|
||||
Any other package in hardware:xr is really outdated and should not be used. Additional information on third-party repositories can be found here: [Additional package repositories (opensuse.org)](https://en.opensuse.org/Additional_package_repositories)
|
||||
|
||||
## SteamVR
|
||||
|
||||
SteamVR may give you a "SteamVR setup is incomplete" error on OpenSUSE Tumbleweed.
|
||||
This happens because SteamVR needs to run the `setcap`/`getcap` programs, but can't find them.
|
||||
|
||||
To fix it, run these commands:
|
||||
|
||||
```sh
|
||||
sudo zypper install libcap-progs
|
||||
sudo ln -s /sbin/getcap /usr/bin/
|
||||
sudo ln -s /sbin/setcap /usr/bin/
|
||||
```
|
31
content/docs/distros/Void_Linux.md
Normal file
31
content/docs/distros/Void_Linux.md
Normal file
|
@ -0,0 +1,31 @@
|
|||
---
|
||||
title: Void Linux
|
||||
---
|
||||
|
||||
# Void Linux
|
||||
|
||||
## Envision
|
||||
|
||||
The [official Appimage](https://gitlab.com/gabmus/envision#download-envision)
|
||||
is the easiest way to get Envision working on Void Linux.
|
||||
|
||||
Just make sure you have all necessary dependencies installed for building your
|
||||
desired profile. For Monado, all of the dependencies can be found in the Void
|
||||
repositories - see the following section [Building Monado](#building-monado)
|
||||
for the full list.
|
||||
|
||||
Envision may warn you about other missing dependencies. They can usually be
|
||||
found in the Void repositories; you may also need `-devel` for some packages,
|
||||
for example: `libbsd-devel`
|
||||
|
||||
## Building Monado
|
||||
|
||||
Monado may appear to build fine but if you are missing some dependencies only
|
||||
the null compositor will work. To make a successful build make sure you have
|
||||
the following dependencies installed:
|
||||
|
||||
```bash
|
||||
sudo xbps-install pkg-config python3 wayland-devel glslang vulkan-loader-devel libglvnd-devel eigen libusb-devel eudev-libudev-devel v4l-utils-devel libxcb-devel wayland-devel libX11-devel hidapi-devel libopencv-devel libjpeg-turbo-devel libbluetooth-devel SDL2-devel cJSON-devel gstreamer1-devel gst-plugins-base1-devel libbsd-devel openxr-devel
|
||||
```
|
||||
|
||||
There is a [void-packages PR](https://github.com/void-linux/void-packages/pull/53279) with templates for xrgears, Monado and libsurvive that you can use, however it is easier and recommended to just use Envision to build everything for you.
|
|
@ -6,6 +6,59 @@ title: NixOS
|
|||
|
||||
General documentation about VR is provided on the [NixOS Wiki](https://wiki.nixos.org/wiki/VR).
|
||||
|
||||
## Recommendations
|
||||
The recommended way to set up NixOS for VR is by using [services.monado](https://search.nixos.org/options?channel=unstable&query=services.monado) or [services.wivrn](https://search.nixos.org/options?channel=unstable&query=services.wivrn).
|
||||
|
||||
You may also want to install [opencomposite](https://search.nixos.org/packages?channel=unstable&query=opencomposite) (or xrizer, currently only available in [nixpkgs-xr](https://github.com/nix-community/nixpkgs-xr)) and [wlx-overlay-s](https://search.nixos.org/packages?channel=unstable&query=wlx-overlay-s).
|
||||
|
||||
For OpenComposite or XRizer, you may want to configure `~/.config/openvr/openvrpaths.vrpath` to point to your OpenComposite or XRizer installation. See below for an example using [home-manager](https://github.com/nix-community/home-manager).
|
||||
|
||||
```nix
|
||||
xdg.configFile."openvr/openvrpaths.vrpath".text = ''
|
||||
{
|
||||
"config" :
|
||||
[
|
||||
"~/.local/share/Steam/config"
|
||||
],
|
||||
"external_drivers" : null,
|
||||
"jsonid" : "vrpathreg",
|
||||
"log" :
|
||||
[
|
||||
"~/.local/share/Steam/logs"
|
||||
],
|
||||
"runtime" :
|
||||
[
|
||||
"${pkgs.opencomposite}/lib/opencomposite"
|
||||
],
|
||||
"version" : 1
|
||||
}
|
||||
'';
|
||||
```
|
||||
|
||||
If you need to run the latest possible version of any of these pieces of software for whatever reason, above what is packaged in NixOS, you may want to check out Community Overlays at the bottom of this article.
|
||||
|
||||
If you need to run a branch of Monado or WiVRn, you can use `.overrideAttrs`, see below for an example of doing this for Coreforge's Monado Pimax fork.
|
||||
|
||||
```nix
|
||||
monado = {
|
||||
enable = true;
|
||||
defaultRuntime = true;
|
||||
highPriority = true;
|
||||
|
||||
package = (pkgs.monado.overrideAttrs {
|
||||
pname = "monado-pimax"; # optional but helps distinguishing between packages
|
||||
|
||||
src = pkgs.fetchFromGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
owner = "Coreforge";
|
||||
repo = "monado";
|
||||
rev = "f858ee5dd8ca7696bd9219e8278f2671df56fe6e";
|
||||
hash = "sha256-Si56yvG+oSfyUaPAlF1FgB7WJo8td1xuVxYnkJvbu4o=";
|
||||
};
|
||||
});
|
||||
};
|
||||
```
|
||||
|
||||
## Monado
|
||||
Monado is supported natively on NixOS using the [services.monado](https://search.nixos.org/options?channel=unstable&query=services.monado) since 24.05.
|
||||
|
||||
|
@ -24,19 +77,35 @@ As WiVRn is built around Monado, most, if not all, settings for Monado are also
|
|||
|
||||
You can find WiVRn on the official [NixOS wiki](https://wiki.nixos.org/wiki/VR#WiVRn).
|
||||
|
||||
### VRChat
|
||||
To get VRChat working with monado on nix, use the `env PRESSURE_VESSEL_FILESYSTEMS_RW=$XDG_RUNTIME_DIR/monado_comp_ipc %command%` launch options on steam and click play with the "Launch VRChat in Steam VR" mode. It should open it on your desktop for preview and display it through monado.
|
||||
### Steam Games
|
||||
To get Steam games working with monado on NixOS, use the `env PRESSURE_VESSEL_FILESYSTEMS_RW=$XDG_RUNTIME_DIR/monado_comp_ipc %command%` launch options on steam and, if prompted, choose the SteamVR launch option.
|
||||
|
||||
## OpenXR apps
|
||||
All OpenXR apps should work out of the box, assuming you have a default runtime set.
|
||||
|
||||
To set a default OpenXR runtime, you can either use `services.monado.defaultRuntime` (the same option is present for WiVRn) or create/modify `~/.config/openxr/1/active_runtime.json`.
|
||||
|
||||
## SteamVR
|
||||
SteamVR works like it does on other distros for the most part. Unfotrunately, if it doesn't work out of the box, troubleshooting it on NixOS can be close to impossible due to NixOS's structure and SteamVR's proprietary nature.
|
||||
SteamVR works like it does on other distros for the most part. Unfortunately, if it doesn't work out of the box, troubleshooting it on NixOS can be close to impossible due to NixOS's structure and SteamVR's proprietary nature.
|
||||
|
||||
[Asynchronous reprojection does not work](https://github.com/NixOS/nixpkgs/issues/217119) without a kernel patch.
|
||||
[Asynchronous reprojection does not work](https://github.com/NixOS/nixpkgs/issues/217119) without a [kernel patch](https://github.com/Frogging-Family/community-patches/blob/a6a468420c0df18d51342ac6864ecd3f99f7011e/linux61-tkg/cap_sys_nice_begone.mypatch). However, this patch is only applicable for AMD GPUs. There is no way to get SteamVR asynchronous reprojection working on Nvidia.
|
||||
|
||||
[setcap doesn't work](https://github.com/NixOS/nixpkgs/issues/42117#issuecomment-996731579) but can be done manually.
|
||||
|
||||
## Envision
|
||||
[Envision](../../fossvr/envision/) has been packaged in [nixos unstable](https://search.nixos.org/packages?channel=unstable&from=0&size=50&sort=relevance&type=packages&query=+envision) but is still in early development and is not recommended. It may also mess with your `monado.service` setup in unexpected ways.
|
||||
[Envision](../../fossvr/envision/) has been packaged in [nixos 24.11](https://github.com/NixOS/nixpkgs/blob/nixos-24.11/pkgs/by-name/en/envision/package.nix) but is still in early development and is not recommended. It may also mess with your `monado.service` setup in unexpected ways.
|
||||
|
||||
Notably, if you try to use Envision on NixOS, by default, binaries will be dynamically linked, not statically linked, which will cause many issues with VR apps. Also, if you try to use Envision with a dedicated PCVR headset (ie, Monado with an Index, Pimax, etc), asynchronous reprojection will not work without an AMD-only kernel patch, for the same reason as SteamVR.
|
||||
|
||||
### Removing Envision
|
||||
In case you did not follow the above advice, and attempted to use Envision on NixOS, you may want to undo the changes it has made to your home folder, so `services.monado`, `services.wivrn`, `opencomposite` and/or `xrizer` may work correctly.
|
||||
|
||||
You will want to delete or modify `~/.config/openxr/1/active_runtime.json`. Note that this is an override for `/etc/xdg/openxr/1/active_runtime.json`, so if you are using `services.monado.defaultRuntime = true` (or the WiVRn equivalent) then you can safely delete this file. Otherwise, you'll want to point it to your Monado installation, which will be somewhere in `/nix/store`.
|
||||
|
||||
You will also want to modify `~/.config/openvr/openvrpaths.vrpath`. Remove any runtimes that point to Envision's compiled binaries.
|
||||
|
||||
I recommend using [home-manager](https://github.com/nix-community/home-manager) to automate writing these config files, as these paths will change regularly, due to the nature of NixOS.
|
||||
|
||||
## Community Overlays
|
||||
[Nixpkgs-xr](https://github.com/nix-community/nixpkgs-xr) provides overlays for the exisiting nixpkgs. If the mainline packages are broken for you (whether it be compiling or in function) for any reason, adding this, as described in the readme, might help.
|
||||
[Nixpkgs-xr](https://github.com/nix-community/nixpkgs-xr) provides overlays for the exisiting nixpkgs. If the mainline packages are broken for you (whether it be compiling or in function) for any reason, adding this, as described in the readme, might help. It also provides XR-related packages considerably before they are available in NixOS.
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ If you want an alternative to SteamVR, there are a few options you can use, depe
|
|||
|
||||
In either case, here are some related projects you might want to check out:
|
||||
|
||||
- [OpenComposite](/docs/fossvr/opencomposite/) allows you to run OpenVR games
|
||||
- [xrizer](/docs/fossvr/xrizer/) and [OpenComposite](/docs/fossvr/opencomposite/) allow you to run OpenVR games
|
||||
- [Envision](/docs/fossvr/envision/) is a GUI to setup and run either Monado or WiVRn
|
||||
- [Stardust XR](/docs/fossvr/stardust/) is an XR environment to run 2D and (eventually) 3D apps
|
||||
- [WlxOverlay-S](/docs/fossvr/wlxoverlay-s/) is an overlay to access your desktop from VR + playspace mover
|
||||
|
|
|
@ -16,16 +16,14 @@ Envision is a graphical app that acts as an orchestrator to get a full [Monado](
|
|||
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 %}}
|
||||
**Warning**
|
||||
|
||||
Envision is still considered alpha-quality and highly experimental.
|
||||
We recommend **against** using Envision if your distro is NixOS. See [our NixOS page](/docs/distros/nixos/#envision) for more info.
|
||||
{{% /hint %}}
|
||||
|
||||
You can download the latest AppImage snapshot from [GitLab Pipelines](https://gitlab.com/gabmus/envision/-/pipelines?ref=main&status=success).
|
||||
|
||||
If you are on Arch, You can use the [AUR package](https://aur.archlinux.org/packages/envision-xr-git) `envision-xr-git`
|
||||
|
||||
## Getting Started
|
||||
## Getting started
|
||||
|
||||
Upon launching Envision, you will need to select a profile on the bottom of the left side bar.
|
||||
|
||||
|
@ -40,7 +38,57 @@ Profiles that are available by default:
|
|||
|
||||
Monado does not have a launcher app, and so after connecting your headset, you will likely see a solid color. This means you can now start your VR title.
|
||||
|
||||
You may want to launch [WlxOverlay-S](/docs/fossvr/wlxoverlay-s/) first and use it to access your desktop and other VR titles. You can even start it automatically alongside the Monado session: just enter `wlx-overlay-s --openxr` into the "Autostart" field of your Envision profile.
|
||||
You may want to launch [WlxOverlay-S](/docs/fossvr/wlxoverlay-s/) first and use it to access your desktop and other VR titles. You can even start it automatically alongside the Monado/WiVRn session, by enabling it in the [Plugins](#plugin-system) menu.
|
||||
|
||||
## Plugin system
|
||||
|
||||
The plugin system for Envision allows you to launch anything (usually OpenXR overlays) alongside the Monado/WiVRn session.
|
||||
|
||||
Open the Plugins window by clicking the kebab menu (three dots) at the top of the Envision window, and clicking "Plugins". Here, you can install overlays like [WlxOverlay-S](/docs/fossvr/wlxoverlay-s/) or [Stardust XR](/docs/fossvr/stardust/) (or a custom plugin — see below). After installing plugins and toggling them on, once you start a profile, the enabled plugins will start alongside it.
|
||||
|
||||
Plugins are the replacement for the "autostart" feature from older versions.
|
||||
|
||||
### Adding a custom plugin
|
||||
|
||||
The plugins included in the store are just a quick front-end to the latest release AppImages. For everything else, you can create a custom plugin that runs any given executable script or binary.
|
||||
|
||||
For example, if you installed WlxOverlay-S from AUR or built it from source, you can disable the original WlxOverlay-S plugin and create a custom plugin to run it:
|
||||
|
||||
1. Create a new file `~/.local/bin/wlx-but-newer` (creating the `~/.local/bin` directory if it does not exist).
|
||||
2. Give it the content:
|
||||
```bash
|
||||
#!/usr/bin/env bash
|
||||
/usr/bin/wlx-overlay-s --openxr
|
||||
```
|
||||
3. `chmod +x ~/.local/bin/wlx-but-newer`
|
||||
4. In Envision, open the Plugins window.
|
||||
5. Add a custom plugin by clicking the ➕ plus button.
|
||||
6. For the executable file, point it to the script you just created.
|
||||
7. Name the plugin "Wlx but newer".
|
||||
8. Save, and then enable the new plugin.
|
||||
|
||||
Now starting the profile will also start your custom or AUR version of WlxOverlay-S.
|
||||
|
||||
### Plugin troubleshooting
|
||||
|
||||
On some systems, a built-in plugin may not launch. This can happen for a number of reasons, but one in particular is so obtuse that it's worth a mention:
|
||||
|
||||
Please *uninstall* AppImageLauncher. It intercepts the normal AppImage starting behavior in a dirty way that we can't predict.
|
||||
|
||||
You can tell if you are affected if, when you run the WlxOverlay-S AppImage in terminal (whether in plugin form in `~/.local/share/envision/plugins`, or downloaded directly from GitHub), you only get the output `execv error: No such file or directory`.
|
||||
|
||||
## Steam Flatpak
|
||||
|
||||
To use Envision with the Flatpak version of Steam, you'll need to add the following filesystem overrides to Steam using an application like Flatseal:
|
||||
- `xdg-data/envision:ro`
|
||||
- `xdg-run/monado_comp_ipc`
|
||||
- `xdg-config/openxr:ro`
|
||||
- `xdg-config/openvr:ro`
|
||||
|
||||
Alternatively, you can use the following command:
|
||||
```shell
|
||||
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
|
||||
```
|
||||
|
||||
## Experimental feature settings
|
||||
|
||||
|
@ -48,7 +96,7 @@ The following resources can be entered into your Envision profile repo and branc
|
|||
|
||||
### Full body Lighthouse tracking
|
||||
|
||||
Full body is now provided by default in Monado & OpenComposite through the XR_MNDX_xdev_space OpenXR vendor extension. This allows any tracked "xdev" in Monado to be forwarded as a raw pose without bindings to applications. OpenComposite exposes these as fake Vive FBT trackers for use.
|
||||
Full body is no longer experimental; it is enabled by default in Monado & OpenComposite through the XR_MNDX_xdev_space OpenXR vendor extension. This allows any tracked "xdev" in Monado to be forwarded as a raw pose without bindings to applications. OpenComposite exposes these as fake Vive FBT trackers for use.
|
||||
|
||||
### WMR & Rift S controller tracking
|
||||
|
||||
|
@ -79,4 +127,10 @@ The Oculus Rift CV1 is supported on the OpenHMD profile of Envision.
|
|||
|
||||
Start the profile with your headset placed on the floor in clear view of all bases to generate this file as your calibrated playspace origin first run and delete it to reset the configuration.
|
||||
|
||||
A calibration of base stations will be saved to disk at `~/.config/openhmd/rift-room-config.json`.
|
||||
A calibration of base stations will be saved to disk at `~/.config/openhmd/rift-room-config.json`.
|
||||
|
||||
### Fix View
|
||||
|
||||
In Steam OpenVR games, the eye's are not calibrated properly, and result in double vision or cross eye effect.
|
||||
|
||||
You can add "OXR_PARALLEL_VIEWS=1 %command%" to the launch options to fix this.
|
||||
|
|
|
@ -67,3 +67,12 @@ paru -S envision-xr-git
|
|||
- Leave Monado open.
|
||||
- Start the new game.
|
||||
- Always turn on the controllers **before** starting Envision.
|
||||
|
||||
- Update controller firmware while running Windows. It's necessary for controllers to work in Linux, updating them from Linux is currently impossible.
|
||||
- Make sure that you **don't factory-reset the controllers** (performed by long-pressing the pairing button when controllers are off). This action restores the factory firmware version.
|
||||
- If monado fails to start with the following error, you likely need to update the firmware in Mixed Reality Portal:
|
||||
```
|
||||
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)
|
||||
```
|
||||
|
|
|
@ -33,6 +33,24 @@ In order to use the SteamVR lighthouse driver in Monado, you just need to set th
|
|||
|
||||
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
|
||||
|
||||
In Steam OpenVR games, the eye's are not calibrated properly, and result in double vision or cross eye effect.
|
||||
|
||||
You can add "OXR_PARALLEL_VIEWS=1 %command%" to the launch options to fix this.
|
||||
|
||||
## Envision
|
||||
|
||||
[Envision](/docs/fossvr/envision/) provides a fairly low-barrier setup and development of both Monado and OpenComposite on most any modern distro.
|
||||
[Envision](/docs/fossvr/envision/) provides a fairly low-barrier setup and development of both Monado and OpenComposite on most any modern distro.
|
||||
|
||||
# Troubleshooting
|
||||
|
||||
## [NVIDIA-specific] "NVIDIA: No allowlisted displays found!"
|
||||
|
||||
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"`.
|
||||
- HMD display completely missing from the list: Try unplugging and replugging the power adapter.
|
||||
|
||||
## "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`.
|
|
@ -17,7 +17,21 @@ OpenComposite is required for Steam Play games to work in VR regardless of API.
|
|||
|
||||
Contributions to improve the OpenVR to OpenXR mapping are welcome.
|
||||
|
||||
## Rebinding Controls
|
||||
## Forcing additional devices as trackers
|
||||
|
||||
OpenComposite has the environment variable `OPENCOMPOSITE_TRACKER_SERIALS` to allow using non-tracker devices as trackers in SteamVR games. The expected format is as follows: `serial1;serial2` where each 'serial' is a device serial like `LHR-00000000` or `WiVRn HMD`. You can set this on games by setting this launch option in Steam: `env OPENCOMPOSITE_TRACKER_SERIALS="LHR-00000001;LHR-00000002" %command%`.
|
||||
|
||||
To obtain info for lighthouse devices, you may look at the top of the Monado stdout when using steamvr_lh. For other types of devices there are multiple ways of obtaining device serials:
|
||||
|
||||
- OpenComposite log file
|
||||
|
||||
The OpenComposite log file at `~/.local/state/OpenComposite/logs/opencomposite.log` will log all seen devices when checking for trackers, so you can search for `Checking for generic trackers...` in the log file and look below for `Found usable xdev`.
|
||||
|
||||
- motoc
|
||||
|
||||
motoc has the `show` subcommand for viewing all device names, serials, and positions relative to the space origin.
|
||||
|
||||
## Rebinding controls
|
||||
|
||||
> Changing OpenVR bindings is currently a very manual process. This will change in the future.
|
||||
|
||||
|
|
|
@ -9,19 +9,23 @@ weight: 52
|
|||
- [Github Organization](https://github.com/StardustXR/)
|
||||
|
||||
A system UI to make using all your 2D—and eventually OpenXR—apps together intuitive, accessible, and fun by using community-made virtual objects as interfaces.
|
||||
Stardust provides a 3D environment, where anything from 2D windows (including your existing apps!), to 3D apps built from objects, can exist together in physical space.
|
||||
|
||||

|
||||
|
||||
## Setup
|
||||
|
||||
First you need to install and run the server from https://github.com/StardustXR/server. Follow the README. If you have issues getting OpenXR to work, try running https://gitlab.freedesktop.org/monado/demos/xrgears first.
|
||||
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.
|
||||
|
||||
After the server is running, you'll need to run some clients. Here's a demo showing some off:
|
||||

|
||||
```
|
||||
sudo dnf install telescope
|
||||
```
|
||||
|
||||
Non-exhaustive list of clients:
|
||||
- [Flatland](https://github.com/StardustXR/flatland): A panel item UI (XR equivalent of a window manager) so you can interact with your apps using virtual touchscreens. To show Wayland apps, run them with the proper `WAYLAND_DISPLAY` environment variable, in the server's startup script, or use a stardust launcher such as gravity or protostar. Flatland works great in 3DoF or 6DoF with direct touch and pointer interaction.
|
||||

|
||||
- [Gravity](https://github.com/StardustXR/gravity): Command line tool to launch programs inside of stardust at a particular offset in space. This is nestable so you can run a script using gravity, and then gravity inside that script to make a whole composed setup out of thin air! It also ensures that everything launched through it will properly connect to the stardust server, such as wayland clients.
|
||||
- [Protostar](https://github.com/StardustXR/protostar): Prototype app launcher library/examples. Grab app icons and drop them in space to launch apps where they're dropped.
|
||||
- [Magnetar](https://github.com/StardustXR/magnetar): Workspaces in 3D. Any object inside the rings will move with them, so you can move a bunch of stuff out of the way temporarily when you don't need it.
|
||||
Here's a demo showing some off some of what Stardust XR is like:
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/v2WblwbaLaA" frameBorder={0} allow="autoplay; encrypted-media" allowFullScreen style={{maxWidth: '100%', aspectRatio: '16/9'}} ></iframe>
|
||||
|
||||
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).
|
||||
|
|
|
@ -11,13 +11,42 @@ title: WiVRn
|
|||
|
||||
> WiVRn wirelessly connects a standalone VR headset to a Linux computer. You can then play PCVR games on the headset while processing is done on the computer.
|
||||
|
||||
WiVRn is based on [Monado](/docs/fossvr/monado/) and can be used with [OpenComposite](/docs/fossvr/opencomposite/) to support a majority of titles available for SteamVR. A wide range of standalone headsets are supported.
|
||||
WiVRn is based on [Monado](/docs/fossvr/monado/) and can be used with [xrizer](/docs/fossvr/xrizer/) or [OpenComposite](/docs/fossvr/opencomposite/) to support a majority of titles available for SteamVR. A wide range of standalone headsets are supported.
|
||||
|
||||
## Installing WiVRn
|
||||
|
||||
We recommend using [Envision](/docs/fossvr/envision/) to install and launch WiVRn & OpenComposite. Envision will handle all configuration seamlessly and avoids many of the pitfalls of a manual setup.
|
||||
We recommend using distribution packages when available (see below) or the [WiVRn Flatpak](https://flathub.org/apps/io.github.wivrn.wivrn) when one is unavailable.
|
||||
|
||||
Alternatively, you can use the [WiVRn Flatpak](https://flathub.org/apps/io.github.wivrn.wivrn) which includes OpenComposite as part of it. Processes in flatpak cannot take advantage of setcap, and so your performance may suffer when compared to Envision.
|
||||
### Arch Linux
|
||||
|
||||
Packages are available on [AUR](https://wiki.archlinux.org/title/Arch_User_Repository), you will need the following packages:
|
||||
|
||||
* `wivrn-server` and `wivrn-dashboard` for base feature + GUI (latest release), or `wivrn-full-git` for development version
|
||||
* `opencomposite-git` or `xrizer-git` for compatibility with OpenVR and proton
|
||||
|
||||
### Fedora
|
||||
|
||||
The `wivrn` package will automatically pull `wivrn-dashboard` and `opencomposite` as dependencies, it can be installed with `sudo dnf install wivrn`.
|
||||
|
||||
To make use of patented codecs for video encoding like H264/H265, you must [install the codecs from RPMFusion](https://rpmfusion.org/Howto/Multimedia).
|
||||
|
||||
### Gentoo Linux
|
||||
|
||||
Packages are available on [Guru](https://wiki.gentoo.org/wiki/Project:GURU), you will need `media-libs/wivrn` and `media-libs/opencomposite`.
|
||||
|
||||
### NixOS
|
||||
|
||||
See [`services.wivrn`](https://search.nixos.org/options?channel=24.11&size=50&sort=relevance&type=packages&query=services.wivrn).
|
||||
|
||||
### Flatpak (all distributions)
|
||||
|
||||
The [WiVRn Flatpak](https://flathub.org/apps/io.github.wivrn.wivrn) has the latest released version and can be installed with `flatpak install io.github.wivrn.wivrn` or via your software centre application.
|
||||
|
||||
For development releases, you can download the `wivrn-flatpak-x86_64` artifact from the GitHub [Build](https://github.com/WiVRn/WiVRn/actions/workflows/Build.yml?query=branch%3Amaster) action.
|
||||
|
||||
### Envision (guided build)
|
||||
|
||||
You can use [Envision](/docs/fossvr/envision/) to install and launch WiVRn & OpenComposite - this may be the easier route if you use SteamVR Lighthouse-tracked devices or SlimeVR trackers.
|
||||
|
||||
## General WiVRn Notes
|
||||
|
||||
|
@ -25,43 +54,96 @@ WiVRn uses Avahi for network discovery. Ensure it is running with the following
|
|||
```bash
|
||||
systemctl enable --now avahi-daemon
|
||||
```
|
||||
(If Avahi is not available, the IP address of the server must be entered into the client.)
|
||||
If Avahi is not available, `--no-publish-service` bypasses it, and the IP address of the server must be entered into the client.
|
||||
|
||||
If a firewall is installed, make sure ports 5353/UDP and 9757/UDP+TCP are open for Avahi and WiVRn itself, respectively.
|
||||
If a firewall is installed, make sure ports 5353/UDP and 9757/UDP+TCP are open for Avahi and WiVRn respectively.
|
||||
|
||||
If using Nvidia proprietary drivers, have [Monado Vulkan Layers](https://gitlab.freedesktop.org/monado/utilities/vulkan-layers) installed, otherwise games will crash with a segmentation fault.
|
||||
If using Nvidia proprietary drivers older than 565, install the [Monado Vulkan Layers](https://gitlab.freedesktop.org/monado/utilities/vulkan-layers), otherwise games will crash with a segmentation fault.
|
||||
|
||||
For audio in WiVRn, you will need to assign applications, or the system as a whole, to output audio to the virtual output "WiVRn" which is created upon connection between the server and the headset.
|
||||
|
||||
## Steam Flatpak
|
||||
|
||||
It is possible to use WiVRn Flatpak with Steam Flatpak, though Steam Flatpak isn't generally recommended for VR. If you are using Steam Flatpak, you just need to grant it access to the relevant paths:
|
||||
|
||||
```bash
|
||||
flatpak override --user --filesystem=xdg-config/openxr:ro com.valvesoftware.Steam
|
||||
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
|
||||
```
|
||||
|
||||
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:
|
||||
|
||||
```bash
|
||||
flatpak override --user --env=PRESSURE_VESSEL_FILESYSTEMS_RW=/run/user/1000/wivrn/comp_ipc:/var/lib/flatpak/app/io.github.wivrn.wivrn com.valvesoftware.Steam
|
||||
```
|
||||
|
||||
## Wired WiVRn
|
||||
|
||||
Use WiVRn with a cable instead of Wifi. Use a 5Gbps cable & port at the very least.
|
||||
You can use WiVRn with a cable instead of Wi-Fi. Use a 5Gbps cable & port at the very least.
|
||||
|
||||
WiVRn version: 0.19+
|
||||
- Install adb on your system - usually the package is named `android-tools` or something similar.
|
||||
- Connect the headset via USB.
|
||||
- Run `adb devices` in your terminal.
|
||||
- If you have never authorised USB debugging from this computer before, put the headset on shortly and select 'Always allow USB debugging from this computer'.
|
||||
Then depending on your installation method, follow these steps:
|
||||
|
||||
Using the dashboard:
|
||||
- The 'Connect via USB' button under the pairing toggle should have a list of devices - select any one to initiate a wired connection.
|
||||
|
||||
Using Envision:
|
||||
- Connect the headset via USB
|
||||
- Click the `Start WiVRn Client (Wired)` button in Envision.
|
||||
- If it's not there, an Envision update might be necessary.
|
||||
|
||||
Manual steps:
|
||||
- Connect the headset via USB
|
||||
- If WiVRn is running on the headset, close it now.
|
||||
- While in the system lobby of the headset, run the following `adb` commands on the PC:
|
||||
```bash
|
||||
adb reverse tcp:9757 tcp:9757
|
||||
adb shell am start -a android.intent.action.VIEW -d "wivrn+tcp://127.0.0.1" org.meumeu.wivrn
|
||||
```
|
||||
Manual steps: See the [README](https://github.com/WiVRn/WiVRn/blob/master/README.md?plain=1#L114).
|
||||
|
||||
## WiVRn + SlimeVR trackers
|
||||
|
||||
To use SlimeVR trackers through WiVRn, you currently must use a [fork](https://github.com/notpeelz/WiVRn) of WiVRn:
|
||||
|
||||
### Usage with Envision
|
||||
|
||||
To use this fork within Envision, edit these fields in your profile:
|
||||
- XR Service Repo: `https://github.com/notpeelz/WiVRn.git`
|
||||
- XR Service Branch: `solarxr-patches`
|
||||
- XR Service CMake Flags: Add `WIVRN_FEATURE_SOLARXR=ON`
|
||||
|
||||
Then save and clean build the profile.
|
||||
|
||||
### NixOS setup
|
||||
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, ... }:
|
||||
|
||||
{
|
||||
services.wivrn = {
|
||||
enable = true;
|
||||
defaultRuntime = true;
|
||||
package = pkgs.wivrn.overrideAttrs (old: rec {
|
||||
version = "[COMMIT HASH HERE]";
|
||||
src = lib.fetchFromGitHub {
|
||||
owner = "notpeelz";
|
||||
repo = "WiVRn";
|
||||
rev = version;
|
||||
# This will throw an error when evaluating and give you the correct hash - put that here
|
||||
hash = "";
|
||||
};
|
||||
cmakeFlags = old.cmakeFlags ++ [
|
||||
(lib.cmakeBool "WIVRN_FEATURE_SOLARXR" true)
|
||||
];
|
||||
});
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
## WiVRn + Lighthouse driver
|
||||
|
||||
This section covers using WiVRn with any lighthouse-tracked device: Index/Vive controllers, Vive/Tundra trackers, etc.
|
||||
This section covers using WiVRn 0.19 and newer with any Lighthouse-tracked device (such as Index/Vive controllers, Vive/Tundra trackers, etc.)
|
||||
|
||||
WiVRn version: 0.19+
|
||||
You must have SteamVR installed (no need to run it).
|
||||
|
||||
Have SteamVR installed (no need to run it).
|
||||
|
||||
In Envision, set WiVRn Profile as such:
|
||||
### Envision
|
||||
Set WiVRn Profile as such:
|
||||
- XR Service CMake Flags:
|
||||
- `WIVRN_FEATURE_STEAMVR_LIGHTHOUSE=ON`
|
||||
- Environment Variables:
|
||||
|
@ -70,20 +152,41 @@ In Envision, set WiVRn Profile as such:
|
|||
|
||||
Perform a **Clean Build** after changing the CMake flags!
|
||||
|
||||
If not using Envision, simply pass `-DWIVRN_FEATURE_STEAMVR_LIGHTHOUSE=ON` to cmake and export the env variables before starting `wivrn-server`.
|
||||
### NixOS
|
||||
Override the `wivrn` package and launch wivrn-server with the required environment variables:
|
||||
```nix
|
||||
{
|
||||
services.wivrn = {
|
||||
enable = true;
|
||||
defaultRuntime = true;
|
||||
package = pkgs.wivrn.overrideAttrs (old: {
|
||||
cmakeFlags = old.cmakeFlags ++ [
|
||||
(lib.cmakeBool "WIVRN_FEATURE_STEAMVR_LIGHTHOUSE" true)
|
||||
];
|
||||
});
|
||||
monadoEnvironment = {
|
||||
WIVRN_USE_STEAMVR_LH = "1";
|
||||
LH_DISCOVER_WAIT_MS = "6000";
|
||||
};
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
[Motoc](/docs/fossvr/motoc/) will be used to calibrate the two tracking technologies to work together.
|
||||
### Manual
|
||||
Simply pass `-DWIVRN_FEATURE_STEAMVR_LIGHTHOUSE=ON` to CMake and export the above environment variables before starting `wivrn-server`.
|
||||
|
||||
Discovery happens only on first connection, so be sure to **have all lighthouse devices powered on and in line of sight of base stations before connecting the headset!**
|
||||
### Usage tips
|
||||
|
||||
Once a device is discovered, it may be powered off and then back on later.
|
||||
Discovery happens only on first connection, so be sure to **have all Lighthouse devices powered on and in line-of-sight of your base stations before connecting the headset!** Once a device is discovered, you may power it off and on at-will.
|
||||
|
||||
You can use [Motoc](/docs/fossvr/motoc/) to calibrate the two tracking technologies to work together.
|
||||
|
||||
Once video appears in the headset, check `motoc monitor` to make sure your devices all show up.
|
||||
|
||||
If one or more devices are missing, try:
|
||||
- Spread the devices out more; lighthouse devices get discovered quicker if they're not piled up on each other. Simply strapping them on is good, too.
|
||||
- Spread the devices out more; Lighthouse devices get discovered quicker if they're not piled up on each other. Simply strapping them on is good, too.
|
||||
- Increase `LH_DISCOVER_WAIT_MS`, though this delays the client on first connection.
|
||||
|
||||
To re-discover devices, restart WiVRn server.
|
||||
|
||||
At this point, your lighthouse devices will be randomly floating about somewhere. To calibrate them, follow the guide in the [Motoc README](https://github.com/galister/motoc/blob/main/README.md).
|
||||
At this point, your Lighthouse devices will be randomly floating about somewhere. To calibrate them, follow the guide in the [Motoc README](https://github.com/galister/motoc/blob/main/README.md).
|
||||
|
|
102
content/docs/fossvr/wmr_lighthouse_hacky.md
Normal file
102
content/docs/fossvr/wmr_lighthouse_hacky.md
Normal file
|
@ -0,0 +1,102 @@
|
|||
---
|
||||
title: WMR Lighthouse (No SteamVR)
|
||||
weight: 9000
|
||||
---
|
||||
# WMR Lighthouse (No SteamVR)
|
||||
|
||||
This describes a WMR Lighthouse setup using the `steamvr_lh` driver.
|
||||
|
||||
It's different from [WMR Lighthouse](/docs/steamvr/wmr-lighthouse/)
|
||||
|
||||
This doesn't use steamvr to re-map the head from some lighthouse tracking device.
|
||||
Instead it does this natively in monado, so SteamVR is only necessary for the proprietary `steamvr_lh` driver.
|
||||
|
||||
For now this is a hacky approach requiring a Monado fork, as Monado's builders don't support the functionality yet:
|
||||
|
||||
* https://gitlab.freedesktop.org/monado/monado/-/issues/459
|
||||
* https://gitlab.freedesktop.org/monado/monado/-/issues/288
|
||||
|
||||
This is made for WMR based headsets and has been tested with a Reverb G2 & Vive1 (Vive1 used only for it's 2 watchman dongles needed for the lighthouse controllers).
|
||||
|
||||
You can easily adapt this for other headsets in a hacky way, until these issues are closed.
|
||||
|
||||
Tested working on Arch Linux with NVIDIA RTX 2060S.
|
||||
|
||||
## Setup:
|
||||
Setup your lighthouse system on SteamVR Windows. The Linux SteamVR version does not work well. On windows: Update everything, pair everything & setup your room boundaries.
|
||||
|
||||
Linux Setup:
|
||||
* install Steam
|
||||
* Download SteamVR on Steam (try non beta version first)
|
||||
* Configurations from Windows copied over
|
||||
|
||||
### How To Copy Your Windows Steam Configurations To Linux
|
||||
* mount your windows drive (e.g. at `/mnt`)
|
||||
* `cp -r "/mnt/Program Files (x86)/Steam/config" ~/.steam/steam/`
|
||||
|
||||
### Linux Only Setup
|
||||
It may be possible to use SteamVR on Linux to setup your room boundaries, pair and update everything. This is untested, but try at least.
|
||||
You may need playspace moving via Wlx to fine tune the floor if you don't have a Windows install.
|
||||
|
||||
## Build
|
||||
|
||||
### Manually
|
||||
Use this fork of Monado
|
||||
|
||||
`git clone https://gitlab.freedesktop.org/Zuzka/monado`
|
||||
|
||||
(if it's too old for you, try to merge upstream into it and fix it)
|
||||
|
||||
Ensure you have all required dependencies installed beforehand (Envision or Monado docs might help)
|
||||
|
||||
* `cmake -G Ninja -B build -DCMAKE_INSTALL_PREFIX=/usr -DXRT_BUILD_DRIVER_SURVIVE=0 -DXRT_BUILD_DRIVER_VIVE=0 -DXRT_BUILD_DRIVER_STEAMVR_LIGHTHOUSE=1`
|
||||
* `sudo ninja -C build install`
|
||||
|
||||
Set following environment variable in your e.g. bash_profile:
|
||||
|
||||
`export LH_DEVICE_SERIAL="{YourSerial}"`
|
||||
|
||||
Replace `{YourSerial}` with [your actual serial](#how-to-find-your-serial)
|
||||
|
||||
### Envision
|
||||
In Envision, set Profile as such:
|
||||
|
||||
XR Service Repo:
|
||||
```
|
||||
https://gitlab.freedesktop.org/Zuzka/monado.git
|
||||
```
|
||||
|
||||
XR Service CMake Flags:
|
||||
```
|
||||
XRT_BUILD_DRIVER_SURVIVE=0
|
||||
XRT_BUILD_DRIVER_VIVE=0
|
||||
XRT_BUILD_DRIVER_STEAMVR_LIGHTHOUSE=1
|
||||
```
|
||||
Environment Variables:
|
||||
```
|
||||
LH_DEVICE_SERIAL="{YourSerial}"
|
||||
```
|
||||
|
||||
Replace `{YourSerial}` with [your actual serial](#how-to-find-your-serial)
|
||||
|
||||
Perform a Clean Build after changing the CMake flags!
|
||||
|
||||
## How To Find Your Serial
|
||||
You can find out the actual tracking device serial by:
|
||||
|
||||
1. At monado startup look if you see anything starting with `LHR-` e.g. `LHR-FC2E9BC3`. Try a bunch to find the tracker attached to your headset.
|
||||
2. running this command and trying a bunch: `ls ~/.steam/steam/config/lighthouse/ | tr '[:lower:]' '[:upper:]'`
|
||||
3. Running `motoc show` in a terminal
|
||||
|
||||
## Notes
|
||||
* Turn on all your trackers & controllers and ensure the light is green, before starting monado.
|
||||
* If you decide to use another lighthouse tracker mount, you'd need to figure the new tracker offset math in the Monado source code.
|
||||
* If you use a Vive 1 as controller connection dongles *only connect power and USB*.
|
||||
* Fork works fine without a Vive 1 for dongles, usb dongles work aswell.
|
||||
|
||||
## Useful Resources:
|
||||
* https://monado.freedesktop.org/getting-started.html#installation-from-source
|
||||
* https://monado.freedesktop.org/valve-index-setup.html
|
||||
* check the commits on the fork for more info https://gitlab.freedesktop.org/Zuzka/monado
|
||||
* vive tracker 3.0 3d printable mount
|
||||
* model: https://www.printables.com/model/107654-hp-reverb-g2-vive-tracker-mount
|
58
content/docs/fossvr/xrizer.md
Normal file
58
content/docs/fossvr/xrizer.md
Normal file
|
@ -0,0 +1,58 @@
|
|||
---
|
||||
weight: 300
|
||||
title: xrizer
|
||||
---
|
||||
|
||||
# xrizer
|
||||
- [xrizer Git repository](https://github.com/Supreeeme/xrizer)
|
||||
|
||||
> xrizer is a reimplementation of OpenVR on top of OpenXR. This enables you to run OpenVR games through any OpenXR runtime without running SteamVR.
|
||||
|
||||
{{% hint warning %}}
|
||||
**Application developers**: The OpenVR implementation is incomplete and contains only what's necessary to run most games for compatibility and may omit certain information - if you plan to implement software, utilize the [OpenXR API](https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html).
|
||||
{{% /hint %}}
|
||||
|
||||
## Using full body trackers
|
||||
|
||||
{{% hint warning %}}
|
||||
**This branch is a work-in-progress!** Unexpected problems may occur while in use, if you encounter issues while using this fork you should not report it upstream unless reproducible on the `main` branch of 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.
|
||||
|
||||
To use the above fork, follow these steps:
|
||||
|
||||
### Envision
|
||||
- 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`
|
||||
- Clean build your profile from the menu at the top right, or use the Ctrl+F5 keybind.
|
||||
|
||||
### NixOS
|
||||
Apply an overlay over nixpkgs to override the xrizer src:
|
||||
|
||||
```nix
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
xrizer = prev.xrizer.overrideAttrs {
|
||||
src = final.fetchFromGitHub {
|
||||
owner = "RinLovesYou";
|
||||
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)
|
||||
rev = "";
|
||||
# IMPORTANT: Replace the below field with the correct hash, the error when building with this empty will give you the expected hash.
|
||||
hash = "";
|
||||
};
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
||||
```
|
||||
|
||||
## Rebinding controls
|
||||
The process is mostly the same as [OpenComposite](/docs/fossvr/opencomposite/#rebinding-controls), but replace the `OpenComposite` directory name with `xrizer`.
|
12
content/docs/games/_index.md
Normal file
12
content/docs/games/_index.md
Normal file
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
title: More VR Games
|
||||
weight: 60
|
||||
---
|
||||
|
||||
# Linux VR Adventure Database
|
||||
|
||||
- [Website](https://db.vronlinux.org/)
|
||||
|
||||
- [Git repository](https://github.com/Respuit/VRDB)
|
||||
|
||||
Here, you can find or report information about various VR games running on Linux. This website is a community-driven effort to provide an open database that helps users determine which games are compatible with Linux and potentially discover solutions or workarounds for specific issues.
|
36
content/docs/games/outer-wilds-vr-mod/_index.md
Normal file
36
content/docs/games/outer-wilds-vr-mod/_index.md
Normal file
|
@ -0,0 +1,36 @@
|
|||
---
|
||||
title: Outer Wilds VR Mod
|
||||
weight: 50
|
||||
---
|
||||
|
||||
# Outer Wilds
|
||||
|
||||
[Outer Wilds](https://store.steampowered.com/app/753640/Outer_Wilds/) is a flat screen game by design. However, there is a VR mod available to bring greater immersion into the gameplay.
|
||||
|
||||
To play Outer Wilds in VR, you need to install [NomaiVR](https://github.com/Raicuparta/nomai-vr).
|
||||
|
||||
It is recommended to use the [Outer Wilds Mod Manager](https://outerwildsmods.com/mod-manager/) to install NomaiVR along with any additional mods you choose.
|
||||
|
||||
[XRizer](/docs/fossvr/xrizer/) is the preferred choice for this game if you do not want to use [SteamVR](/docs/steamvr/).
|
||||
|
||||
## Performance
|
||||
|
||||
Since Outer Wilds was not designed or optimized to be a VR game, performance will be degraded. Expect low framerates in most scenes.
|
||||
|
||||
Prepending `OXR_VIEWPORT_SCALE_PERCENTAGE=60` to the game's launch options can greatly benefit frametimes at the cost of resolution, experiment with the percentage amount to find a balance that suits your needs.
|
||||
|
||||
## Bugs
|
||||
|
||||
While in VR, if you have mods that add extra items in the main menu, they will be rotated at an odd angle as well as any UIs.
|
||||
|
||||
### Immediate crash with Proton 9+
|
||||
|
||||
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)).
|
||||
Simply create a directory called `xrizer` inside of the Outer Wilds game folder and place the bindings file in `xrizer`. This will override the default bindings and should provide a better gameplay experience.
|
|
@ -5,25 +5,29 @@ 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).
|
||||
{{% /hint %}}
|
||||
|
||||
## GPU support matrix
|
||||
|
||||
| Manufacturer | Driver | VR Support | Reprojection Support | Hybrid Graphics Support | Notes |
|
||||
|--------------|---------------------------|----------------|--------------------------------|-------------------------------|----------------------------------------------------------------------------------------------|
|
||||
| Nvidia | Nvidia (Closed Source) | Excellent | Excellent | Supported | Requires an implicit [vulkan-layer](https://gitlab.freedesktop.org/monado/utilities/vulkan-layers) to not segfault: [*AUR*](https://aur.archlinux.org/packages/monado-vulkan-layers-git)・[*Fedora*](https://packages.fedoraproject.org/pkgs/monado-vulkan-layers/monado-vulkan-layers/)・[*Ubuntu*](https://gitlab.freedesktop.org/monado/utilities/vulkan-layers/-/jobs/55337949/artifacts/file/incoming/monado-vulkan-layers_0.9.0.29.git.ae43cdc-1~20240221ubuntu2204_amd64.deb)・[*Debian*](https://gitlab.freedesktop.org/monado/utilities/vulkan-layers/-/jobs/55337947/artifacts/file/incoming/monado-vulkan-layers_0.9.0.29.git.ae43cdc-1~20240221bpo11_amd64.deb) |
|
||||
| Nvidia | Nouveau (Open Source) | Functional | Functional | Supported | Lacks DisplayPort audio. |
|
||||
| Intel | i915 (Open Source) | Functional | Unknown | Supported | Relatively old, most likely poor support for newer GPUs.
|
||||
| Intel | Intel/Xe (Open Source) | No wired HMDs | N/A / Unable to drive wired. | Supported | Lacks direct mode implementation in driver, unable to drive wired HMDs. |
|
||||
| AMD | RADV (Open Source) | Excellent | Robust (RDNA+) | Supported | RDNA generation and up supported with compute tunneling for reprojection. Lower than RDNA are not robust. |
|
||||
| AMD | AMDVLK (Open Source) | Use RADV | Use RADV | N/A | RADV preferred in all circumstances, unable to drive wired HMDs. Do not use. Do not seek support. |
|
||||
| AMD | AMDGPU PRO (Closed Source)| Use RADV | Use RADV | N/A | RADV preferred in all circumstances, unable to drive wired HMDs. Do not use. Do not seek support. |
|
||||
| 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. |
|
||||
| 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. |
|
||||
|
||||
**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, the [vulkan-layer](https://gitlab.freedesktop.org/monado/utilities/vulkan-layers) **must** be installed in order to not crash.
|
||||
- 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.
|
||||
- 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.
|
||||
|
@ -32,7 +36,7 @@ title: VR Gear & GPUs
|
|||
|
||||
## XR Devices
|
||||
|
||||
A non-comprehensive table of various VR/XR devices and the drivers that support them.
|
||||
A non-comprehensive table of various VR/XR devices and the drivers that support them. Note that wired headset experiences with Nvidia GPUs will be affected by the [DRM lease presentation latency issue](https://forums.developer.nvidia.com/t/substantial-drm-lease-presentation-latency-resulting-in-unusable-vr-hmd-experience/332386).
|
||||
|
||||
| Device | [SteamVR](/docs/steamvr/) | [Monado](/docs/fossvr/monado/) | [WiVRn](/docs/fossvr/wivrn/) |
|
||||
|----------------------|:-------------------------------------:|:------------------------------:|:----------------------------:|
|
||||
|
@ -40,7 +44,7 @@ A non-comprehensive table of various VR/XR devices and the drivers that support
|
|||
| Valve Index | ✅ | ✅ | 🚧 (WiVRn PC-PC stream) |
|
||||
| HTC Vive | ✅ | ✅ | 🚧 (WiVRn PC-PC stream) |
|
||||
| HTC Vive Pro | ✅ | ✅ | 🚧 (WiVRn PC-PC stream) |
|
||||
| HTC Vive Pro Eye | ✅ (No eyechip) | ✅ (No eyechip) | 🚧 (WiVRn PC-PC stream) |
|
||||
| HTC Vive Pro 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 | ? | ? | ? |
|
||||
|
@ -49,13 +53,13 @@ A non-comprehensive table of various VR/XR devices and the drivers that support
|
|||
| 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)) | 🚧 (WiVRn PC-PC stream) |
|
||||
| Pimax 5K Plus | ❌ (Planned) | ✅ (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch)) | 🚧 (WiVRn PC-PC stream) |
|
||||
| Pimax 5K XR | ❌ (Planned) | ✅ (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch)) | 🚧 (WiVRn PC-PC stream) |
|
||||
| Pimax 5K SUPER | ❌ (Planned) | ✅ (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch)) | 🚧 (WiVRn PC-PC stream) |
|
||||
| Pimax 8K | ❌ (Planned) | ✅ (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch)) | 🚧 (WiVRn PC-PC stream) |
|
||||
| Pimax Vision 8K X | ❌ (Planned) | ✅ (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch)) | 🚧 (WiVRn PC-PC stream) |
|
||||
| Pimax Vision 8K PLUS | ❌ (Planned) | ✅ (WIP, with [kernel patches](https://gist.githubusercontent.com/TayouVR/60e3ee5f95375827a66a8898bea02bec/raw/c85135c8d8821ebb2fa85629d837a41de57e12ef/pimax.patch)) | 🚧 (WiVRn PC-PC stream) |
|
||||
| Pimax 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) |
|
||||
| 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) |
|
||||
|
@ -63,7 +67,7 @@ A non-comprehensive table of various VR/XR devices and the drivers that support
|
|||
| Samsung Odyssey | ✅ (Monado SteamVR plugin) | ✅ (experimental 6dof controllers) | 🚧 (WiVRn PC-PC stream) |
|
||||
| Asus HC102 | ✅ (Monado SteamVR plugin) | ✅ (experimental 6dof controllers) | 🚧 (WiVRn PC-PC stream) |
|
||||
| Samsung Odyssey+ | ✅ (Monado SteamVR plugin) | ✅ (experimental 6dof controllers) | 🚧 (WiVRn PC-PC stream) |
|
||||
| HP Reverb | ✅ (Monado SteamVR plugin) | ✅ (experimental 6dof controllers) | 🚧 (WiVRn PC-PC stream) |
|
||||
| HP Reverb | ✅ (Monado SteamVR plugin, 60Hz only mode on Nvidia) | ✅ (experimental 6dof controllers, 60Hz only mode on Nvidia) | 🚧 (WiVRn PC-PC stream) |
|
||||
| Acer OJO 500 | ✅ (Monado SteamVR plugin) | ✅ (experimental 6dof controllers) | 🚧 (WiVRn PC-PC stream) |
|
||||
| HP Reverb G2 | ✅ (Monado SteamVR plugin) | ✅ (experimental 6dof controllers) | 🚧 (WiVRn PC-PC stream) |
|
||||
| Oculus Rift CV1 | ✅ (OpenHMD SteamVR plugin) | ✅ (OpenHMD plugin based support) | 🚧 (WiVRn PC-PC stream) |
|
||||
|
@ -74,38 +78,42 @@ 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/)) | -- | ✅ |
|
||||
| Pico Neo 3 | ✅ (via [ALVR](/docs/steamvr/alvr/)) | -- | ❌ (Broken XR SDK) |
|
||||
| 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/)) | -- | ✅ |
|
||||
| Apple Vision Pro | ✅ (via [ALVR](/docs/steamvr/alvr/)) | -- | 🚧 (WIP client) |
|
||||
| Apple Vision Pro | ✅ (via [ALVR](/docs/steamvr/alvr/)) | -- | ❌ |
|
||||
| **Trackers** | | | |
|
||||
| Vive/Tundra trackers | ✅ (native or spacecal) | ✅ (native or motoc) | ✅ (motoc) |
|
||||
| SlimeVR trackers | ✅ | ✅ (OSC + experimental driver) | ✅ |
|
||||
| Project Babble | ✅ (oscavmgr) | ✅ (oscavmgr) | ✅ (oscavmgr) |
|
||||
| Eyetrack VR | ✅ (oscavmgr) | ✅ (oscavmgr) | ✅ (oscavmgr) |
|
||||
| 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) | ❌ |
|
||||
| Ultraleap v1 | ? | ✅ (with `openxr-layer-ultraleap`) | ? |
|
||||
| Lucid VR Gloves | ? | ✅ (survive driver only) | ❌ |
|
||||
| Kinect FBT | ✅ | ✅ (experimental) | 🚧 |
|
||||
| Standable FBT | ❌ | ❌ | ❌ |
|
||||
| Razer Hydra | ✅ (Monado SteamVR plugin) | ✅ | ❌ |
|
||||
|
||||
## Hardware note
|
||||
|
||||
WiVRn PC XR to WiVRn PC client streaming remains mainly for debug use.
|
||||
|
||||
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.
|
||||
|
||||
Vive Pro Eye HMD functional, eyechip WIP.
|
||||
|
||||
Pimax initialization code WIP. Distortion matrix dump work in progress.
|
||||
|
||||
Eyetrack VR and Project Babble will both be implemented through [oscavmgr](https://github.com/galister/oscavmgr) to emit proper unified flexes over OSC.
|
||||
|
||||
Tracking technologies can be mixed Monado/WiVRn by using [motoc](https://github.com/galister/motoc).
|
||||
- **Nvidia GPU users**: Due to the DRM lease presentation latency issue, wired VR headsets will experience a delayed viewport effect on Nvidia GPUs. This affects all driver versions since 550. Consider these workarounds:
|
||||
- Use WiVRn or ALVR with standalone headsets for wireless VR (recommended)
|
||||
- Try setting `U_PACING_COMP_MIN_TIME_MS=10` as an environment variable to slightly reduce the effect
|
||||
- Consider switching to AMD GPUs for the best wired VR experience
|
||||
- Monitor the [bug report thread](https://forums.developer.nvidia.com/t/substantial-drm-lease-presentation-latency-resulting-in-unusable-vr-hmd-experience/332386) for updates
|
||||
- **AMD GPU users**: If using WiVRn, make sure you are using the RADV Vulkan driver. A green and broken video stream in WiVRn is a telltale sign that you're using the incompatible AMDVLK driver. Remove AMDVLK and install RADV as AMDVLK is known to be difficult to opt out of as a driver when installed on system.
|
||||
- WiVRn PC XR to WiVRn PC client streaming remains mainly for debug use.
|
||||
- **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** 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)
|
||||
|
||||
|
@ -137,6 +145,9 @@ source=(
|
|||
# replace 41 with your fedora version
|
||||
git switch f41
|
||||
|
||||
# install the build dependencies for the kernel, if you haven't already
|
||||
sudo dnf builddep kernel.spec
|
||||
|
||||
# name this the 'bsb' build
|
||||
sed -i 's/# define buildid .*/%define buildid .bsb/g' kernel.spec
|
||||
```
|
||||
|
|
|
@ -13,17 +13,30 @@ Antialiasing should be avoided when possible and the compositor scale should be
|
|||
|
||||
AMD GPUs will attempt to power save in between rendering frames, for flatscreen games this is helpful, but for VR this is quite negatively impactful on the VR compositor's ability to timewarp frames so the user's viewport does not stutter or cause sickness.
|
||||
|
||||
This is very important to avoid stuttering, do not skip this step if you use AMD.
|
||||
|
||||
You should add a kernel arg for `amdgpu` driven cards. Add `amdgpu.ppfeaturemask=0xffffffff` to your kernel args. [more info](https://gitlab.com/corectrl/corectrl/-/wikis/Setup#full-amd-gpu-controls)
|
||||
This is step is modestly important to avoid stutter on newer kernels, if you experience stutters under large graphical load please attempt to set this up.
|
||||
|
||||
### The simple way: Use CoreCtrl
|
||||
|
||||
{{% hint danger %}}
|
||||
**BE CAREFUL**
|
||||
|
||||
CoreCtrl is an **overclocking** utility. Overclocking your GPU is potentially dangerous and if done without care it could **permanently damage your hardware**.
|
||||
|
||||
If you limit yourself to setting the power profile you should be fine, but don't just crank up the sliders.
|
||||
{{% /hint %}}
|
||||
|
||||
- Install [CoreCtrl](https://gitlab.com/corectrl/corectrl)
|
||||
- Select your GPU on the top
|
||||
- Set Performance mode to Advanced
|
||||
- Set Power profile to VR
|
||||
- Set the GPU and Memory sliders to max
|
||||
|
||||
{{% hint danger %}}
|
||||
Do note that corectrl version 1.4 was not able to separately adjust the GPU performance profile from the speeds.
|
||||
Your GPU will downclock to absolute minimums after changing your power profile.
|
||||
To set them back where they should be, adjust the core and memory sliders all the way to the right to obtain your default performance clocks.
|
||||
|
||||
If they present as minimums and maximums in a vertical fashion leave them alone, you are fine.
|
||||
{{% /hint %}}
|
||||
|
||||
### Enable VR profile using a script
|
||||
|
||||
|
|
|
@ -7,39 +7,73 @@ weight: 50
|
|||
|
||||
{{% 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. This document only covers running under Proton.
|
||||
|
||||
{{% /hint %}}
|
||||
|
||||
{{% hint warning %}}
|
||||
|
||||
Despite the above deprecation, Steam will still download the native Linux binary by default.
|
||||
|
||||
Make sure you have a compatibility tool selected (e.g. GE-Proton-RTSP) before launching Resonite.
|
||||
**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 %}}
|
||||
|
||||
The current recommended Proton variant is [**GE-Proton-RTSP**](https://github.com/SpookySkeletons/proton-ge-rtsp/releases).
|
||||
|
||||
OpenComposite should now provide a close-to-flawless experience on most controllers and when using hand tracking.
|
||||
[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/).
|
||||
|
||||
|
||||
## 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).
|
||||
|
||||
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 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 <!-- TODO link to resolution scaling --> (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.
|
||||
|
||||
## 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.
|
||||
|
||||
Currently there are 2 mod loaders:
|
||||
|
||||
- [ResoniteModLoader (RML)](https://github.com/resonite-modding-group/ResoniteModLoader)
|
||||
|
||||
- [MonkeyLoader](https://github.com/ResoniteModdingGroup/MonkeyLoader.GamePacks.Resonite)
|
||||
|
||||
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.
|
||||
|
||||
### 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.
|
||||
|
||||
The cause of these issues and whether they are Proton-specific isn't currently known.
|
||||
|
||||
## Performance
|
||||
### Crash on loading into a world with video players
|
||||
|
||||
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 <!-- TODO link to resolution scaling --> (either in the OpenXR runtime or through OpenComposite) may help dramatically.
|
||||
|
||||
## 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.
|
||||
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.
|
||||
|
||||
## Controls busted after switching to desktop
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ It's generally **highly recommended** to opt for the more expensive but higher q
|
|||
There are currently three ways to use SlimeVR:
|
||||
|
||||
- Via SteamVR driver
|
||||
- Via SolarXR driver for Monado (experimental)
|
||||
- Via SolarXR driver for Monado
|
||||
- Directly via VRChat OSC (Open Sound Control)
|
||||
|
||||
## First method: SteamVR driver
|
||||
|
@ -53,24 +53,23 @@ $HOME/.steam/steam/steamapps/common/SteamVR/bin/linux64/vrpathreg.sh adddriver $
|
|||
|
||||
Now the only thing you have to do is restart the SlimeVR server.
|
||||
|
||||
## Second method: SolarXR driver for Monado (experimental)
|
||||
## Second method: native SolarXR driver for Monado
|
||||
|
||||
This is a native approach to using Slime trackers within the open-source stack without relying on SteamVR, offering results comparable to those provided by the native SteamVR driver.
|
||||
|
||||
To use this method, you need to compile SlimeVR yourself from this fork:
|
||||
`https://github.com/rcelyte/SlimeVR-Server.git`, branch `solarxr-ipc`. Build instructions can be found [here](https://github.com/rcelyte/SlimeVR-Server/blob/solarxr-ipc/CONTRIBUTING.md).
|
||||
To use this method, you need to use SlimeVR v0.14.0 or newer and if not available from stable may be obtained via a testing build:
|
||||
[Official stable builds](https://github.com/SlimeVR/SlimeVR-Server/releases)
|
||||
[Unstable testing builds](https://github.com/SlimeVR/SlimeVR-Server/actions/workflows/gradle.yaml?query=branch%3Amain)
|
||||
|
||||
For Monado, you need compile this fork:
|
||||
`https://gitlab.freedesktop.org/rcelyte/monado.git`, branch `solarxr-integration`. You can easily build Monado from this specific branch via [Envision](../fossvr/envision/), by modifying "XR Service Repo" and "XR Service Branch" in your build profile accordingly.
|
||||
|
||||
For WiVRn, you need to compile this fork: `https://github.com/notpeelz/WiVRn.git`, branch `solarxr-patches`. You also need the `WIVRN_FEATURE_SOLARXR` CMake flag set to `ON`.
|
||||
|
||||
**Important**: Make sure to launch SlimeVR first before launching Monado/Envision.
|
||||
|
||||
**Important note #1**: Do not stop the SlimeVR server during operation, as driver and tracker hot-plugging are not yet supported.
|
||||
|
||||
**Important note #2**: SlimeVR will not detect your HMD until you launch a game that supports trackers. For now, body calibration options will be available in-game.
|
||||
|
||||
After launching the game, you should see your trackers being detected. At this point, you can calibrate and use them.
|
||||
|
||||
## Third method: VRChat OSC
|
||||
|
||||
**This method is only available in VRChat.**
|
||||
|
|
0
content/docs/slimevr/slimetora/.gitkeep
Normal file
0
content/docs/slimevr/slimetora/.gitkeep
Normal file
30
content/docs/slimevr/slimetora/_index.md
Normal file
30
content/docs/slimevr/slimetora/_index.md
Normal file
|
@ -0,0 +1,30 @@
|
|||
---
|
||||
title: HaritoraX Trackers
|
||||
weight: 50
|
||||
---
|
||||
|
||||
# HaritoraX Trackers
|
||||
|
||||
{{% hint info %}}
|
||||
|
||||
For a better full-body experience on Linux, it is recommended to buy the Official SlimeVR Trackers. This article is not an endorsement and is intended for users who have already acquired the hardware and are looking for compatible software.
|
||||
|
||||
{{% /hint %}}
|
||||
|
||||
- [Product website](https://en.shiftall.net/our-products)
|
||||
|
||||
HaritoraX trackers are IMU-based positional trackers.
|
||||
|
||||
## SlimeTora
|
||||
|
||||
- [Project repo](https://github.com/OCSYT/SlimeTora)
|
||||
- [Project Wiki](https://github.com/OCSYT/SlimeTora/wiki)
|
||||
|
||||
SlimeTora is a program that connects the HaritoraX trackers to the [SlimeVR server](https://docs.slimevr.dev/server/index.html), supporting both the HaritoraX Wireless and HaritoraX Wired (1.1b/1.1/1.0). Supports Bluetooth (low energy), Bluetooth (classic) (w/ COM), and the GX(6/2) communication dongles (w/ COM).
|
||||
|
||||
### HaritoraX Interpreter
|
||||
|
||||
- [Project repo](https://github.com/JovannMC/haritorax-interpreter)
|
||||
- [NodeJS package](https://www.npmjs.com/package/haritorax-interpreter)
|
||||
|
||||
HaritoraX Interpreter is a Node.js package that enables communication with the HaritoraX FBT trackers to read/write data to the trackers. No HaritoraConfigurator/VR Manager software needed (mostly)!
|
74
content/docs/steamvr/mod-managers.md
Normal file
74
content/docs/steamvr/mod-managers.md
Normal file
|
@ -0,0 +1,74 @@
|
|||
---
|
||||
weight: 200
|
||||
title: Using Mod Managers
|
||||
---
|
||||
|
||||
# Using Third-Party Mod Managers with Steam Games
|
||||
|
||||
This is a guide on how to install and integrate mod managers (like Vortex, MO2, etc.) for games running in Proton.
|
||||
|
||||
**Note:** Most of this stuff will break if you use Flatpak for any of the involved programs.
|
||||
|
||||

|
||||
|
||||
## Pre-Requisites
|
||||
- https://github.com/Matoking/protontricks
|
||||
- https://github.com/tralph3/Steam-Metadata-Editor
|
||||
- Launch your game at least once before!
|
||||
|
||||
## Procedure
|
||||
|
||||
1. Download your mod manager installer (Vortex, MO2, etc.)
|
||||
2. Run the installer with `Protontricks Launcher`, select your game prefix when prompted
|
||||
3. Finish the installer and note the installation path
|
||||
4. Symlink mod manager's installation path inside prefix into the game's install path. For example:
|
||||
```
|
||||
ln -s "/home/faith/.local/share/Steam/steamapps/compatdata/611670/pfx/drive_c/Program Files/Black Tree Gaming Ltd/Vo
|
||||
rtex/" "/home/faith/.local/share/Steam/steamapps/common/SkyrimVR/Vortex"
|
||||
```
|
||||
5. **Close Steam!** Then open Steam Metadata Editor
|
||||
6. Find your game in the list, then click `Edit launch menu`
|
||||
7. Click `Add New Entry`
|
||||
8. In Description, enter the display name (e.g., `Vortex Mod Manager`)
|
||||
9. Click on the `...` button in the Executable field
|
||||
10. File picker will appear, which should be inside the game's install directory. If it's not, try again, restart your computer, or perform some ritual because it sometimes doesn't work properly.
|
||||
11. Choose the mod manager executable (e.g., `Vortex/Vortex.exe`)
|
||||
12. Make sure a relative path appears in the Executable field, as above! It won't work otherwise. If you see a full path `/home/faith/.local/share/steam/.../`, try deleting the entry and restarting the metadata editor.
|
||||
13. The working directory should fill in automatically
|
||||
14. Close the modal window
|
||||
15. Click `Save` button
|
||||
16. Enjoy
|
||||
|
||||
## Important notes
|
||||
|
||||
* Steam might occasionally remove the custom launch entry, just follow the guide again from Step 5.
|
||||
* You have to install mod managers and dependencies for each game separately.
|
||||
* You can't use the Nexus Mods button `Mod Manager Download` via browser, you have to download and adds mods manually.
|
||||
|
||||
# Redirecting game executable from custom launchers
|
||||
|
||||
It is possible to "redirect" any executable that Steam runs and launch any other executable you specify instead. This can be useful for launching Script Extender loader without having to replace any files.
|
||||
|
||||
You need to set game's launch options to the following:
|
||||
|
||||
```
|
||||
bash -c 'exec "${@/OriginalGame.exe/CustomLoader.exe}"' -- %command%
|
||||
```
|
||||
|
||||
replacing `OriginalGame.exe` and `CustomLoader.exe` with game's executable name and your custom launcher respectively.
|
||||
|
||||
## Examples
|
||||
|
||||
Redirect Fallout 4 VR to [F4 Script Extender](https://f4se.silverlock.org/) with dll overrides needed for other mods to work:
|
||||
|
||||
```
|
||||
WINEDLLOVERRIDES="WinHTTP.dll=n,b;x3daudio1_7.dll=n,b" bash -c 'exec "${@/Fallout4VR.exe/f4sevr_loader.exe}"' -- %command%
|
||||
```
|
||||
|
||||
Redirect original Crysis (2007) executables to [Crysis VR](https://crysis.vrmods.eu/):
|
||||
|
||||
```
|
||||
MANGOHUD=0 bash -c 'exec "${@/Crysis.exe/CrysisVR.exe}"' -- %command%
|
||||
```
|
||||
|
||||
Put any environment variables before `bash`, put any launch arguments for the game after `%command%`.
|
63
content/docs/steamvr/pairing.md
Normal file
63
content/docs/steamvr/pairing.md
Normal file
|
@ -0,0 +1,63 @@
|
|||
---
|
||||
weight: 200
|
||||
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).
|
||||
|
||||
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)
|
||||
|
||||
## Pairing via SteamVR
|
||||
|
||||
You can follow the normal pairing process by launching SteamVR, and opening the
|
||||
pairing window (in the Devices menu).
|
||||
|
||||
If however for some reason this does not work (in particular, if the pairing window
|
||||
[does not render](https://github.com/ValveSoftware/SteamVR-for-Linux/issues/531)),
|
||||
you can work around it by doing the pairing process via `lighthouse_console`.
|
||||
|
||||
## Pairing via `lighthouse_console`
|
||||
|
||||
In a terminal, launch `lighthouse_console` by running
|
||||
```
|
||||
~/.steam/steam/steamapps/common/SteamVR/tools/lighthouse/bin/linux64/lighthouse_console
|
||||
```
|
||||
|
||||
### Identifying available receivers
|
||||
|
||||
You'll be greeted by a shell which starts by listing the serial number of attached receivers (both
|
||||
dongles and built-in, if your HMD is connected).
|
||||
|
||||
Selecting a receiver is done by running `serial <serialnumber>` 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
|
||||
is paired with a device (assuming the device is on).
|
||||
|
||||
In general, built-in HMD receivers will have longer serial numbers than dongle
|
||||
ones.
|
||||
|
||||
If either you want to *replace* previously paired devices (e.g. when changing
|
||||
controllers) or you're struggling to identify which receiver to use, run
|
||||
`unpairall`. This will unpair all lighthouse devices!
|
||||
|
||||
### Pairing a device
|
||||
|
||||
Once you have selected an available receiver with `serial <serialnumber>`:
|
||||
|
||||
1. Turn on your device
|
||||
2. Put it in pairing mode (e.g. hold System+B for Valve controllers), the LED
|
||||
should be blinking blue
|
||||
3. Run the `pair` command
|
||||
|
||||
After a few seconds, the LED should turn green, and the device is now paired.
|
||||
|
||||
Do this for each device you want to pair (remember to use a different receiver
|
||||
for each device), and exit the shell by running `quit`.
|
|
@ -27,5 +27,11 @@ Should the game prompt to exit the game upon an anticheat failure, simply try to
|
|||
|
||||
Given a [few caveats](video_players/) most video players will work.
|
||||
|
||||
## Privacy
|
||||
|
||||
VRChat drags quite a tangle of privacy concerns.
|
||||
Please consider your opsec in relation to all VR API input including poses, all voice communication, unsandboxed code execution, the EAC anticheat system which occasionally probes system proc info and much more, and the game maintaining a memory buffered audio video recording of the window contents tied to the report system.
|
||||
|
||||
Please consider your opsec in relation to all VR API input including poses, all voice communication, unsandboxed code execution, the EAC (anticheat) system which occasionally probes the list of all system processes, the game maintaining a memory-buffered audio/video recording of the window contents tied to the report system, and much more.
|
||||
|
||||
In-game analytics can be blocked at the DNS level. These are often external services the game phones into to deliver usage statistics. Opt-out by blocking this domain list in your network or computer firewall/DNS service: https://github.com/Luois45/VRChatAnalyticsBlocklist
|
||||
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
---
|
||||
weight: 100
|
||||
title: Blocking Ads in VRChat
|
||||
---
|
||||
|
||||
Ads are annoying, bloated, and wasteful of your time and attention.
|
||||
They are found prominently in popular worlds, luckily the prefabs can be blocked by the end user with this handy git project:
|
||||
|
||||

|
||||
|
||||
https://github.com/AdGoBye/AdGoBye
|
||||
|
||||
|
||||
In-game analytics can also be blocked at the DNS level, these are often external services the game phones into to deliver usage statistics. Opt out by blocking this domain list in your network or computer firewall/ DNS service.
|
||||
|
||||
https://github.com/Luois45/VRChatAnalyticsBlocklist
|
|
@ -5,26 +5,58 @@ title: Easy Anti-Cheat
|
|||
|
||||
# Easy Anti-Cheat
|
||||
|
||||
Sometimes, seemingly randomly, you can get an EAC error during the VRChat startup/login screen. It looks like a message box, with the title "Anti-cheat Error", no actual message text, and a single button labeled "Quit".
|
||||
Running VRChat on Linux *used to be* prone to unwarranted EAC errors. Sometimes, seemingly randomly, you would get an EAC error during the VRChat startup/login screen. It looks like a message box, with the title "Anti-cheat Error", a message referring to a filepath that failed to validate integrity, and a single button labeled "Quit". This would trigger even when all files were unmodified.
|
||||
|
||||
## Recommended Workaround
|
||||
Thankfully, at some point in October or November 2024, **these EAC errors resolved themselves**. While it is still possible to get EAC errors for other reasons, the race condition that made it a coin-flip on startup no longer plagues us.
|
||||
|
||||
If you are running into EAC errors still, try these options:
|
||||
- Trigger a reinstall of the EAC runtime by moving the [Proton prefix for VRChat](https://www.pcgamingwiki.com/wiki/VRChat#Configuration_file.28s.29_location) somewhere else, forcing Steam to regenerate it on next launch
|
||||
- Make sure you are not blocking the EAC domains, such as `modules-cdn.eac-prod.on.epicgames.com`
|
||||
- Do not set `SDL_VIDEODRIVER` env var anywhere - this breaks the splash screen
|
||||
- Do not use the `VR_OVERRIDE` env var
|
||||
|
||||
The below workaround shouldn't be necessary anymore, but is kept here in case the issue comes back someday.
|
||||
|
||||
## Workaround
|
||||
|
||||
Wrapper script for starting VRChat: [startvrc.sh on GitHub](https://gist.github.com/galister/ca63a5795694e4c839a8e7f4bb8a35bc)
|
||||
|
||||
|
||||
Set startup options for VRChat:
|
||||
`/path/to/startvrc.sh %command%`
|
||||
|
||||
If you're using extra env vars, they should go first:
|
||||
`PRESSURE_VESSEL_FILESYSTEMS_RW=/run/user/1000/monado_comp_ipc /path/to/startvrc.sh %command%`
|
||||
|
||||
<!--
|
||||
|
||||
## Root Cause
|
||||
|
||||
We are still trying to determine the cause.
|
||||
|
||||
Here is what we know:
|
||||
- The filepath in the message always refers to a file within `steamapps/common/VRChat`.
|
||||
- EAC errors can trigger even when all these files are completely pristine.
|
||||
- The triggering file can be different each time.
|
||||
- EAC doesn't care about any of the files in `AppData/LocalLow/VRChat`. This means yt-dlp.exe, logs, the local cache, etc are not subject to integrity checks.
|
||||
- Getting multiple EAC errors in a row is very possible.
|
||||
- Some EAC info is also written to the VRChat log file.
|
||||
- EAC errors can also happen on Steam Deck.
|
||||
- EAC errors can happen regardless of Proton version, kernel version, distro.
|
||||
- EAC errors can happen regardless of whether you're in in VR or desktop mode.
|
||||
- The message box used to have no actual message text. The message returned in a VRChat update, possibly on the serverside and without a steam depot update, sometime between 2024-03-25 and 2024-03-28.
|
||||
|
||||
It is likely caused by a race condition. Closing unnecessary apps or otherwise **lowering your CPU usage** before starting VRChat seems to make the EAC error happen significantly less often. It is safe to crank the CPU usage back up after the home world has loaded.
|
||||
|
||||
Some approaches we haven't tried or fully documented:
|
||||
|
||||
- Is it tied to network speed? Slow down connection to EAC servers - DNS delay or traffic shaping
|
||||
- Is it tied to filesystem? Compare between ext4, btrfs, etc
|
||||
- Analyze EAC-related network traffic
|
||||
- Blocking EAC servers
|
||||
- Slowing down IO read speed
|
||||
- Debugging with winedbg or bpftrace (because strace and gdb both trigger an immediate splash screen and disconnect)
|
||||
- REing EAC itself
|
||||
|
||||
The following sections do not fix the issue, but are still kept on the wiki to dispel rumors and record research.
|
||||
|
||||
## (Outdated) glibc dt_gnu_hash
|
||||
|
@ -44,3 +76,5 @@ As of 2024-02-09, Arch Linux no longer ships with this flag.
|
|||
- Gentoo users could enable the fix using the `hash-sysv-compat` USE flag on `sys-libs/glibc`.
|
||||
|
||||
To reiterate, this glibc flag does _not_ appear to fix VRChat's particular flavor of EAC failures.
|
||||
|
||||
-->
|
||||
|
|
|
@ -5,4 +5,4 @@ title: Face & Eye Tracking
|
|||
|
||||
# Face & Eye Tracking
|
||||
|
||||
If you have a face and/or eye tracking solution and want to use it for social vr, one option is to use [OscAvMgr](https://github.com/galister/oscavmgr), which fills the same role as VRCFT does on Windows.
|
||||
If you have a face and/or eye tracking solution and want to use it for social vr, one option is to use [OscAvMgr](https://github.com/galister/oscavmgr). Another alternative is the cross-platform port of VRCFT, [VRCFaceTracking.Avalonia](https://github.com/dfgHiatus/VRCFaceTracking.Avalonia).
|
|
@ -24,7 +24,8 @@ First, take a look at this page from [the official VRChat docs](https://creators
|
|||
|
||||
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).
|
||||
|
||||
1. Download the [AppImage from the latest "gui" release](https://github.com/vrc-get/vrc-get/releases). Pick the file named `alcom-<some version>-x86_64.AppImage`.
|
||||
1. Download the [AppImage from the latest "gui" release\*](https://github.com/vrc-get/vrc-get/releases). Pick the file named `alcom-<some version>-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.
|
||||
1. In the settings tab, under Unity Hub Path, point it to your UnityHub.AppImage.
|
||||
1. Create a new project and open it.
|
||||
|
@ -58,14 +59,20 @@ exec flatpak run com.unity.UnityHub "$@"
|
|||
-->
|
||||
|
||||
## World & Avatar SDK
|
||||
Out of the box, Build & Test doesn't work, for both Avatars and Worlds. Thankfully, we maintain Linux-specific patches, which you can install with ALCOM like any other VCC package.
|
||||
|
||||
The VRChat Worlds SDK fails to build the assetbundle and Build and Test doesn't work for either SDK.
|
||||
{{% hint info %}}
|
||||
|
||||
**Note**: Try to install the latest VRCSDK and the latest LinuxVRChatSDKPatch.
|
||||
But if you _must_ use VRCSDK version 3.7.5 and below, install LinuxVRChatSDKPatch version 0.0.4.
|
||||
|
||||
{{% /hint %}}
|
||||
|
||||
> ⚠️ **WARNING** \
|
||||
> This modifies the VRChat SDK using [Harmony](https://github.com/pardeike/Harmony) to properly work on Linux. \
|
||||
> This is directly against the VRChat Terms of Service.
|
||||
|
||||
Patches for both the Worlds and Avatars SDK are available: https://github.com/BefuddledLabs/LinuxVRChatSDKPatch ([VCC](https://befuddledlabs.github.io/LinuxVRChatSDKPatch/))
|
||||
These patches for both the Worlds and Avatars SDK are available through this [LinuxVRChatSDKPatch VCC page](https://befuddledlabs.github.io/LinuxVRChatSDKPatch/), or the [source on GitHub](https://github.com/BefuddledLabs/LinuxVRChatSDKPatch)
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
|
|
|
@ -6,19 +6,32 @@ title: VRCX
|
|||
# VRCX
|
||||
- [VRCX GitHub Repository](https://github.com/vrcx-team/VRCX)
|
||||
|
||||
VRCX is a tool for managing your VRChat friendships, as well as providing additional convenience functionalities.
|
||||
VRCX is a tool for managing your VRChat friendships, as well as providing additional convenience features.
|
||||
|
||||
# Installer Script
|
||||
## 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)
|
||||
|
||||
## Installer Script (Wine)
|
||||
|
||||
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.
|
||||
|
||||
You can run it per `curl -sSf https://raw.githubusercontent.com/vrcx-team/VRCX/master/Linux/install-vrcx.sh | bash`.
|
||||
Install it by running: `curl -sSf https://raw.githubusercontent.com/vrcx-team/VRCX/master/Linux/install-vrcx.sh | bash`
|
||||
|
||||
|
||||
# Manual Installation
|
||||
## Manual Installation (Wine)
|
||||
|
||||
- Grab the latest .zip from here: [VRCX Official Releases](https://github.com/vrcx-team/VRCX/releases)
|
||||
- Use a new or existing Wine prefix of Wine 9.2 or later. Recommend using a non-proton Wine build.
|
||||
- `winetricks corefonts`
|
||||
- Symlink your `drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat` folder from the VRChat Wine prefix to the VRCX Wine prefix
|
||||
- Run `VRCX.exe` via 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.
|
||||
|
|
BIN
static/images/steam_launch_vortex.png
Normal file
BIN
static/images/steam_launch_vortex.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 182 KiB |
|
@ -1 +1 @@
|
|||
Subproject commit 7c78a39c531aa2492ed7e92f2ce9dfb2c8c0d3fa
|
||||
Subproject commit 9405c4c3d7c7d81ae5be06589982691efedac3ea
|
Loading…
Add table
Add a link
Reference in a new issue