Nvidia Image Scaling NIS and VR

Hi - I suspect some of the confusion with the cntrl + f1 is because sometimes the first time the control key is pressed during a flight, it alone toggles the mode without the F1 key needing to be pressed. After that, both control and F1 need to be pressed

I would love to find a better key combo. Reminder: I don’t actually play this game lol. Can someone suggest a combination of keys that is unused and easily doable while wearing the headset? Thanks!!

CTRL + F1 is just fine. I did disable all the keyboard bindings for CTRL, F1 and combinations that had either CTRL, F1 of both. No problems whatsoever.

Yeah maybe I got confused and pressed it once before, there is no indication weather you’re using Bilinear or NIS once you press it (that I know of), but yes after trying again text does seem to be crispier at the initial load, hence defaulting to NIS, more time playing around with it is needed :slight_smile:

I would be certainly great if I added a visual indicator, but it’s super low on my todo list!

New thread is here.

OpenXR NIS upscaling software - Release thread

Along with the Beta version.


That’s awesome for you, unfortunately for me, with the current beta when I do oxr100/TAa80 with 80/30 NIS, image quality is much worse than same settings without NIS. Everything is mure more jaggy, shimmery etc. How can this be?

I’ll post a FPS comparison of ALPHA3/4 and BETA1 in the new thread in a couple of minutes. Sorry to hear that you have no good experience. How powerful is your rig?

8700k @4.8ghz, rtx 3080, G2

I will do some more experimenting tomrrow. But so far I either gain FPS and lose image quality or lose FPS and lose image quality, respectively compared to having NIS off.

I mean sure the sharpening is nice, but everything gets more aliased/jagged shimmery (especially scenery)

What’s the purpose of your comparison? Shouldn’t we all be using the newest beta?

To test if performance is similar. I’ll upload another comparison between the newest NVIDIA driver (497.29) and the predecessor (497.09) and the outcome is here that I’ll definitely stick to the old one for now.

We should - if the performance is (near to) equal or better.


Just to be sure: If I use this nifty tool, there is no way to activate the “world scale” tool that can be found in SteamVR (to make the perceived size of the cockpit bigger and closer to its actual size) or an equivalent alternative, right?

It shouldn’t matter. Are you saying that it doesn’t work?

Sorry, as a relative VR newbie I find all this quite confusing, between settings in Windows Reality Portal, SeamVR for WMR, OpenXR Developer Tools, OpenXR NIS Scaler… I’m lost! My understanding was that to use the settings under SteamVR (such as World Scale), I needed to set SteamVR as OpenXR runtime. And that doing so meant that your great tool would not work as it required WMR as runtime. That being said, for reasons that I cannot understand the render resolution at 100% in SteamVR is for some reason way lower than it should be leading to way worse graphics, so I have to stick to OpenXR Deeloper Tools.

As I was saying… I am very confused :wink:

Look what else you can do with NIS

This is my 4k TV used as a monitor and with 2D NIS then upscaled to VR. Looks even better in VR. Thanks man, this is awesome!

You should try 457.30 - it’s the smoothest in VR

What exactly are you doing there? What do you mean by “2D and 3D NIS”?

NIS is Nvidia Image Scaling. What it does is it takes the original image pre-process and reduces the resolution which frees up the CPU and GPU and then post process uses upscaling to bring the image back to it’s original state. This gives you tons of headroom to increase settings and get a better smoother image than before. If you have a 4k monitor you can also use NIS on it for the best image I have ever seen (hence 2d + 3d for VR) . I use my TV as a monitor and it almost looks 3d now. Just google NIS for more info. If you use NIS with a 1080 image the increase is less than doing it with a 4k image. Must be the garbage in garbage out thing. I suggest using the 496.76 driver instead of the latest for less shimmering.

Doesn’t have NIS, you need 496.76 or higher.

Well if you roll back it’s still says image scaling in Nvidea for some strange reason but that is turned off the NIS tool works from Matt Bucchia

@Kingofclubs4680 and @Pilotpete123

Let me clarify the story of NIS and driver support.

First let’s clarify GPU support

NIS is simply a graphics shader - this means a program that runs on the GPU and performs operations on every pixels of an input image, to produce an output image. Think of it as graphic shader = GPU program.

Graphics shaders have become a pretty generic thing now, almost like traditional applications: any processor (here GPU) with the right capabilities can execute them.

So remember how there used to be things like “some CPU don’t supports SSE, and hence cannot run SSE optimized applications”? Well that is also true for GPUs now, except the “thing” that indicates compatibility is called the “Shader Model”.

So as long as your GPU supports a Shader Model that is sufficient to run the NIS shader (program), then your GPU is capable of doing NIS.

From the NIS doc itself:

So here it is Shader Model 5.0 is the requirement. And this version has been standard since pretty much DirectX 11.

So for short, as long as your GPU – OF ANY BRAND – is compatible DX11, then it can perform NIS.

Now let’s talk about Driver support

The GPU driver is NOT really involved in NIS. I mean yes the GPU driver eventually allows the execution of our NIS graphics shader, just like it enables any other kind of shaders implemented by the game itself (eg: TAA, motion blur, and other visual techniques).

So what is this NIS option in the GPU driver, and why is it only on recent NVIDIA drivers?

There are 2 traditional ways of performing NIS:

  • One way requires the application to invoke the NIS graphics shader itself, meaning the application is NIS-enabled. This does not involve the NIS feature of the GPU driver at all.
  • Another way is to enable all applications including the ones that are not NIS-enabled to still run the NIS graphics shader just before the display. This is what the NIS feature in the GPU driver does.

The problems with the GPU driver approach are:

  • It’s only supported for NVIDIA drivers, since it’s their technology. But don’t get it wrong, in theory ANY GPU driver could implement the addition of the NIS graphics shader.
  • It only works for contents displayed on computer monitors - because this is where the driver inserts the execution of NIS. It does not work for VR.

The software that I developed (called “application layer”) is a hybrid of both approaches: it is implemented on the “application side”, technically sitting between the application (eg: FS2020) and the OS, and it functions just like the GPU driver option, meaning that with applications that do not support NIS themselves, the NIS OpenXR software will invoke the NIS graphics shader just before handing off the images to OpenXR, which then sends those images to the headset display.

Anyway, a picture is worth 1,000 words, showing the various ways of making NIS:

I hope it clarifies things.

PS: The reason I put “quality is inferior” for the GPU driver and application layer approach is because the games does not know that NIS is happening, meaning that some things done by the game might violate the best practices of NIS, hence resulting in lower visual quality than when the games does NIS itself in the best possible conditions.