Envision page doesn't mention needing to set environment variables before launching games #2
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
I set up Envision today (thanks to your page) and was able to launch a VR game through Steam/Proton (the game itself was a non-Steam game) - the game was able to find the OpenXR runtime and connect to WiVRn/Monado immediately. I then tried running the exact same game through Lutris (also using the same Proton runtime) and the game complained about not being able to find the OpenXR runtime.
It turns out that you have to set some environment variables in the game's launch options (I guess Steam was doing this automatically somehow). Specifically,
XR_RUNTIME_JSON="/home/$USER/.local/share/envision/prefixes/wivrn_default/share/openxr/1/openxr_wivrn.json"andPRESSURE_VESSEL_FILESYSTEMS_RW="/run/user/1000/wivrn/comp_ipc"(these values can be found in the Envision debug panel). I also set the game's Wine prefix to the one that comes with Envision (/home/$USER/.local/share/envision/prefixes/wivrn_default) - not sure if that also helped. This may be worth documenting for Envision users who want to launch games via Lutris (instead of Steam which seems to be the assumption).Envision, when clicking the "Start" button, hot-patches the Steam for Linux Runtime (SLR) to set two environment variables:
PRESSURE_VESSEL_FILESYSTEMS_RWandXR_RUNTIME_JSON. Running a Proton game outside of Proton's supported environment (Steam) won't receive these, so the only effectively supported launcher is Steam, which covers most users' use-cases.I can add something to the docs about how to set the env vars, and that you'd only actually need to set them when using non-Steam launchers (I just want to be cautious not to confuse Steam users into cargo-cultishly setting them on Steam launch options, since the SLR hot-patch has them already covered).
Before that, I have some follow-up questions: What VR Proton game were you launching in Lutris, and why not launch through Steam?
Also, what Envision calls a "prefix" is not related to Wine/Proton prefixes at all. It is a set of built software that comprise an OpenXR/OpenVR stack (Monado/WiVRn, OpenComposite/xrizer, etc). So when you set the prefix like that, you were effectively just telling Proton to create a new prefix in that dir.
Thanks for the clarification on prefixes and the explanation about SLR patching.
I'd prefer not do depend on a proprietary platform that requires cloud sign in just to use the open-source Proton layer, especially for a game I didn't buy on Steam.
It's a local copy of Beat Saber 1.4.0.0.