VR Reverb G2 WMR Performance (Motion Reprojection CPU issues, overclocking)

Disabling it is the same as not having it installed. The code is not run.

Your statement is the same as saying “I copied a file in My documents, and now my game is stuttering”, which is hard to believe.

One way you can confirm it is properly disabled is:

  1. inspect regedit, under HKEY_LOCAL_MACHINE\Software\Khronos\OpenXR\1\ApiLayers\Implicit. When disabled, the value of the regkey in there should be 1.

  2. run the app and check the log file at %localappdata%\OpenXR-Toolkit\log. It should be stale (date/time from earlier run).

This will confirm that the code is not run.

Did you try deleting Shader cache under disk cleanup?

I had similar problem. First time great after starting VR and MSFS, later and especially after coming off the VR and back again, stuttering. I have tried so many things to get rid of it, nothing really worked. But a have found something important - in NVIDIA control panel in MSFS section TWO pre-rendered VR frames instead of 1, Low Latency Mode to OFF. Everything else on default. This way it works well, I can switch VR off and back again without stuttering. My system: i9 9900K at 5 GHz all cores, 64GB RAM, NVIDIA 2080ti.

1 Like

I for one gave up Open XR. that never ran smoothly with motion reprojuction (17fps instead of without 60). I’m using Steam VR at 45fps motion reprojection and 100% render scale. the picture is worse than openXR, but it runs absolutely smoothly. Core i7 11700k, rx6900xt

I managed to reproduce this issue consistently, but I don’t have a root cause.
@mbucchia I’d really appreciate if you take a look and guide towards solution/ways to debug.
Problem:
When I start VR (hp g2 wmr) with MR on I can see fps drops every constant intervals. You can see it in the attached image.
Workaround:
Change the application while i-n VR. Meaning, go to another application and perform some task. e.g. go to Task Monitor and change the MSFS priority from normal to high and back - Doesn’t matter.
Go back MSFS the fps are locked nicely at 30 fps and it is butter smooth.

Can any one reproduce my issue and workaround above?
Thanks

I’ve had this before and pretty frequently. I cannot repeat it consistently however. I believe this happens without the toolkit installed as I’ve had this issue persist from the beginning.

In my experience the toolkit has been the biggest mitigator of this very problem. Prior to this I would often launch VR only for it to surge in and out of smooth MR locked frames.

Sometime task manager worked simply by opening it, then clicking back to the sim. I never tried altering the MSFS process priority though. I’m not certain but I also switched to those skinny drivers via nvclean. That may also have an impact.

I have a 9600k and 3080, G2. I think I run about the same resolution. FSR 75 I think.

1 Like

For future reference, the issues is solved not by changing the context. It is solved by going to task manager → details tab → search for msfs process → prority to ‘above noraml’ or ‘high’. doesn’t matter which one, just choose one.
Go back to vr.

This worked for me twice tonight.

Once in the Bonanza over Rome. MR was good until I went out and back in to VR then the stuttering appeared. Set the priority to high. Click over to MSFS, problem solved.

Then again in the FBW a320 (a notorious causer of this problem) set the priority back to ‘normal’ this time and it worked again.

Nice find!!!

1 Like

Are you suggesting set to high and leave it or does it cycle back to normal?

1 Like

Doesn’t matter. Just change it.
I change to ‘above normal’ then ‘high’.
Just to make sure the change is made.

Were you able to reproduce it?

So here are my results for a wet live weather and traffic departing London City, 1st is my none MR, 2nd MR at default setting, 3rd with setting set to high. To my untrained eye doesn’t look like it makes a difference.



1 Like

Tony, unfortunately this is not the same issue.
As you can see in my screenshot the FPS falls to red and then back to yellow.
This happens periodically. As you can see, your fps is low by steady.
I can’t tell why is it so, sorry

Our issue is when MR is pulsing in and out of smooth motion. The process prioty hack seems to snap it back into line.

Your issue looks to just be plain old fashion main thread limited. But that’s not surprising in cloudy London. You lower your LOD and see if you can get MR working but London is a comparitively poor performing area to fly, MR or not sadly.

@BaseKamper have you ever had this pulsing/surging crop up whilst in smooth VR? (Not when alt+tab’ing back in, but mid session) I’ve had it a few times prior to knowing this trixk. Just curious.

1 Like

@Jonny5Alive6618 what you mean by ‘smooth VR’?
It happens only on MR and as soon as start VR. Once it solved using this trick all is well as long as I don’t switch out and baok into VR

I meant smooth MR, not VR, sorry.

1 Like

I don’t know if this relates to the same but I had this periodic MR hickups while renderscale in Toolkit were set >85%, so I set it down to 80% (I7 10700k@ 4.8Ghz, 3080ti) while using MR. Going back up to 90% with no-MR (both using NIS and 35% sharpening)

May be a performance, thing?
Will try your hack

1 Like

MR is such a pain. It works so well and then sometimes it’s just the worst.

I cannot get it to work consistently in the a330-900 from flight sim.to. the hack works most of the time but if you change views (cockpit to external or vice versa) it breaks again.

That may just be that plane / location. Who knows.

My experience since version 1.x of the OpenXR Toolkit.

I force MR within the app and lock it at 30 fps.
First time I start a fly, it’s all bubbly and around half framerate.
Out of VR, into VR, problem solved.
40 fps almost constant.
However, I’ve set a cap of 35 fps in RivaTuner and I’m getting the same smoothness with less heat and fan noise from my gpu, Asus Strix 3080TI OC.
Try it.

IF YOU ARE SURE YOUR SYSTEM IS UNDERPERFORMING, CANNOT GET MR TO WORK, OR CAN’T GET IT TO WORK CONSISTENTLY

I want to make a video of this approach (I need a lot of time for that). It’s worked miracles for me. Compared to most of you, my system is underpowered. Yet I get an incredible experience and it’s absolutely butter smooth.

But it didn’t take only research and number crunching, it took a strategy and a plan.

Here’s my “underpowered” system:

  • AMD R7 3700X
    Passmark’s single-threaded score is 2680. An I9 12th gen is 3955.

  • 32G 2133 DDR4

  • Aorus RTX 3060ti 8G DDR6

Yes, butter-smooth, with that.

I don’t have time to go “deep” today but, believe it or not, this is a TL/DR:

Disclaimer: This isn’t even close to technically correct. It’s a teaching explanation, designed to help a person understand the concept being presented. Pedantic attempts to dissect the math or correct technical points will be ignored.

  1. Understand the relationship between the headset frame rate and the card’s fps rate, and how one needing to wait for the other can kill performance even if both are doing a decent job.
  • Your headset is running at 90fps (okay, that part is technically accurate and is key to this whole thing). This means every 11 milliseconds a frame starts. If you’re getting 35 fps from your system, then your system is starting a new frame every 28.5ms.

  • The problem is that both start together, but their mismatched timing is going to cause big problems.

  • Your headset completes two frames in 22ms, while the video card hasn’t given it anything. Then, at 28.5ms, the video card says “I’ve got a frame ready for you”.

  • The headset says “Oh, NOW you’re ready… well I’m not. I’m in the middle of something here, so you’ll have to wait.”

  • Best case scenario, the video card starts working on the next frame at 28.6ms. Worst case, it waits until after it delivers the current frame and won’t start working on the next one until 33.1ms. Either way, the currently ready frame is sitting there, waiting…

  • Finally, after the frame sits there and waits 4.5ms doing nothing, it finally gets passed to the headset.

Next frame, same wait. And the next. And the next… this is cumulative, and it can really wreck your performance.

I’m not sure if the video card has to wait until delivering the first frame before starting work on the second, but that would be crushing, and the better your card, the more that could hurt.

Consider this… if your system outputs a frame every 12ms, then it’s constantly missing the window by 1ms and sits there for 10ms, just waiting. Now, even though your system is capable of 12ms per frame, your actual throughput is 22… that’s like an 80%(ish) hit in fps!!

Do I have your attention yet?

Is it really that bad? Probably not. I’m sure this isn’t even close to being technically correct but it’s not meant to be. It’s meant to help you understand the general concept that having the CPU and GPU rates mismatched is going to kill your performance, and it might even get worse as your gear gets better.

So what do we do about it?

  1. Understand how MR is supposed to help this issue.
  • The idea of MR is simple. Have the video card always output 90fps, even if a frame isn’t ready, and this helps make things look smooth. I imagine it’s designed to be coordinated with frame limiting, but I haven’t seen that explicitly stated anywhere.

  • Here’s the key to it all. If your system is putting out frames at a rate that evenly divides into 90 then the headset is always ready to start a frame just as the system delivers it, with no waiting. But…

  • Wouldn’t that mean I could get the same effect by just limiting frames to 30 or 45? Nope… because your headset still looks smoother with frames being rendered between. I’m not sure why, perhaps MR is using the system frames like keyframes and then rendering the tweens to make transitions between keyframes looks smooth? Maybe not… but all I do know is it definitely makes things look a lot smoother IF your system isn’t choking when you turn it on.

“But Scott, why would my system choke if MR is good?”

I thought you’d never ask…

  • Look, nothing is free. MR needs computing power, and it comes from the CPU. This leads us to why so many people mistakenly think MR sucks, and why results are inconsistent between systems or even aircraft and airports.
  1. Realize most people max their settings, leave frame rate limiting either off or higher than their actual fps, then turn MR on and say “it sucks”. (Hint, they’re doing it wrong… I was doing it wrong, too.)
  • Scenario:
    You max out your settings and are squeezing every fame out of your system.
    You leave limiting off because you’re trying to max things out.
    Your turn on MR and get a slideshow, and black patches on the sides if you turn your head.
    You say, “MR SUCKS!”, turn it off and never try again.

Sound familiar?

  • Rember, MR needs a little power from the CPU for it to work. Did you leave any room for it?

No, you didn’t. You ate every cycle with your settings and then expected MR to do its thing for free, without any resources.

Derp.

  • "But how is MR supposed to make things better if I have to back settings down to leave CPU cycles for it to work with??"

You don’t back your settings down, you limit the frame rate. That leaves CPU cycles free for MR to use.

Math… here is the goal: 90 % [your frame rate] = 0

For non-programmers that means 90 divided by [your frame rate] needs to have a remainder of 0… nothing left over. This means your frame rate needs to be 45 or 30, in practical terms. Technically 22.5 and 37.5 would work, but the value you set in the Nvidia control panel has to be a whole number, so forget about those.

Now your settings are still maxed AND you have CPU cycles left over that MR can use to work its magic!

  1. Examine what settings affect the CPU or GPU, and tweak them independently depending on your system strengths.
  1. What to do:
  • Set the Nvidia frame limiter to OFF.

  • Use the fps meter in OpenXR, NOT the one in the developer tools!!! That one eats a lot more resources than the OpenXR one and will skew your results, badly. I don’t care if it tells you CPU/GPU bound, you can’t trust that anyway due to reasons discussed near the top of this thread.

  • Go to the busiest airport you frequent (if you don’t fly out of JFK then don’t go there). Use the most complex plane you normally fly. If you normally fly GA, don’t do this with the 320. Grab your Kodiak, 310R, or whatever.

  • Play with your settings until you get the best visuals you can, while still maintaining at least 35fps.

  • Go back to the Nvidia control panel and set the frame limiting to 30, then turn MR on. You should be in great shape.

If you later get bad stutters and empty patches at the sides when you turn your head it means that something changed (aircraft/scenery/clouds) and your system can’t hit 30fps anymore. That stuttering and blank on the sides means MR doesn’t have enough CPU to work with. I’ve found that the easiest fixes are to hit Cntl+Tab to get out of VR, close the WMR portal, turn off MR in OpenXR tools and then restart the WMR portal. When I did this, I found I was getting 28-29 fps… Just low enough to cause MR to have nothing to work with, and result in the super-stutters and tearing. Another thing that really helped was that I backed scaling down from 85 to 75 when this happened, and got 44-45 even after maxing out all the settings I care about (except scaling, of course). This allowed me to re-enable MR, and things are butter-smooth again.

  • Turn the fps meter off.

ONE MORE THING

Close MSFS because before you fly, there is a right and wrong way to set up your WMR and it could be really important.

  • Have you ever tried to use inside-out tracking next to a Christmas tree with the lights on? Oh, come on… we’ve all done it at least once. Now, are you flying the sim in front of your monitor? You know, the one with the constantly changing screen right in front of your VR headset cameras used for tracking?

Derp #2

Don’t worry this is easy.

  1. First, before you start anything, hit the windows key and type “Head”, then hit enter. In the headset settings, go to Environment and clear the environment data. Do this every single time you fly!

  2. Open WMR. Open the set boundary setting and tell it you want the one without a border. It will ask you to confirm, hit yes.

  3. Hover the mouse over the center button but do not click it! You just want it to highlight.

  4. Turn your monitor off!

  5. Put your headset on, look straight ahead and hit the enter key on your keyboard.

  6. Turn your monitor on and then start MSFS, and whatever other things you might need such as a flight recorder or economy addon.

  7. When you get to the welcome menu:

  • Turn the monitor off
  • Hit Cntl+Tab
  • Put your headset on
  • Now marvel as you look straight down at 1000 feet and see butter-smooth buildings and trees glide by!

Happy flying!

4 Likes

What is the correct approach to MR FPS locking?

Is it enough to lock to 30 FPS in the Open XR Toolkit, or should you leave that unlocked and cap the Frame Rate - so that MR can then automatically lock to 22.5 or 30 FPS?

@mbucchia’s post on the App CPU/GPU numbers was hugely elightening for me. So are there basically two target numbers - if I am aiming for the more practical MR at 30 FPS, I basically need to get the CPU/GPU numbers to below 30ms?

I observe exactly what he says - the GPU number is the bigger for me with medium/high settings, though the CPU can get close to the GPU at times.

Not super clear as to why the CPU number goes up when the GPU load is reduced when MR is enabled - things are still locked at 30 FPS, so what is the extra that the CPU is doing?

I have to get quite low with the Toolkit FRS res though - 70-85% for a consistent-ish 30 FPS with MR.

Still ~ish though - so why does it still drop occasionally?