Don't set location of OpenXR runtime with the registry, use OpenXR Loader Specs instead

In my opinion:

  • The main advantage is preventing people from ruining their registry.
  • The 2nd advantage is using the OpenXR own native means, for doing exactly what was the registry editing workaround provided for.
  • The 3rd advantage is when OpenXR decides implementing another way, they shall support backward compatibility with the Environement Variable
  • The 4th advantage is that you can easy set this for all users or just you.

There are certainly other advantages and as many disadvantages but one thing for sure: OpenXR has a specification for overriding the driver you’re using and this uses the Environment Variable, not the registry, per their official docs.

I’ve forgotten to add the most important point maybe to it all:

No matter what registry setting you tell any customer to change, the environment variable has precedence.

This will certainly save some support headache to just tell customers using the environment variable instead of the registry, otherwise you might be trying for weeks and never understand why the registry setting is not picking up…

I have a question regarding this env variable setup.
Once the env variable is set do we have to reboot our machine for it to take effect ?

I don’t think so but if it fails on you just let us know :wink:

1 Like

I am hoping you can help me out with this as you are clearly more tech savvy than I am. I just switched from Game Pass MSFS to the Steam version. I am still using my Reverb G1. Do I need to make any changes to the reg? My current runtime shows the mixedreality.json

Disclaimer: I am waiting on the devs to re-activate me for Steam from Game pass so I have temporarily lost VR access

You can configure which OpenXR driver to use for all OpenXR application easily:

As for using WMR or SteamVR OpenXR, this doesn’t depend on where you’ve purchased the simulator, only what headset you’re using. You can for example redirect the Reverb G1/G2 from using WMR OpenXR and using SteamVR OpenXR instead, whether you’re using the MS Store or Steam version of FS2020.

When you’re using a WMR HMD on SteamVR with an application using Valve OpenVR API, it is using SteamVR as the API and WMR as the driver for the headset. In order to bridge the two, you’d need to also install WMR for SteamVR in Steam Client. If you’re using an OpenXR application though, it will use the configured driver (see below). Here there are two options available:

  • App -> OpenXR API -> WMR OpenXR driver -> Reverb.
  • App -> OpenXR API -> SteamVR OpenXR Driver -> WMR for SteamVR -> Reverb

The former is the “normal” path with the Reverb G2 as-is. The later is what you could do should you want to use the SteamVR features like a finer control on some VR settings and using overlays like fpsVr.

2 Likes

Thanks @CptLucky8 for all the helpful posts!
If someone already has SteamVR & WMR plugin, It looks like we can just set the OpenXR runtime in (Steam VR > Settings > Developer menu), instead of the Registry or command prompt?
There is a button to “Set SteamVR as OpenXR Runtime.”
I could be wrong tho… but wanted to try FS on SteamVR also.

Update: Thanks, yep it works with my G1. Like you said in another post, if SteamVR and WMR are open FS crashed. But with only FS running I started SteamVR fine. And FPSVR also works which is nice to have in view.

1 Like

Good idea, thank you for sharing, and for your kind words!

I’m sure this is directly changing the OpenXR registry entry which is fine in most cases.

I am trying to recreate this with my Reverb as well: So you start MSFS, load into VR, and then load steamvr and the game stays open?

Yeah, I started MSFS running by itself, (no WMR running either), started a flight, loaded into VR and SteamVR will start by itself. It worked a few times, then I tried changing some of the settings including the HAGS. Then I turned the Win10 HAGS setting OFF again and I could load into VR.
Wanted to try some settings in SteamVR settings, but I think since I have the store version of MSFS, STeamVR doesn’t recognize it for “application settings”. I tried starting MSFS first also, but for now its running, looking more aliased to me, but smooth.

1 Like

Wow look at all those dropped frames and spikes !!

1 Like

I’ve posted a lot of details about this here:
[BUG REPORT] FS2020 VR frame timing is lagging and causing stutters - VR Closed Beta / Hardware & Performance - Microsoft Flight Simulator Forums

1 Like

When doing my tests, changing the SteamVR SS, what I do is:

  • in VR mode, open SteamVR setting (HMD or desktop)
  • change SS value
  • CTRL+TAB to return to 2D
  • Close SteamVR
  • Wait a few seconds it shuts down
  • CTRL+TAB again to get back in VR.

This is no bullet proof but it is the closest I’ve found to prevent most CTDs.

PS: I agree it doesn’t appear in SteamVR settings because it is a MSFT app. You have to change the settings while in VR mode. However you can manually edit the SteamVR config file:

C:\Program Files (x86)\Steam\config\steamvr.vrsettings

The entry should look like this:

   "system.generated.flightsimulator.exe" : {
      "disableAsync" : false,
      "motionSmoothingOverride" : 2,
      "resolutionScale" : 150
   },
1 Like

@N432BC

There is a new WMR for SteamVR beta:

Windows Mixed Reality for SteamVR Beta has been updated to build 1.2.485. This build contains the following changes:

*** Added support for submitting frames rendered against alternate poses.**

I’m wondering whether this could give better frame timing with FS2020.

[update] here what this is about:

https://www.reddit.com/r/WindowsMR/comments/kapdm1/windows_mixed_reality_for_steamvr_beta_updated/

Basically what happens is every frame the system tells the running title where the HMD is (a pose) with the expectation that the game will render using that pose. In some scenarios, the title can’t do this for some reason. A good example is the GTA V R.E.A.L. mod, where it only renders a single eye per frame and tries to re-use the prior frame’s pose for the other eye. If we were to take those frames as-is, it wouldn’t match what was expected by the system and you’d likely end up feeling cross-eyed or that the world was swimmy.

Before now, our SteamVR integration didn’t support this, and so applications that tried to do this caused errors. Now we’ve completed the work to make sure we can take those additional poses and transform the image slightly to more closely match the pose we were expecting, so things should generally work fine now.

It’s worth noting that very few titles actually do this, but now we offer the option for titles that have no choice.

1 Like

Thanks, I hope the new beta helps some people, I tried it last night. I’m still thinking the WMR is looking better to me. But I wanted to just see “if it works”, and see FPSVR again. However changing the runtime to steamvr runtime in developer settings works, I also tried setting it via cmd, but it didn’t take for some reason. I also tried cmd as admin with:
set XR_RUNTIME_JSON = E:\Steam\steamapps\common\SteamVR\steamxr_win64.json
My steam is on my E, but it still just started wmr. Oh well, it was fun anyway.
I hope you get good results with all your work on that frame time bug report.

I’m running native msfs 2020 and not having the problems you guys with steam vr are having not that native isn’t having issues too. I’m wondering if you could get a refund from steam and buy direct from ms?
I’m running 40 frames with no visible stutters except when on or near the runway and even then they are not bad. For my experience I doubt anyone will complain about vr when its released if they have the same experience I’m getting. I’m not getting crashes or anything like that. For the most part it runs smooth as butter and I feel my settings are high compared to the average person, I could lower a bit and eliminate the stutters all together and not really lose any quality of the visuals. Do I wish I could crank everything up to maximum , yes but that will not happen for a year or two and my oculus s is not capable of seeing any thing better even with higher settings. Should Ms stop working on the other updates and concentrate on vr for the next two weeks, absolutely. Controllers should work on the release but doesn’t look like that will happen. Are sim people hoping to get their hands on vr even if its still in beta mode on release day, absolutely. I have loved everyday that I’ve been using it. For me its been absolutely amazing ever since I got VR.
I9, 2080ti, 64g, oculus s. I have a reverb 2 sitting under the tree and I’m guessing it would put some stress on the system with its higher resolution. I would definitely try to get a refund and buy native msfs if you can.

Ok, I think that is the difference for us… when I launch VR, WMR starts for me, not SteamVR. Are you using the HP Reverb or a different headset?

I have the Reverb G1, it works fine as intended with WMR. I have the MS store version of MSFS, but I wanted to just try it with WMR for SteamVR plugin and the SteamVR runtime to see if there was any difference, and to be able to use FPSVR to see frametime info, and temps etc. When I changed to the SteamVR OpenXR runtime via SteamVR Developer settings, MSFS would launch SteamVR, even now with the WMR for SteamVR beta. I noticed that if I had the HAGS turned on, it would crash if I tried the Windows menu button. I meant to try it again after the new Steam beta with HAGS turned off again, but not have not, since the visuals did not seem as good. Hope that made sense…

2 Likes

Ah ok, I did not have Steam OpenXR selected in Steam, it was defaulted to WMR. I changed that and can now recreate what you and @CptLucky8 can do with SteamVR settings and FPSVR. Thanks for the responses!

That being said, the performance was atrocious! I didn’t change anything except lowering my render from 80 to 70 and putting the in-app resolution for FS2020 to 150% (the main resolution slider in steam is set to 50% since that is apparently the actual 100% representation for the G2.

Maybe @CptLucky8 can shed some light, but would using the steam openxr instead of the windows one be the cause of performance issues?

1 Like

It is most likely causing some extra processing because you’re going though an extra hop. However, the OpenXR and OpenVR are quite similar and any “bridge” is only a thin layer in the end (it is not like translating OpenGL into DirectX).

What matters the most in the end is the final render resolution as it is determined by SteamVR SS + per-app SS and shown in the per-app video settings popup panel in SteamVR. This determines the resolution FS2020 is rendering to if FS2020 Render Scaling is 100% (at least this is how it works with the Index).

You might want to read my [Update 08DEC2020 - Render Resolution (continued)] addendum here:
https://forums.flightsimulator.com/t/my-2070-super-vr-settings-and-suggestions-valve-index/321913/2

NB: you can see the render res and post process res using the FS2020 dev mode fps overlay in VR mode. It will be displaying this info on the monitor directly (just lift the headset to peek).

2 Likes