Envision page doesn't mention needing to set environment variables before launching games #2

Open
opened 2025-03-07 00:29:45 -05:00 by ImranR98 · 2 comments
ImranR98 commented 2025-03-07 00:29:45 -05:00 (Migrated from gitlab.com)

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" and PRESSURE_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).

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"` and `PRESSURE_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).
hypevhs commented 2025-03-11 22:45:31 -04:00 (Migrated from gitlab.com)

Envision, when clicking the "Start" button, hot-patches the Steam for Linux Runtime (SLR) to set two environment variables: PRESSURE_VESSEL_FILESYSTEMS_RW and XR_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.

Envision, when clicking the "Start" button, hot-patches the Steam for Linux Runtime (SLR) to set two environment variables: `PRESSURE_VESSEL_FILESYSTEMS_RW` and `XR_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.
ImranR98 commented 2025-03-12 00:11:11 -04:00 (Migrated from gitlab.com)

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.

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.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LinuxVR_Adventure/lvra.gitlab.io#2