OpenXR Runtime for SteamVR - Reverb G2

Hi all,

I made a post (link) about some issues I was having with my G2, where I essentially couldn’t get VR to work with MSFS, when OpenXR was enabled. This was disappointing as I couldn’t utilise OpenXR and optimise my VR experience.

I instead had to use SteamVR, and constantly had a message within WMR to say that OpenXR wasn’t enabled. As such, I presume MSFS wasn’t using OpenXR at all.

I’ve recently noticed that VR DOES work if I do the following:
SteamVR->Settings->Developer->Set SteamVR as OpenXR Runtime

My question is: does this mean that MSFS is using OpenXR via SteamVR, or am I still not able to use OpenXR?! Below is what I see in the OpenXR Dev Tools, but does this actually matter? Are the settings that I change in the OpenXR Dev Tools being carried across to my MSFS experience?


Essentially, I’d just like to know if OpenXR is being used for MSFS VR, regardless of the fact that it’s enabled through Steam? Hopefully I can start optimising my VR in-game from here forward.

Many thanks to anyone who knows!

I’m using an i9-10900K / 3090/ 32GB - if anyone has any recommendations (settings-wise), it’d be much appreciated :slight_smile:

On my system I have the steam version of msfs and I use OpenXR for Reverb G2, but I do not have steam vr installed at all so I’m sure I am only using OpenXR. I usually start windows mixed reality before I start the sim, but I start the sim in 2d and use ctrl-tab to enter VR after I start a flight.

I don’t have the steam version, but without SteamVR, it doesn’t seem to work for me at all…

Further to the above, this is the notification I see when SteamVR is the OpenXR runtime. Does this mean OpenXR isn’t working?

Steam have their own implementation of OpenXR (i.e. their own runtimes) which is what you are using.

The OpenXR Dev Tool only applies to when you are using the Microsoft implementation of OpenXR, so the only settings that will change your experience are those in SteamVR.

Mostly, it seems that native OpenXR (i.e. Microsoft’s runtime) performs better than Steam’s when you’re using a WMR headset, but I totally understand if you can’t get it to work!

PS. I had a look at your other post about it not working. Have you tried removing Windows Mixed Reality completely and reinstalling (reinstall is auto when you re-plug your G2)?
It’s a bit of a tricky one: I had to do it when a Windows Update wouldn’t work. I posted here about it (but I think someone else on that thread explained how to actually do it - sorry can’t find that post):

The settings in your screenshots are set up to use SteamVR.

For MSFS in the Reverb G2 you should set the WMR OpenXR runtime as the active runtime in the OpenXR dev tools.

Also set a custom resolution of 70% in WMR dev tools. Then you should be able to have MSFS resolution at 90% or 100% with your 3090.

If MSFS isn’t working with OpenXR enabled in the WMR dev tools then you should troubleshoot that and get that working before doing anything else.

Yes - it’s confusing and often frustrating!

But as said by others above, the Reverb runs on WMR which uses an OpenXR Runtime. So if you are running a Reverb, it is using OpenXR.

The confusion is that there are (at least) two versions of OpenXR Runtime - the Windows Mixed Reality version and the SteamVR version.

To add to the confusion, what will run on which version is also changing as various updates are put into place. The good news is that at each update, it seems to be moving towards a situation that either version will run (at the very least) both MSFS and X-plane. Up to a few months ago, that wasn’t the case.

So - if MSFS runs OK for you on SteamVR, then yes - it is running OpenXR, albeit the SteamVR Runtime version. But don’t fret - in a number of experiments I’ve done both on MSFS and X-plane, there seems to be now very little difference between the two OpenXR Runtime versions (using latest updated versions) so I don’t think you are losing out.

So it is worth ensuring that both versions of OpenXR are up to date (there was an update of OpenXR for SteamVR a week or two ago) and also that your other related programs are also up to date. And, once they are up to date, it is worth trying both versions to see if they will load up MSFS. And if there is a difference, simply use the one that works best.

To add to the confusion, I believe G2 can work with Steam’s original OpenVR (traditionally known as “SteamVR” and developed by Valve), the newer Steam Open XR and WMR Open XR.

Just click “Fix it” to switch to WMR OpenXR.

I’ll bump this up. I think this is an important technical issue with Reverb G2.

You can make RegEdit assignment quickly:
Go to search box in Windows, type in RegEdit.

Then locate HKEY_local_machine\software\kronos\openxr

In that you’ll find 2 elements: (default) and ActiveRunTime.
Both should have assigned to a path to *.json file, which is a runtime file.
------- x -------

Verify that you have this file “c:\windows\system32\MixedRealityRuntime.json”
then edit “ActiveRunTime” to that file path, if you want to run the MS Store version.
-------- x ---------

If you also run SteamVR, it should have the path to SteamVR Runtime.
I’d think it’s in c:\programfile…\steam…
Do check (with File Explorer) and verify it first.
------- x------

I would insert a 3rd element, say “BackupRT” and set it to Steam Runtime’s path, just so that you have it there.
The (default) element should have MixedRealityRuntime path, just to keep that string.

Then you’d just copy and paste the filepath that you want to use, to ActiveRunTime.

Exit edit, and go fly. There’d be no guessing which one is active.

1 Like

I don’t get it. If you want to switch between active runtimes (steam’s OpenVR or WMR’s OpenXR) you simply go into SteamVR and select an active runtime as OpenVR and if you want to chage back you simply go into OpenXR developer tools and it will tell you that OpenXR is not set as an active runtime and you just click fix and it’ll switch back. Additionally, i run the microsoft store version and i have tried running the game through steamVR’s runtime and there is basically no way to make it run better than through openXR so it’s pointless to even bother with it.

MSFS supports OpenXR and OpenXR only.

Where the confusion comes is that SteamVR provides its own OpenXR runtime. It’s still OpenXR and not OpenVR. Under the hood is (I think) translates OpenXR calls to OpenVR. I don’t know how that affects performance.

The WMR portal will tell you that OpenXR is not setup if you set the OpenXR runtime to anything else than that WMR one (see OpenXR Developer Tools). That is not an accurate statement: OpenXR is still set up, just not using the WMR runtime.

Hope it clarifies the confusion.

I tested my reverb G2 both with openxr steamvr and openxr wmr (3080ti). There is a big performance gap in favor of wmr: for the same performance I can go 90% in game render scale vs 70% for steamvr. I wonder how the varjo which only runs steamvr openxr can make up for that difference

I am so curious too… I don’t understand how this is possible.

OpenXR is the new generation of developer interfaces (API) for VR. What this means is that none of the OS/VR environments where originally developed for it (they predate the OpenXR standard by several years). So for now, OpenXR is mostly implemented as a compatibility layer with the “older” API. It translates what developers do into the older calls.

So instead of having something under the hood that looks like:

Game → OpenXR → OS

You in fact for WMR have:

Game → OpenXR → Mirage → OS

Mirage is the name of the original API for WMR support on Windows (this is why sometimes you will see reference to Windows.Mirage.Dll in logs or crash dumps etc).

Now when you use SteamVR, there is another layer I believe (I am not familiar with SteamVR but here is my guess):

Game → OpenXR → OpenVR → OS

OpenVR is the name of the original SteamVR API.

Now this gets even messier in reality because SteamVR does not talk to the OS directly for the majority of headsets…there is an additional driver. So for WMR:

Game → OpenXR → OpenVR → Mirage → OS

This should explain why using the SteamVR OpenXR runtime will likely give you lower performance than the WMR OpenXR runtime. You have this extra “hop” into SteamVR (OpenVR) world, only to go back to WMR world (Mirage).

Just to make things more complicated, some features of OpenXR are not directly supported by the legacy API like OpenVR or Mirage. So in this case, the OpenXR runtime has to do extra work to implement these features, and will do it in a way that is designed to be efficient only on the target VR headset. So using the OpenXR runtime that is not targeting specifically your hardware could be less efficient.

I hope this helps.

6 Likes

MODERATOR EDIT:
Hello

I just bought for Christmas a very powerful computer, just to be able to use flight simulator in VR, and I also bought an HP Reverb G2…
I don’t have anything else on my pc…

But after 10 minutes it becomes unplayable in VR, it trembles everywhere, I tried to change all the parameters, increased not high… it is the same.

Thank you for your help, I invested a lot, I would like to take advantage of it…

Laurent

Windows 11
OpenXR
Msfs installed with DVD

I5 12600k
Rtx 3080
32GB ddr4 3600mhz
Msi pro z690 ddr4
SSD 1TB nvme

Bonjour,

Je viens d’acheter pour Noël un ordinateur très puissant, juste pour pouvoir utiliser flight simulator en VR, et j’ai également acheté un HP Reverb G2…
Je n’ai rien d’autres sur mon pc…

Mais au bout de 10 minutes ça devient injouable en VR, ça tremble de partout, j’ai essayé de changer tous les paramètres, augmenté pas élevé… c’est pareil.

Merci de votre aide, j’ai investi beaucoup, j’aimerais en profiter…

Laurent

Windows 11
OpenXR
Msfs installé avec DVD

I5 12600k
Rtx 3080
32go ddr4 3600mhz
Msi pro z690 ddr4
SSD 1to nvme

@laurent. If you can get into flying for awhile, you’ve past the stage of matching the right runtime.

I’d look into your hardware, like usb3.1 connections.

Beaucoup de chance.

I am very sorry you were having a bad experience with the game and your hardware. I saw your post now and 17 days have past so I don’t know if you have found already a solution or not to your problem.

The only moment I had very heavy stuttering and fps problems with the sim was during the Christmas vacation and I found the problem, I had the Windows 11 Insider Dev Build and when I switched back to the Beta build (reinstalling all the programs and OS from scratch) everything worked perfectly well. Now is always very, very smooth!

I have pretty much the same problem on a newly purchased/installed Reverb G2. The only way to make MSFS 2020 work in VR with it is to set the SteamVR as the OpenXR runtime. If I set WMR as OpenXR runtime and try to toggle MSFS into VR mode I just get put into a void of black, no content at all. The laptop screen changes to the VR view, but doesn’t respond to headset movement… Also, if I turn on motion reprojection in the Windows OpenXR Tools it will come right back to WMR home after trying to go into MSFS VR. Just boom, in, out, no errors/messages. Turning reprojection off puts be back in the void. Very strange, and I have made sure every piece of software I can find is updated to the latest versions, yet no joy even this much later than the original poster encountered a similar problem. Oh, and I deleted and reinstalled WMR, even though it had just been installed yesterday when the G2 arrived. No change.