Hi there,

I'm playing around with the OpenXR plugin, which really lets you get up and running with VR in a blink, but I can't find a way to make an exported Godot game use a particular OpenXR implementation. In the editor, you get a drop-down box for that purpose, but how do you tell the exported executable which implementation to pick? I was hoping that just launching the game through Steam would make it going for SteamVR, but it doesn't. So am I missing an export option? Or do I have to use a command-line option for the executable to specify which OpenXR implementation to use?

Cheers -- Torsten

Hi Torsten,

This has been a point of contention for awhile now within the OpenXR community especially because those people who have Microsoft WMR headsets will have the WMR runtime as their default and WMR only supports Direct X and many game engines focus on OpenGL and Vulkan (as Godot does) and are therefor not supported by WMR (unless you go over SteamVR).

The problem though is that the OpenXR spec dictates that it is the user who decides the runtime. The idea being that you should write cross platform implementations.

So the "official" stance is that you're just going to have to instruct your users to make SteamVR or the Oculus runtime their default.

Indeed, the editor has a dropdown which simply manipulates an environment variable that lets you temporarily override the default, it's a concession they made as in development you often want to test your game against different runtimes. The problem is that you need to know where the runtime is installed as the environment variable is set to the path where the runtime is installed at. If users have selected an alternative install folder it won't work and there is no way to retrieve the available paths.

There is now a mechanism to discover the installed runtimes so we could potentially come up with a mechanism that validates if the active runtime is supported and switch to another if its not before initializing OpenXR. But currently that hasn't been implemented.

Hi Bastiaan,

thanks for the exhaustive reply! Actually, I wasn't trying to force my application to use SteamVR -- I was merely trying to figure out how to tell the already exported executable which runtime to use. And finally I managed to find the (almost) hidden place in the SteamVR menu where one can make SteamVR the defaul OpenXR runtime: it's in "Settings -> Developer" -- but it seems only available once a headset is actually connected to SteamVR (in my case, that would be my Quest 2 throught ALVR).

Cheers -- Torsten

a year later