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

I can’t overemphasize how important this is. I went down the rabbit hole with Process Lasso a couple months back, and I was having hard crashes. Not CTD’s… straight up PC crash to POST. It took me weeks to figure out what the hell was going on, because I forgot I had set it up and it was running in the background. It can cause wobbles, artifacts, slowness, all the way down to CTDs and hard PC crashes. Do not mess with process affinity.

edit, note to @mbucchia, the crash report I sent you related to FFR crashes with DX12 is still happening, so that is still a problem for me.

3 Likes

There are other ways to skin the cat :slight_smile: A while ago I tried Process Lasso but was suspecting it introduces stutters. Now I use a complicated .bat file to set CPU affinities at launch - but only for 3rd party software so it won’t use the same main cores as MSFS. I also set some affinities to running processes after timed delays, but I don’t touch MSFS and VR-related processes. I set all those to run on the last 4 cores, leaving MSFS and VR to do whatever it wants. I can’t imagine how that would affect any stutters, but I still have some irregular stuttering happening. I can try running without affinities as a test, I guess, but I’m not expecting any improvement, more likely a considerable degrading because the whole point fas to reduce stutters, not increase them.

Just on your last point - I seem to also be getting crashes on DX12 - not sure yet if it’s FFR-related but could well be. Will test turning FFR off and see if the crashes remain. Only seems to be recently but I’m pretty sure I had them with OXRTK 1.2.3

DLSS could be so sharp and crispy in VC like TAA:

Assetto Corsa Competizione with DLSS and its setting called DLSS Sharpening, do it possible. Is it possible to add the DLSS Sharpener setting slider to the Toolkit or in MSFS?.

If you use the development DLL of DLSS, it has an on-screen overlay with hotkeys to change settings. Sharpening is one of them (ctrl-alt-f7 according to the doc). The hotkeys are displayed on screen (but you have to look at the 2D mirror because they are at the very bottom and outside of the view in the headset).

DLSS developer doc is here: DLSS/doc/DLSS_Programming_Guide_Release.pdf at main · NVIDIA/DLSS · GitHub

See “3.16 Current DLSS Settings” on how to enable the overlay.

Development DLL is here: DLSS/lib/Windows_x86_64/dev at main · NVIDIA/DLSS · GitHub

If it looks good after experiments, there is a way to add an option to OpenXR Toolkit to control it.

However, I believe that Toolkit’s CAS (which is done after DLSS upscaling) should be a better option already. But I havent tested myself.

EDIT: per DLSS documentation itself (3.11 Additional Sharpening)

The deep learning model used in DLSS is trained to produce sharp images, however, for those
developers wishing to provide a sharper image, the NVIDIA Image Scaling SDK is now publicly available as part of the DLSS SDK and in the NVIDIA Image Scaling repository in Github. It is highly recommended that developers who use the sharpening filter provide an end-user slider to control the sharpening value. (Please refer to the Image Scaling documentation for more information)
NOTE: The sharpening and softening pass provided in previous versions of the SDK are now
deprecated. All developers are encouraged to use the Image Scaling SDK via the DLSS SDK or
directly on GitHub.

So it looks like the sharpening in question is no more than NIS, which you can do in OpenXR Toolkit already, by setting NIS upscaling to 100% resolution (sharpening only mode).

3 Likes

Once again thank you so much for your work on this , and also to Captain Lucky. For MSFS in my quest 2 the colour and contrast adjustments alone are priceless. Best wishes for your leave of absence and to your family

1 Like

Thanks!, I have to test again with NIS and DLSS in MSFS or those combinations keys. Would be hopeful to try that specific DLSS sharpening algorithm despite its deprecation, just in case if it makes another magic step forward in VR in MSFS. I think I have too a bit more VR resolution in Asseto than in MSFS, and that makes another difference in favor of the better results in Asseto than in MSFS.

In Assetto CC the DLSS sharpening slider in 0 is almost like MSFS in blurriness with the CAS 100 in Toolkit with MSFS, and DLSS Quality in both simulators, and when in Assetto CC the DLSS slider is in 100, the electronic dashboard screen and car mirrors etc. in the car has a more incredible clarity, comparable or maybe better than TAA in MSFS.

(though ¿maybe? still Asseto CC has more crispy the digital dashboard screen in front of you in VR with its DLSS sharpening slider in 0, compared with the FS20 Multifunction screens in the VC, though in Assetto the screen is more near to the face in VR and ¿normal the more apparent clarity than in MSFS?)

¿Maybe the DLSS algorithm in MSFS is not well done like in Asseto CC by NVIDIA or Microsoft?. This make me hopes that the DLSS in MSFS could be much much better like TAA or better in screens, and maybe in the near future is implemented.

There is no manual sharpening setting (dlss custom sharpening or nis or cas or whatever you can think of) that will magically make the game any more crisp. You can easily tell this because almost whatever combination of sharpening you choose it is possible to over-sharp the image. Especially if you have native sharpening enabled in the .cfg file (which i personally recommend to have ON and then add whatever custom sharpening you desire). The clarity you desire will not come from any kind of sharpening. How good DLSS looks primarily depends on how well it is implemented by the devs. Also, i am very sensitive to blurry, jaggy image but running the game on high enough resolution i think it looks extremely well in terms of clarity. Game needs just a little more optimizations so we can smoothly run those resolutions and we’ll be good. I personally on the G2 use override resolution in OXRTKT at cca 3800x3800 with DLSS set to either balanced or quality. I have native sim sharpening enabled in the .cfg file and on top of that i use 150% FSR ingame setting. Also in the toolkit i have NIS enabled, but with 0% sharpening. For me personally that produces a very satisfactory image but i also have FOV lowered by roughly 10% which makes up for even more clarity. Then there’s also disabling the filterings in nvidia CP and set LOD bias to clamp. And that’s that. So in those settings, whatever i add on top of that in terms of sharpening, it will produce an overly sharp image. Which you can tell because it starts to produce distortions in color and certain texture contrast resolution (most noticable on trees).

1 Like

For me yes there are some bit “magic” settings, like CAS in toolkit and DLSS Sharpening in Assetto CC, maybe with more resolution in the HMD they are felt less. It depends in other factors of course too for the “magic” haha. Thanks for the response and the other configs, I have to test them.

Yes, with an override resolution in Toolkit of 3800x3xxx against the default if off of 3152x3xxx, helps, and testing still I prefer CAS over NIS and its sharpener, though with the NIS sharpener I think the screens are more clear though more saw tooth in general for me and my G2 too. I have to test now with the sharpening of the .cfg

Still no signs of Meta providing proper eye tracking support for PCVR users other than social interactions scenarios.

That said after repeated requests, I spent some time adding the necessary code to make their social eye tracking data into something usable for Foveated Rendering.

So a next (minor) version will have that change to enable Foveated Rendering for Quest Pro users. No date ATM, I’m only looking at this stuff an hour or two per week, therefore progress will be slow.

3 Likes

This is an amazing tool, thank you!

I saw that Foveated Rendering is available for RX 6000 GPU’s. Can you look into whether Foveated Rendering could work on RX 7000-series GPU’s? Thanks

It should work on 7000 series already. They just weren’t out at the time of writing the page.

Thanks for the reply.
I tried to enable it, but I get instant CTD when I enter VR now.

Edit: It seems like I can get it to launch in VR without CTD if I make sure to close WMR Portal before entering VR.

How does Turbo mode differ from Low-latency modes Off, On, On + BOOST in the vr menu. Do they conflict?

No idea really. Is there anywhere an explanation of what low-latency modes do in MSFS?

Regrettably not that I can find. Several threads mention that it reduces downclocking of the GPU, but I cannot find one nvidia technical reference to back this up. Nothing at all details on vs. on + boost. Perhaps the SDK makes it clearer but is gibberish to me. It’s really odd - who would not want it on + boost? When, why is never explained. The problem with any search is that it brings up references to the driver setting which may or may not be the same and the driver simply has high and ultra.

Oh did you mean Nvidia Reflex? If so then I really don’t think it would have any interference at all with Turbo Mode. As for the Boost option I think it has to do with power and heat.

1 Like

SU12 beta specifically lists “Fixed Low Latency option not working in VR” - so supposedly up to now it didn’t do anything at all :slight_smile: But apparently it will do something in SU12

1 Like

I saw a tweet on Twitter from Flat2VR today stating you’ve got eye tracking working on the Quest Pro now, there was a gif demonstration of game going from like 51 fps to 90 fps when eye tracking was enabled. Is this legit? Please tell me it is!

Reading now about Reflex and its implementation, I suspect that it will work fine with Turbo Mode while still lowering (some) input latency.

My guess is that when GPU-bound, it will delay when MSFS queries the predicted head pose, which will lower prediction error. That said I’m not sure it’s going to be truly noticeable for head tracking, since VR already relies on input prediction to minimize the perceived latency of head tracking. Same goes for controller tracking. I’m curious to hear though; for people who experienced the “over-sensitivity” (like seeing your heartbeat), does it seem to help?

Where this reflex thing might help is with other stuff like keyboard/mouse/trigger latency. These should now get updated closer to when they need to be used. I’m not sure how important this is for MSFS.

As for Boost, it sounded like it kinda fakes a GPU-bound situation (hence higher power) to force the use of Reflex or to keep it consistent across GPU load fluctuations.

This is based on 15 minutes of reading the Reflex developer documentation, so I could be wrong.

2 Likes