Use SteamVR with WMR as the OpenXR runtime

I have a mixed setup that uses the HP Reverb G2 headset, but for the controllers I use the Valve Index Knuckles with base stations, and I use the Space Calibrator plugin in SteamVR to make the controllers work with the headset.

For my unreal engine project (let’s just assume the packaged exe for now for simplicity, and not running within the editor), I would like to be able to use WMR as the active runtime, due to the much better motion reprojection that you get. However, I am currently unable to use both.

If I set SteamVR as the active runtime, my packaged project runs fine within SteamVR, but it uses the SteamVR motion reprojection which doesn’t work very well.

If I set WMR as the active runtime, the game still runs, and uses the better WMR motion reprojection, but as soon as I launch the game, it automatically closes SteamVR, and my index knuckles switch off.

I know it is posssible to have both, I can do this in Skyrim VR. In Skyrim VR, I can have either WMR as the active runtime, or SteamVR, and SteamVR and my knuckles don’t “auto close” when I launch SkyrimVR.

So just wondering how it will be possible with my Unreal Engine game I am working on, to be able to have both WMR as the active runtime, and not have it auto-close SteamVR, so I can also use the index knuckles.

Any help appreciated, thank you!

You can’t really have both runtimes active at the same time like that. If WMR is chained thorough SteamVR, the SteamVR driver-end acts like an OpenXR client that plugs into the WMR runtime.

Skyrim is an OpenVR game, so it will always use SteamVR, regardless of your runtime setting (unless you are using OpenComposite). If you are able to use the knuckles, it’s running on SteamVR.

The only way to do what you describe would be to configure SteamVR to run without the WMR driver, and write a separate background OpenVR Unreal plugin to sample the controllers. But even then, Space Calibrator would not work, so you would have to reimplement it inside Unreal. That’s a lot of work for a very specific setup.

I’d suggest trying out the Oasis driver for SteamVR instead, if you haven’t yet.

1 Like

Ohh so you’re saying that, even though I set WMR as the active runtime, Skyrim is still using the SteamVR runtime, and the SteamVR motion reprojection, and not the WMR version?

Some games it’s easier to tell than others, particularly if I am having performance issues, I just assumed WMR motion reprojection was working in the Skyrim case but maybe it wasn’t. Maybe I run a test where I jack up the resolution and tank the frame rate and see if I can tell that it’s just the SteamVR version.

My current unreal project is plagued right now with performance issues so I can definitely tell the difference.

Regarding the Oasis driver, I had not heard of it, I simply avoided updating Windows to prevent the mixed reality portal from disappearing. But it looks very interesting, I’ll have to check it out.

Actually, as long as the headset is connected through the WMR runtime, you are always using the WMR motion reprojection, even when running though SteamVR. SteamVR should just be letting WMR fully handle the frame timing, and pass on the submitted app frames without compositing them.

The motion smoothing in SteamVR only works with drivers that let SteamVR handle the Direct Mode display connection, such as Oasis and the Lighthouse driver.