Jump to content

OpenXR motion reprojection was holding me back from achieving 90fps in VR! (Is SteamVR better for reprojection?)


Recommended Posts

Posted

Hi,

Before continuing I need to state: I'm fully aware that OpenXR will halve my frame rate if it drops below 90fps to lock on at 45fps. (So if DCS is hitting 85fps, I fully expect motion reprojection to downgrade to 45fps while on, and 85fps if it's off - I'm fine with that). However this post is not about performance increase from 45 to 90, but rather staying above 90 far more frequently vs dropping below 90 (whether that be 80fps with MR off, or 45 on).

So,  first up - am I right? (That if the GPU can hit 90fps, shouldn't it remain at 90fps and only drop to 45fps when needed)? If so - something is very strange. 

I noticed now that turning MR off has me running at a solid 90FPS, (with another 30-50% overhead available according to the OpenXR toolkit display in the VR window). As soon as I turned MR on... I drop to 45fps for the majority of the time and only hit 90fps occasionally.  :confused:

Have I been running DCS at 45fps for a year when I haven't needed to?!!? :shocking: :cry:

Even more confusing, while trying to search the internet to confirm my findings, I'm seeing suggestions that SteamVR is better to use now, and it has asynchronous motion reprojection (meaning that if you drop below 90fps to say 85fps - it will only use motion reprojection for 5 frames to get you back up to 90, so less ghosting, and more use of your GPU, as opposed to Open XR where it cuts the GPU and your frames to half and uses motion reprojection for every second frame).

Because I switched from SteamVR to OpenXR quite some time back, and found OpenXR far better than SteamVR, right down to 30fps, I have never looked back to SteamVR. Now I'm wondering, is anyone able to confirm if this has now changed? Is OpenXR (with Motion Reprojection on) now the 'runner up' to SteamVR with MR on? Has anyone switched from OpenXR to steam and noticed an improvement?  Is OpenXR moton reprojection now inferior to Steam? And why would OpenXR MR be forcing me below 90fps so often with it turned on, when I hit 90fps and have 30-50% overhead available when it's off?

Posted

MR can be confusing. With MR on, you should always be running at 90 fps. If you cannot run natively at 90 fps, MR will generate say filler frames in between so that your eyes will always see 90 fps, even though the fps counter says 45. I would not worry too much about what the counter says, what counts is how it looks to you.

The issue with MR in certain games is that the ‘fillers’ are noticeable and it looks ‘choppy’ or with micro pauses. That is usually not an issue with DCS.

Posted (edited)
3 hours ago, PawlaczGMD said:

How do you turn MR off in OpenXR?

I used the open XR VR toolkit and hit Shift+CTRL+F2 in DCS to bring up the toolkit menu in game. Navigated to the tab that contains motion reprojection, and turned it off. Here's an example of what I see in VR (which I flogged off the internet, but is basically the same thing).

OXRToolKitMenu.jpg

1 hour ago, Joch1955 said:

MR can be confusing. With MR on, you should always be running at 90 fps. If you cannot run natively at 90 fps, MR will generate say filler frames in between so that your eyes will always see 90 fps, even though the fps counter says 45. I would not worry too much about what the counter says, what counts is how it looks to you.

Thanks for your reply, but you're referring to a different issue with MR to what I am in my OP. When I'm talking FPS, I'm talking about DCS generated FPS. (That's what the counter refers to in Open XR VR Toolkit). DCS generates 90FPS easy with MR turned off (with 30-50% overhead available - the GPU isn't working flat out). But DCS can only generate 90FPS on the odd occasion when I enable MR. Mostly it drops below 90FPS causing MR to kick in, dropping DCS to 45FPS and then it reprojects the other 45 frames. I thought this should only occur during the times when DCS is incapable of producing 90FPS.

Edited by Dangerzone
Added screenshot for clarification.
Posted
7 hours ago, Phantom711 said:

@Dangerzone

I am curious. Where would you be able to see, how much more your GPU would be able to handle (in %)?

Besides…are you sure, that this is what the term (overhead) means in that regard?

Within the toolkit, you can choose to display stats in the VR window. This is one of the stats that display. While I'm not 100% sure that's what overhead means, it appears from my GPU's sensors that it still has room to move and as I get into more dense areas with higher GPU demands or further away, it appears to change accordingly. 

However I don't want this to distract from the main part of my question/observation/discussion - which is this:

With MR disabled - DCS is reaching 90fps 99% of the time - with no stuttering, frame losses, or performance issues.

With MR enabled - DCS rarely reaches 90fps, (maybe 5% of the time), and MR needs to kick in the majority of the time to fill in the missing frames. 

MR appears to be placing additional overheads on the GPU causing it to drop below 90FPS (and thus then needing MR to be turned on).

I was always under the impression that having MR turned on didn't have any negative effects or make any difference while DCS was able to produce it's target frames, and only kicked in when those frames couldn't be met. Instead, I now discover that it's been holding DCS back from reaching those target frames somehow.

(I hope I'm explaining myself clearly - I'm getting the impression I'm not being clear with what I'm trying to explain). 😟

 

Posted

Yes, motion reprojection has a cost overhead because the computer has to generate those extra synthetic frames and so it means your computer will be less likely to run at native fps because the overhead of motion reprojection that is not allowing your computer run at native fps. Quite the paradox.

I don't know the details, but WMR reprojection seems to be relatively basic compare to Valve or Meta solutions.

Posted (edited)
9 hours ago, average_pilot said:

Yes, motion reprojection has a cost overhead because the computer has to generate those extra synthetic frames and so it means your computer will be less likely to run at native fps because the overhead of motion reprojection that is not allowing your computer run at native fps. Quite the paradox.

I don't know the details, but WMR reprojection seems to be relatively basic compare to Valve or Meta solutions.

Thanks for taking the time to reply. What you're saying makes sense for when MR is required, but I'm wondering why is it kicking in when it's not required. Although now you have wondering if it's a matter of the following occurring:

Without MR:

Frame1-8453 - 90+fps
Frame 8454 - 89fps   << A single frame once in a blue moon, but barely noticeable.
Frame 8455-89923 - 90+fps

 

With MR:

Frame 1-8453 - 90fps
Frame 8454 - 89fps  << MR goes - OK - we need to do motion reprojection now...
Frame 8455-89923 - 45fps << The overhead of MR drags the calculations of DCS's frames below the 90fps trigger, at maybe 85fps or similar, thus keeping MR on near permanently when not required?

 

I've noticed the same thing now with MSFS - With MR enabled - I'm fairly much stuck on 45fps. Without MR enabled, I'm hitting 90fps the majority of the time. (Although not as often as I am in DCS - DCS is better than MSFS for me with performance - go DCS!!! 🙂 )

The only conclusion I can come with so far, is if using MR, it pays after every update (whether it be DCS, NVIDIA Driver, etc) to turn MR off and re-test by flying for a bit to see if performance has improved enough that 90FPS is achievable without it turned on, because you won't know with MR turned on as it has an impact on GPU performance even if it's not needed. 

I'm guessing I was under the incorrect impression that having MR enabled had no negative impact to frames, provided your GPU could maintain 90fps the majority of the time (it would only kick in when GPU couldn't maintain 90fps and only for those few moments). Instead, it seems MR puts some significant overhead on the GPU that will force it below 90FPS when the GPU would otherwise be well and truly capable of remaining above 90FPS for the majority of the time.

Which now has me wondering about Steam - given that Steam have ASynchronous reprojection whether that is a better way of handling it (at least for those who have rigs that are capable of reaching 90fps the majority of the time) if I'm wanting the ability to use MR when it does dip below 90 for those few scenario's.

Edited by Dangerzone
Posted

I'd read somewhere that the Quests are now running most of the ASW reprojection processing within the headset's chip during PCVR gameplay, but still requires some frame info from the PC. I wonder how much load this frame info is on the PC, versus everything be processed on PC?

Posted (edited)

I must admit that Meta is putting a lot of money on VR compared to all the rest and it shows. I've never had any of their products until very recently that I bought a used Quest 2 for my kids who suddenly started asking for one and I'm really impressed with the overall experience.

If you are so close to run at native fps all the time in my opinion is better to forget about motion reprojection. Besides, in my experiece the visual artifacts of reprojection are a big 'VR presence' killer. There is still the eventual hiccup that neither help with VR presence though, but can't be done much about it. Ironically reprojection was initially meant to smooth out those hiccups (because "VR ready" games where expected to run at 90 fps all the time) but then evolved into a sort of full time mode to deal with very performance heavy games like DCS. Not ideal for VR.

 

Edited by average_pilot
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...