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

Hi all

I just found “something” interesting about artifacts. I use 45fps MR locked with a 4090…and a not adecuate cpu, just a 8700k oc to 5ghz (waiting for a 7800x3d)

My finding is that if the app cpu meter (overlay via toolkit) indicates a latency lower than 9,2ms…the motion reproyection is almost perfect.

But as soon the app cpu shows higher than 9,2…then instantly much more artifacts and wobbling inside the cockpit appear.

It doesnt matter what app gpu meter indicates (always being lower than 21ms to be in 45fps target area)

I discovered it because when flying, once I got a high altitude, suddenly the reproyection inside the cockpit was perfect, but once I went down to lower altitude…it became bad again…then I flew up again, and perfect reproyection. Cheked with toolkit and the only change was the app cpu ms.

With my old cpu 8700k, I only can achieve under 9.2ms if I down drastically the Terrain LOD to 30…or if Im flying very high.

Could it be that the cpu, when is in reproyection mode, must handle it like working at 90FPS with ghost frames?? that would be the answer for having to be less than 9,2ms??

Wow. It’s the first time motion reprojection is working for me. There are still artifacts, espacially on the ground on the edges of the plane. I could minimize them by reducing quality settings so that I can get a MR lock of 45 on the ground, but I won’t. :smiley:

The only thing that isn’t working is night flying. The stars and lights are going crazy out the side window. Flickering like hell, being doubled or trippled or something like that.

Settings:

DX 12
HAGS on
MR on best framerate
Prefer framrate over latency: off

Nothing in the nvidia control panel
NVIDIA Reflex off
MR in simulator: off

TAA: 100
Custom render scale in OpenXR: 110

Settings in sim:
TLOD: 200
OLOD: 200
Everything else between High and Ultra

5800x3d and RTX 4090

Flying mostly analouge gauges. G1000 and G3000/5000 Screens are still a bit jumpy with MR.

my observations:

  1. I still need to use RTSS with a 30 fps lock (asynchronous) to get perfect smoothness

Hi, what is RTSS. I am searching also for a method to fixing the frame rate. I think with the OXR Tool is it only possible with MR. I am searching for a tool without MR. Can you help me.

Thanks Dirk

@DT19698255 RTSS is Riva Tuner Statistics Server. It’s usually bundled as part of MSI afterburner I think, but is also standalone. It’s an excellent framerate limiter, arguably the best overall, allowing for precise fps locking down to 3 decimal places if needed. I find it indispensable for VR in FS.

After installation you can set a profile in it for just MSFS. After that go into its setup menu (blue button at the bottom) and make sure that “enable 64 bit applications support service” is checked, and “enable framerate limiter” is checked. You can also try “Enable passive waiting” but I find it makes little difference. Next to the enable framerate limiter setting there is a dropdown where you can choose between three kinds of frame syncs, asynchronous, front edge, and back edge. Async is the default and the most reliable for FS, where stutters from scenery loading are common. In games with zero loading stutters whatsoever front edge or back edge sync tend to work better. You can still try them though.

Then go back to the main RTSS window and enter whatever framerate you want to lock to, 30 or 45 etc, and start the sim.

Hope that helps!

2 Likes

Hello mate. Can you tell me please…is there an actual benefit to limiting the framerate with rtss in comparison to limiting it in nvidia cp?

@ExeRay Yup, three benefits. One, it’s a much smoother and more precise lock than the control panel one. The CP one introduces microstutters. Two, it allows for very fine fps control for 2D as well, like 59.936 fps for 60hz screens. Three you can change the lock on the fly, control panel requires you to restart the sim for any changes.

2 Likes

thank you.

hmm…it won’t allow me to add flightsimulator.exe for a profile.

@ExeRay Hmm… not sure why that would be. Works fine for me. You can test it out just using the global profile though. That will fps limit the fps of every 3d application on your system, but you can just shut down rtss after you’re done flying, or set fps lock to 0 (unlimited). If it works well for you then hopefully you can find a solution for the profile problem.

yea, i’ve already tried how it works using global, seems just fine. If i try to add flightsimulator.exe as a profile it starts crying about permissions. I took over the xboxgames directory but it didn’t help. Doesn’t matter though. I’ll try it out later to see if i can notice any change from setting the limit in nvCP to RTSS.

1 Like

You don’t actually need to select flightsimulator.exe from a drop down. If you try that it will ask for permissions and deny the request.

If you just click on add and then type flightsimulator.exe it should work.

2 Likes

thanks, it works exactly like you’ve said :slight_smile:

1 Like

Hey. I’d just like to tell you that using RTSS to limit the fps quite noticably raises AppCPU measurement in the toolkit. For me personally it jumps from like 12 ms to 19-20 ms. (i7 9700k). Suprisingly it doesn’t cause stutters though so maybe it doesn’t really cause higher cpu usage, maybe it’s just the toolkit’s measurement that gets a bit “confused” somehow.

1 Like

Wow, thank you for this amazing tip. Before I have tried to fix framerate via Nvidia Panel. But the result was also micro stutters. Also without any limiter I have 50fps but sometimes it feel like 5 fps. The new MR works very well, but sometimes I have also mirco stutters and around the clouds is flickering. The RTSS tool with fixed frame rate to 30 is very close to the smoothness of MR but without flickering :slight_smile:

1 Like

Can’t you just limit to 1/3 of frame rate (90Hz * 1/3= 30Hz) or 1/2 of frame rate (45Hz) in OXR Tools for WMR (assuming you use motion reporjection)?

@stekusteku Yup, you can, but not all frame rate locks are created equal nor work at the same layer of the rendering pipeline. The RTSS and NVCP ones work at the driver level, and rtss is much much better at it. Weirdly the older Nvidia CP locks worked better, the V1 and V2 ones. The current V3 is pretty terrible.

There is another method of controlling frame pacing at an even finer level, using the Special-K directx injector, but that is a seriously deep rabbit hole, one I can’t recommend if you like your sanity, hehe, and with this amazing latest WMR Tools update it is no longer needed anyway. RTSS is more than good enough to smooth out the remaining bumps in MR.

Some people aren’t very sensitive to micro stutters. For me they’re like stepping onto a stationary escalator, over and over and over again, extremely jarring. MR smoothness depends very heavily on being given highly consistent frame pacing to work with, with as little variance as possible, and ideally when the GPU side has a longer rendering time than CPU. Outside of 2D Vsync MSFS doesn’t have any kind of internal fps lock to handle this (really really wish it did). This means some kind of external lock is required so that MR can have something stable to work with.

In my experience after many months of testing and tweaking with motion reprojection on…

  • NVCP max frame rate setting only = intermittent micro stutters, some hard stutters

  • OpenXR Toolkit frame rate throttling setting only = continuous micro stutters, some hard stutters

  • OpenXR Toolkit reprojection lock (1/3 or 1/2) only = continuous micro stutters

  • (New) OpenXR Tools for WMR reprojection (1/2 or 1/3) only = intermittent micro stutters and occasional hard stutters

  • RTSS lock only (30 or 45fps) = pretty smooth, occasional hard stutter

  • New OpenXR Tools for WMR reprojection (1/3 or 1/2) with prefer framerate over latency set on + RTSS lock (30 or 45 fps) + OpenXR toolkit MR on (unlocked) = ultra ultra smooth

There are a hundred factors that affect frame pacing in the sim in VR. One of the biggest problems is that some of the sim’s rendering and interaction is tied to its own 2D window / mirror. Things like mouse position and line of sight etc seem to be taken from that, and that window runs at the refresh rate of the monitor it’s sitting on, not the HMD’s refresh rate.

This creates a continuous cycling fps conflict in MR due to the fact that windows doesn’t run at precise even multiples of 30hz. Most 60hz monitors actually run at 59.936 hz, most 120 hz monitors run at around 119 hz. This discrepancy isn’t a problem for 2D flying, but in VR it can produce brief rhythmic stuttering when the desktop window manager tries to bring them back in line every few seconds, and in MR this stutter is immensely magnified.

I get around this problem by running a custom desktop refresh rate of precisely 60.000 hz. This refresh discrepancy problem can be seen in the OpenXR toolkit’s dev display, with cpu wait time continuously increasing or decreasing (depending on selected fps lock) until it runs out of room in the frame, hard stutters, and then cycles again. The greater the frequency disparity the more often it happens. When the monitor and HMD are both running at precise multiples of the lock (30.000 fps in my case) it’s rock solid.

I could probably write a pretty awful book about this stuff at this point, hehe.

16 Likes

Good read there, buddy. Thank you. I have just one question though. What is the benefit of enabling MR in the oxr toolkit if you already have it enabled in the oxr tools?

@ExeRay Couldn’t tell you exactly why, only Matthieu could probably, but having MR on in the toolkit, set to unlocked, along with the 1/3 setting in oxr tools and rtss, gives me the most consistent frame times as measured in special-k’s very precise frametime graphs, and visually watching for microstutters. Capframe-x never works properly with MR and fps locks.

It’s fine without it, but ever so slightly better with. Maybe it’s something specific to my other settings, DX12, rebar on etc. I can’t stand the “facing away from sun” stutter bug in DX11, so that’s a non-starter for me. DX12 only.

I see. I’ve tinkered as much as ever since the new version came out and settled for oxr tools MR lock at 1/3 and disabled in toolkit. I have to experiment a bit more with RTSS framerate lock as i have inconsistent results because i can’t decide between cca 3800x3800 resolution and DLSS at balanced or 4200x4200 and DLSS at performance. In my limited tests, having no framerate limit produced somewhat better results (which is a first, because since a long time ago having a framerate lock produced better results). The lock in RTSS bothers me with its increase in CPU latency. I’ve only tested it for around half an hour, so i have to give it more chance.

Funny you should bring up dx12 though, because that i am sure produces worse results as far as performance goes in comparison to dx11 and i am completely baffled that so many ppl decide to go with dx12 now. Of course it’s impossible for me to know how this behaves with 4xxx gpu as i have 3080ti but for me personally i am most definitelly sure dx11 is a better option. I don’t even quite know what you mean by the “away from sun bug”.

I was also until I got a 4070ti and now I get better results with DX12