OpenXR Tools for Windows Mixed Reality update in the store (4/14)

Hello all,

If you are not using a Windows Mixed Reality headset (such as the HP Reverb or Samsung Odyssey), you may disregard this message.

TL;DR: There is a new release of OpenXR Tools for Windows Mixed Reality in the Microsoft store. Roll out of the new package from the Microsoft store may take up to 48 hours to be available on your machine, so please be patient if you are not seeing the update right away.


Reddit thread with the full announcement: OpenXR Tools for Windows Mixed Reality Updated - 113.2304.14003 : WindowsMR

The official release notes are here: Release OpenXR Tools for Windows Mixed Reality - 113.2304.14003

How do I enable Windows Mixed Reality as my OpenXR runtime instead of SteamVR?

To make sure you selected Windows Mixed Reality as your OpenXR runtime, you may use one of the solutions below:

a) Start the Mixed Reality Portal and look for a banner at the top of the window:

b) Use the OpenXR Tools for Windows Mixed Reality app from the Microsoft store, navigate to the Mixed Reality tab, and check the Installation status :

How do I enable the preview OpenXR runtime?

Using the preview OpenXR runtime requires the following steps:

  1. Make sure that Windows Mixed Reality is set as your OpenXR runtime (see above).
  2. Install the OpenXR Tools for Windows Mixed Reality app from the Microsoft store.
  3. Toggle Use latest preview OpenXR runtime in the OpenXR Tools for Windows Mixed Reality app:


And now, my tailored release notes just for you!

All the changes below require you to toggle to the Preview runtime with the option “Use latest preview OpenXR runtime”.

  • Added support for temporal post-processing of motion vectors (same algorithm as Windows Mixed Reality for SteamVR). Improves the quality of motion reprojection.

This feature does not require any activation (besides turning on Motion Reprojection of course). It can benefit in all games and with all GPUs (including AMD).

  • Added support for Nvidia Optical Flow as a source of motion vectors. Improves the quality of motion reprojection on Nvidia RTX cards only.

This feature is enabled by default when Motion Reprojection is enabled, but it can be disabled via the “Disable NVIDIA Optical Flow Acceleration on RTX cards” checkbox. Toggling the checkbox requires to restart the VR session (Ctrl-Tab). It can be used in any game, but as the note says, is only available on RTX cards (2000, 3000 and 4000 series) and on a few cards in the GTX 1600 series, but not all of them (see GeForce 16 series - Wikipedia, all cards except for the ones marked TU117). It is NOT available on GTX 1000 series and below. It is NOT available on non-NVIDIA cards.

How to tell which motion reprojection is used? You can enable “Display frame timing overlay”.

113dxmv

In the overlay, the possible values are:

  • NVOF10tS: this is NVIDIA Optical Flow motion reprojection.

  • DXMV16T: this is generic motion reprojection. Will show as DXMV8T on older AMD cards (5000 series) due to limited encoder capabilities.

  • MotionReproj: this is the old motion reprojection. If you see this, you are not using the preview runtime.

Should I use or not use NVIDIA Optical Flow? That really depends on the content, and also your preferences. Each method may perform better than the other with specific content, or simply your own perception of the motion reprojection. Try both, pick the one that works best for you.

  • Added option “Prefer frame rate over latency”. This option allows an application to render frames faster at the cost of additional latency. It can be used in conjuction with motion reprojection. This is similar to the so-called “Turbo Mode” in the 3rd party application “OpenXR Toolkit”.

The explanation mentioning Turbo mode should sound familiar. Highly recommend this option, unless it causes issues.

This variant, unlike the OpenXR Toolkit one, works well with motion reprojection, as long as HAGS (Hardware Accelerated GPU Scheduling) is turned on!

I strongly advise to disable Turbo mode in OpenXR Toolkit if you are using this option. The implementation in the runtime should be better and provide more accurate tracking prediction. There is no point in doing “double-Turbo”, this will only mess up your tracking prediction and not provide gains.

Just as with OpenXR Toolkit, this option will alter the frame time measurements. You can see whether this option is active by looking at the WMR frame timing overlay, and seeing a * symbol next to the frame rate means that it is active:

turbo

Should I use HAGS (Hardware Accelerated GPU Scheduling)? You should experiment, I’ve been getting better results with motion reprojection with HAGS turned on, regardless of the Prefer frame rate over latency option. But it probably depends on the application.

  • Moved motion reprojection rendering to a high-priority command queue to prevent interference from the application.

This feature does not require any activation. Some of you are already running with this (previously known as EnableHighPriorityCompositor). It helps making motion reprojection frame rate more stable, especially with DirectX 12.

  • Removed “Automatic” motion reprojection mode (which only meant “Enabled only in Flight Simulator 2020”).
  • Added options to limit the motion reprojection rate to a specific fractional rate.

This should be self-explanatory. This is similar but not identical to the “Lock reprojection” of OpenXR Toolkit. The option in OpenXR Toolkit was more aggressive because it tried forcing a certain rate, even if you could not achieve it. This could lead to worse results. The new option here is a safer, less aggressive way, which prevents from going to a higher reprojection rate, but will not force an impractical rate.

  • Disabled: do not attempt motion reprojection.
  • Use best frame rate: try to find the highest frame rate possible, even disabling motion reprojection if it is not needed. However note that having motion reprojection “on standby” rather than Disabled has a cost! Choose wisely.
  • Limit to 1/2 frame rate: do not go higher than 45 FPS (30 FPS respectively) when the target refresh rate is 90 Hz (60 Hz respectively).
  • Limit to 1/3 frame rate: do not go higher than 30 FPS (20 FPS respectively) when the target refresh rate is 90 Hz (60 Hz respectively).
  • Limit to 1/4 frame rate: do not go higher than 22.5 FPS (15 FPS respectively… not recommended!) when the target refresh rate is 90 Hz (60 Hz respectively).

Note about changing Motion Reprojection value: going to and from “Disabled” requires to restart the VR session (Ctrl-Tab). Going between any of the other values (Best frame rate or Limit frame rate) takes effect quickly and without a restart.

Have a great week-end everyone!

41 Likes

Motion reprojection seems better now on G2 now, but still creates lots of artifacts when using reduced FOV option in Toolkit

Can you please write suggestions how to configure OpenXR Toolkit now? should we disable MR there an enable in OpenXR Tools? What are the combinations to best utilize new features?

5 Likes

Many thanks for the very detailed explanations.

Nice one, thank you for all good work ! :+1: :slightly_smiling_face:

Report CTD`s when changing/testing with various resolutions in the ToolKit.

1 Like

For my system this is a great update. Reverb G2/4090/13700k. HAGS on, 200% oxr, DLSS Qual, DX12 in MR with smooth performance and way less artifacting. Good work…

1 Like

How can I adjust the rendering scale - now it is fixed to 100%

Thank you so much for the update and information on this.
How do the settings for motion reprojection in the toolkit influence the new settings in the tools?

Going in and our VR a real struggle now, with the system hanging, I also do get at times intense flicker in the settings, something is not functioning as it should for sure. Wonder if anyone else got issues ?

1 Like

Which CPU, GPU, Win, DX Mode are you using?

I’m having the same issues. Flickering at start, but it stabalizes after a short while and then it’s OK. Exiting VR mode at the end of the flight freezes the sim. Need to kill the process.

3 Likes

Same here. Exiting VR session freeyes the sim.
DX12.

1 Like

Try typing in the desired value.

1 Like

@mbucchia Matthieu, thank you so much for this update. I know you worked really hard on this months back. Thank you as well for the detailed explanation of the settings.

This update is an absolute godsend for MR on the Reverb G2. I am extremely impressed, and very happy.

As someone who is irrationally hypersensitive to stutters in VR, I can say this update allows for the best frame pacing I’ve ever seen in the sim, surpassing even the smoothest pancake settings. It’s even better than the best I was able to achieve after weeks of tweaking with the Special-K injector. Amazing work!

Here are my observations:

  1. I still need to use RTSS with a 30 fps lock (asynchronous) to get perfect smoothness, but that’s no issue and nothing new. Without it there is a constant microstutter with MR enabled regardless of framerate choice, and always has been for me. With RTSS locking at 30 though it’s absolutely sublime.

  2. The freezing issue others have mentioned appears to be related to the “prefer frame rate over latency” setting. If that is checked, when exiting VR there is a 10-20 second freeze of the sim. It always recovers though, and sometimes tabbing out to another window helps speed it up. Going into VR from pancake is seamless. If that setting is disabled it works fine in both directions. This setting is absolutely amazing though, and worth this minor hiccup. The frame pacing it offers is just crazy good.

  3. Artifacts:

  • Improvements: Propeller artifacts and those normally found on object edges (in-game panels, wing tips and leading edges etc) have been reduced by 60-80% easily. Propeller texture mods are likely no longer required, but with them the image is near perfection.

  • Issues (very minor): I do see some more artifacting around cumulus cloud edges in high contrast scenes compared to the original MR algorithm, but this is entirely livable against the gains! Also vertical repeating patterns (building windows etc) seem to confuse it more, resulting in more shimmering and sometimes blurring, especially towards the periphery of the image, but only when the patterns are perfectly vertical or horizontal in the view. If they are on a diagonal (during banking) there is almost no distortion. Again, entirely livable. It’s only really noticeable if blasting at very high speed between buildings in level flight. The same repeating pattern problem can be seen in the “grid space” in the menus, but that’s barely even worth mentioning, and certainly not an issue.

  1. Performance wise this update is a HUGE improvement. I am no longer seeing the crazy jumping of MR load from the GPU to main thread and back, and the persistent stutter that always occurred when the sim went from being cpu limited to gpu limited within the framerate lock (such as when flying into a cumulus cloud) has been nearly eliminated. I am now able to run with heavy ultra clouds over Manhattan at low level with MR and without dropping a frame. I have never been able to do that before, not even on a 4090 and 7950x3d.

  2. As a side note the new update does not seem to play nice with any nvidia vsync mode other than “application controlled”. If you have been running with 1/2 sync adaptive, forced on or off, or fast sync, and are having stutter / flicker issues with this update, try app controlled again in the nvidia control panel or inspector. I still need to do some more testing there.

To anyone who has traditionally dismissed motion reprojection due to the artifacts and slight loss of performance… it is absolutely time to try it again.

Amazing work sir! You’ve breathed new life into the G2 for sure.

Thank you again Matthieu. :slight_smile:

8 Likes

It’s an editable text box. You can click on it end either use up/down arrows or page up/down or type a value directly.

Can you @Mihaita, @Eraser68RH and @Dankovic try without Prefer framerate over latency? I suspect that is the culprit.

1 Like

Jup, without Prefer framerate over latency it works fine.

Same for me: Only without Prefer framerate over latency it works - else flickering and “freeze”

DX12, default 3D settings in Nvidia driver, HAGS on, Reverb G2, RTX4090 newest drivers, 5800X3D
but with “nvngx_dlss.dll” 3.1.11

Ok thank you both for the report. My recommendations based on performance testing:

  • Prefer framerate over latency really helps when you don’t use Motion Reprojection. So it’s probably OK to leave off in your care.

  • if you have windows HAGS on, I found that the Prefer framerate over latency did not help as much anyway. So another reason to leave it off.

You could also try using OpenXR Toolkit Turbo mode with Limit frame rate to a set value and Prefer frame rate over latency off.

2 Likes

Open xr toolkit works with pico 4. This version does not ?