OpenXR Toolkit (upscaling, world scale, hand tracking...) - Release thread

Here’s an update from my post yesterday with DX12 using an AMD GPU. @mbucchia taught me that when you are CPU limited that the app GPU value will show 0 instead of an erroneous value. I tried DX11 today and got different behavior. With the same settings as DX12 and very similar metrics (CPU Limited) you can see that DX11 does show a value for app GPU. So I wanted to point out the difference in the behaviors from DX11 and DX12.

I may have found a bug. When using DX12 and trying to enable motion reprojection, I first put it to “on”, then exited VR and reentered VR. Motion reprojection was not on. However when I switched the setting to “off”, then exited and reentered VR, then motion reprojection was “on”. I repeating this 2 times and it consistently happened where motion reprojection wouldn’t enable until I first went to “on” and then “off”. If I went directly to “off” it did not enable. You had to go on first, exit/reenter, then off, and exit/reenter before it was enabled.

Lastly I wanted to mention that when in DX12 and I was trying to find settings to switch from being CPU bound to GPU bound, I went through every setting in the game. I changed them 1 at a time and also many at a time. Nothing switched me to being GPU bound. I even had my framerate up to over 90 FPS at one point but nothing would change me from being CPU bound to GPU bound.

Except I finally found the 1 setting that did switch me. It happened when I capped my framerate using the Toolkit setting on the Performance tab. Uncapped I was getting around 45 fps. I capped it to 44 fps and miraculously my CPU frametime immediately lowered by a lot and I became GPU bound. And I was finally able to get a value for the app GPU reading in DX12. :clap: