Jump to content

OpenXR Toolkit Tuning Guide (updated 21/02/23)


edmuss

Recommended Posts

The upscaler has given me about 15fps more at 150%, when I've tested it.

I don't think you're getting the GPU performance that you should be. Turn off reprojection entirely and see what appgpu frametimes and fps you're getting. Test in a free flight mission so you've not got CPU scripts dragging it down and see what you get. A10C free flight over Caucasus I get around 70 fps with 100% resolution on the G2, high textures, low/flat shadows abs no MSAA.

There are reports of AMD drivers since may last year breaking reprojection, could be that's your issue?

Ryzen7 7800X3D / RTX3080ti / 64GB DDR5 4800 / Varjo Aero / Leap Motion / Kinect Headtracking
TM 28" Warthog Deltasim Hotas / DIY Pendular Rudders / DIY Cyclic Maglock Trimmer / DIY Abris / TM TX 599 evo wheel / TM T3PA pro / DIY 7+1+Sequential Shifter / DIY Handbrake / Cobra Clubman Seat
Shoehorned into a 43" x 43" cupboard.

Link to comment
Share on other sites

Basically: -

appCPU = CPU time taken in ms to render the image

appGPU = GPU time taken in ms to render the image

postCPU = CPU time taken in ms for post processing (sharpening/colours/reprojection/FFR)

postGPU = GPU time taken in ms for post processing (sharpening/colours/reprojection/FFR)

If appGPU is less than appCPU then you are CPU bound and adjusting graphics options will make little difference to performance.

If appGPU is more than appCPU then you are GPU bound and adjusting graphics options will make more difference to performance.

When running without reprojection, postGPU is typically <0.5ms, with reprojection this is typically aroun 3-4ms (for my machine).

Working on the assumption that you are GPU bound (which is where you want to be) adjust your options to achieve the target frametime that you want, this should give the optimum image quality for the given performance.  Everyones VR experience is different so what works for me may not work for you.

When running reprojection your fps will always show as whichever refresh target it's running at (1/2, 1/3, 1/4 of refresh rate) but the appGPU frametimes will give a more accurate indication of performance.  Calculate you fps by using 1000/frametime, therefore 1000/11ms = 90fps, 1000/16ms = 60 fps, 1000/22ms = 45 fps.

When using reprojection you need to, at minimum, achieve the refresh target to keep it enabled, to do so both appGPU and postGPU should be combined and the result compared to the refresh target.  For example if you have 17ms appGPU and 3.5ms postGPU your total GPU frametime is 20.5ms; this is less than the 22ms for a 45Hz refresh target so reprojection will stay enabled.  With openxr toolkit the reprojection is able to step down to the next fraction of the headset refresh rate, this is 30Hz (and subsequently 22Hz) with a 90Hz headset refresh, this does mean that you can actually tune to achieve the 30Hz refresh target and you can wind the settings up.

  • Like 3

Ryzen7 7800X3D / RTX3080ti / 64GB DDR5 4800 / Varjo Aero / Leap Motion / Kinect Headtracking
TM 28" Warthog Deltasim Hotas / DIY Pendular Rudders / DIY Cyclic Maglock Trimmer / DIY Abris / TM TX 599 evo wheel / TM T3PA pro / DIY 7+1+Sequential Shifter / DIY Handbrake / Cobra Clubman Seat
Shoehorned into a 43" x 43" cupboard.

Link to comment
Share on other sites

@edmuss do you know of getting anyway to get the performance data to log to disk ? (accepted that may have some perf impact)

SYSTEM SPECS: Hardware Intel Corei7-12700KF @ 5.1/5.3p & 3.8e GHz, 64Gb RAM, 4090 FE, Dell S2716DG, Virpil T50CM3 Throttle, WinWIng Orion 2 & F-16EX + MFG Crosswinds V2, Varjo Aero
SOFTWARE: Microsoft Windows 11, VoiceAttack & VAICOM PRO

YOUTUBE CHANNEL: @speed-of-heat

1569924735_WildcardsBadgerFAASig.jpg.dbb8c2a337e37c2bfb12855f86d70fd5.jpg

Link to comment
Share on other sites

46 minutes ago, speed-of-heat said:

@edmuss do you know of getting anyway to get the performance data to log to disk ? (accepted that may have some perf impact)

Afraid I don't myself, @mbucchia is this something that is possible? 🙂

  • Thanks 1

Ryzen7 7800X3D / RTX3080ti / 64GB DDR5 4800 / Varjo Aero / Leap Motion / Kinect Headtracking
TM 28" Warthog Deltasim Hotas / DIY Pendular Rudders / DIY Cyclic Maglock Trimmer / DIY Abris / TM TX 599 evo wheel / TM T3PA pro / DIY 7+1+Sequential Shifter / DIY Handbrake / Cobra Clubman Seat
Shoehorned into a 43" x 43" cupboard.

Link to comment
Share on other sites

Because we want to see how badly our overpriced GPUs are working😁

  • Like 1

Ryzen7 7800X3D / RTX3080ti / 64GB DDR5 4800 / Varjo Aero / Leap Motion / Kinect Headtracking
TM 28" Warthog Deltasim Hotas / DIY Pendular Rudders / DIY Cyclic Maglock Trimmer / DIY Abris / TM TX 599 evo wheel / TM T3PA pro / DIY 7+1+Sequential Shifter / DIY Handbrake / Cobra Clubman Seat
Shoehorned into a 43" x 43" cupboard.

Link to comment
Share on other sites

2 hours ago, edmuss said:

Basically: -

appCPU = CPU time taken in ms to render the image

appGPU = GPU time taken in ms to render the image

postCPU = CPU time taken in ms for post processing (sharpening/colours/reprojection/FFR)

postGPU = GPU time taken in ms for post processing (sharpening/colours/reprojection/FFR)

You are mixing up a few things here.

OP asked about OpenXR Toolkit stats, which are explained here: https://mbucchia.github.io/OpenXR-Toolkit/overlay.html

You seem to be relating to the WMR overlay stats. There is no sharpening and colors processing there. Also there is no stat for FFR anywhere, since FFR doesn't really cost anything and is applied during processing (so it's effectively part of app stats). In the WMR overlay, pre/post are statistics of the OpenXR compositor, which in most cases will only include reprojection and some very small overhead for copying textures from a buffer to another, or things like MSAA resolve (that most apps do themselves anyway).


Edited by mbucchia
  • Thanks 1

This account is now inactive and not monitored.

Link to comment
Share on other sites

28 minutes ago, mbucchia said:

No there is no option. Don't get why people are obsessed with it 🙂 at some point y'all have to forget the stats and play the game!!

actually its more to understand the impact of effects in game... so what are the performance impacts of clouds on high vs clouds on ultra  or MSAA or shadows or etc... 

SYSTEM SPECS: Hardware Intel Corei7-12700KF @ 5.1/5.3p & 3.8e GHz, 64Gb RAM, 4090 FE, Dell S2716DG, Virpil T50CM3 Throttle, WinWIng Orion 2 & F-16EX + MFG Crosswinds V2, Varjo Aero
SOFTWARE: Microsoft Windows 11, VoiceAttack & VAICOM PRO

YOUTUBE CHANNEL: @speed-of-heat

1569924735_WildcardsBadgerFAASig.jpg.dbb8c2a337e37c2bfb12855f86d70fd5.jpg

Link to comment
Share on other sites

16 minutes ago, speed-of-heat said:

actually its more to understand the impact of effects in game... so what are the performance impacts of clouds on high vs clouds on ultra  or MSAA or shadows or etc... 

You should be able to tell that by looking at the overlay in real time?

This account is now inactive and not monitored.

Link to comment
Share on other sites

Not so much, as things like shadows change at distance etc... As do lods which effect performance and so on, you actually need to run the game for some time to get a realistic answer, for the impact.

You can get a "feel" for it, but for a more reliable comparison you need some data over time, run against a consistent scenario.


Edited by speed-of-heat
  • Like 1

SYSTEM SPECS: Hardware Intel Corei7-12700KF @ 5.1/5.3p & 3.8e GHz, 64Gb RAM, 4090 FE, Dell S2716DG, Virpil T50CM3 Throttle, WinWIng Orion 2 & F-16EX + MFG Crosswinds V2, Varjo Aero
SOFTWARE: Microsoft Windows 11, VoiceAttack & VAICOM PRO

YOUTUBE CHANNEL: @speed-of-heat

1569924735_WildcardsBadgerFAASig.jpg.dbb8c2a337e37c2bfb12855f86d70fd5.jpg

Link to comment
Share on other sites

1 hour ago, mbucchia said:

You are mixing up a few things here.

OP asked about OpenXR Toolkit stats, which are explained here: https://mbucchia.github.io/OpenXR-Toolkit/overlay.html

You seem to be relating to the WMR overlay stats. There is no sharpening and colors processing there. Also there is no stat for FFR anywhere, since FFR doesn't really cost anything and is applied during processing (so it's effectively part of app stats). In the WMR overlay, pre/post are statistics of the OpenXR compositor, which in most cases will only include reprojection and some very small overhead for copying textures from a buffer to another, or things like MSAA resolve (that most apps do themselves anyway).

 

Thanks for the clarification, you're right about mixing up the wmr/toolkit overlays. Would it be fair to assume that the toolkit overlay would give a more complete number on performance?

Ryzen7 7800X3D / RTX3080ti / 64GB DDR5 4800 / Varjo Aero / Leap Motion / Kinect Headtracking
TM 28" Warthog Deltasim Hotas / DIY Pendular Rudders / DIY Cyclic Maglock Trimmer / DIY Abris / TM TX 599 evo wheel / TM T3PA pro / DIY 7+1+Sequential Shifter / DIY Handbrake / Cobra Clubman Seat
Shoehorned into a 43" x 43" cupboard.

Link to comment
Share on other sites

26 minutes ago, edmuss said:

Thanks for the clarification, you're right about mixing up the wmr/toolkit overlays. Would it be fair to assume that the toolkit overlay would give a more complete number on performance?

Not quite, OpenXR Toolkit overlay only has info on app + OpenXR Toolkit itself. Nothing about the OpenXR runtime (the pre/post in the WMR overlay). There is no capability in OpenXR to query general runtime statistics, hence impossible for the toolkit to include these metrics.

46 minutes ago, speed-of-heat said:

Not so much, as things like shadows change at distance etc... As do lods which effect performance and so on, you actually need to run the game for some time to get a realistic answer, for the impact.

You can get a "feel" for it, but for a more reliable comparison you need some data over time, run against a consistent scenario.

I have to disagree here, unless you are going to run exactly the same mission, assuming there is no randomness in the game (all clouds and objects are always at the same place), and your head always follows the exact same pattern of movement. That seems... unlikely. IMO giving this type of capability is allow people to compare apples to oranges and peaches to bananas. That's why I don't encourage it. The "feel" is all that matters, given that you will never be able to compare apples to apples, unless you use a professional benchmark (because these actually strive to be fully deterministic). Giving the whole CSV file thing is encouraging people to report differences and issues that aren't there.

If you are on WMR, and persist with this idea, you can use the ETL tracing (Troubleshooting for developers · microsoft/OpenXR-MixedReality Wiki (github.com)) and then write an ETL parser that will extract this information. We have such tool internally, but we only use it for scenarios that are deterministic as I described, because otherwise it provides more false information than it provides true information.

Performance & measurement is not a trivial problem that can be summarized to "look at FPS over time".

This account is now inactive and not monitored.

Link to comment
Share on other sites

Actually that’s exactly what I do…  I use a fixed point of view with the helmet stabilised and then re-run the mission recording . I keep the mission simple to reduce the number of random variables etc…

 

in fpsvr I use an average of the cpu and gpu frame times and compare them between the individual changes.


Edited by speed-of-heat

SYSTEM SPECS: Hardware Intel Corei7-12700KF @ 5.1/5.3p & 3.8e GHz, 64Gb RAM, 4090 FE, Dell S2716DG, Virpil T50CM3 Throttle, WinWIng Orion 2 & F-16EX + MFG Crosswinds V2, Varjo Aero
SOFTWARE: Microsoft Windows 11, VoiceAttack & VAICOM PRO

YOUTUBE CHANNEL: @speed-of-heat

1569924735_WildcardsBadgerFAASig.jpg.dbb8c2a337e37c2bfb12855f86d70fd5.jpg

Link to comment
Share on other sites

Working fine at my end? OB 2.7.16.28157.

Ryzen7 7800X3D / RTX3080ti / 64GB DDR5 4800 / Varjo Aero / Leap Motion / Kinect Headtracking
TM 28" Warthog Deltasim Hotas / DIY Pendular Rudders / DIY Cyclic Maglock Trimmer / DIY Abris / TM TX 599 evo wheel / TM T3PA pro / DIY 7+1+Sequential Shifter / DIY Handbrake / Cobra Clubman Seat
Shoehorned into a 43" x 43" cupboard.

Link to comment
Share on other sites

45 minutes ago, icecold951 said:

Open Composite doesn't appear to be working as of the current update.

reboot?

Ryzen 7 5800X3D | 64GB DDR4 3600| MSI RTX 4080 16GB Ventus 3X OC  | Samsung 970 Evo 2TB NVME | HP Reverb G2 | DIY Head Tracker Cap | Logitech X-56 throttle | VKB NXT Premium |  Win 11

"Any sufficiently advanced technology is indistinguishable from magic."

--Arthur C Clark

Link to comment
Share on other sites

9 hours ago, speed-of-heat said:

Actually that’s exactly what I do…  I use a fixed point of view with the helmet stabilised and then re-run the mission recording . I keep the mission simple to reduce the number of random variables etc…

 

in fpsvr I use an average of the cpu and gpu frame times and compare them between the individual changes.

 

You want all this data only to reduce it to a global average that loses an incredible amount of data and its significance... you can average a higher FPS with constant stuttering (because the average literally acts as a low-pass filter). You can average a higher FPS with low dips that make the experience unplayable for several seconds. You can average a higher FPS because the game decided to spawn less entities (non-deterministic AI and game logic).

Higher average FPS does not mean better.

This is exactly what I mean with comparing apples to oranges and why I personally won't make the effort to put this data in everyone's hands. If I do that, I'm going to start receiving "bug" reports here and there because of people misusing the data.

I already get those every time I release new software. Version A was higher FPS than version B... and 95% of the time this is again because of user error, people not able to compare apple to apple or using the relevant input data correctly. 

I've literally had people tell me how there is a huge performance issue between OpenXR Toolkit 1.1.3 and 1.1.4 on their HP Reverb... yet the only change between the two is 1 line of code that is only used with Pimax headset...

These destroy the productivity of us developers, and I have no intention to shoot myself in the foot by offering this data (a loaded gun in the hands of every user) 😀 


Edited by mbucchia
  • Like 2

This account is now inactive and not monitored.

Link to comment
Share on other sites

1 hour ago, mbucchia said:

You want all this data only to reduce it to a global average that loses an incredible amount of data and its significance... you can average a higher FPS with constant stuttering (because the average literally acts as a low-pass filter). You can average a higher FPS with low dips that make the experience unplayable for several seconds. You can average a higher FPS because the game decided to spawn less entities (non-deterministic AI and game logic).

Higher average FPS does not mean better.

This is exactly what I mean with comparing apples to oranges and why I personally won't make the effort to put this data in everyone's hands. If I do that, I'm going to start receiving "bug" reports here and there because of people misusing the data.

I already get those every time I release new software. Version A was higher FPS than version B... and 95% of the time this is again because of user error, people not able to compare apple to apple or using the relevant input data correctly. 

I've literally had people tell me how there is a huge performance issue between OpenXR Toolkit 1.1.3 and 1.1.4 on their HP Reverb... yet the only change between the two is 1 line of code that is only used with Pimax headset...

These destroy the productivity of us developers, and I have no intention to shoot myself in the foot by offering this data (a loaded gun in the hands of every user) 😀 

 

The position is clear and I understand it and your reasoning.


Edited by speed-of-heat

SYSTEM SPECS: Hardware Intel Corei7-12700KF @ 5.1/5.3p & 3.8e GHz, 64Gb RAM, 4090 FE, Dell S2716DG, Virpil T50CM3 Throttle, WinWIng Orion 2 & F-16EX + MFG Crosswinds V2, Varjo Aero
SOFTWARE: Microsoft Windows 11, VoiceAttack & VAICOM PRO

YOUTUBE CHANNEL: @speed-of-heat

1569924735_WildcardsBadgerFAASig.jpg.dbb8c2a337e37c2bfb12855f86d70fd5.jpg

Link to comment
Share on other sites

  • Recently Browsing   0 members

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