Jump to content

Recommended Posts

Posted (edited)

I have gone down the rabbit hole of DLSS, DSR Factors (nvidia control panel) and settings found in the UserCfg.opt file, so I wanted to share what I have found. For reference, I am running the beta and have a RTX 3080 running 2560 x 1440.

Let's start with the basics. If you run DLSS in MSFS you have a few "Super Resolution" choices.

- Quality
- Balanced
- Performance
- Ultra Performance

There's also Auto, but I didn't test that.

In MSFS if you run Developer mode you can see 3 resolution numbers at the top.

- Screen
- Post
- Render

Here is what I have figured out. 

Screen is the resolution that is shown on your monitor. Post is the resolution the image is processed at before being rendered. And rendered is the result of that processing back to your screen.  Here's an example. 

In my case I had the initial settings when setting DLSS to Quality...

- Screen 2560 x 1440
- Post 2560 x 1440
- Render 1707 x 960

In this case my display was showing an image that was 67% of the original image (1707/2560). Depending on which option you select you get lowering levels of sharpness. 

- Quality 67%
- Balanced 58%
- Performance 50%
- Ultra Performance 33%

In my case DLSS rendered 67% of my native resolution, which ended up not being very sharp. I had to zoom in to see my gauges clearly. So using DLSS out of the box probably isn't going to provide great results unless your resolution is closer to 4k, at which point you probably have some pixels to spare. 

Theoretically DSR Factors is used to sort this issue out. In nVidia CP (NCP) I turned on DSR Factors 2.25. This would in theory get my clarity back. But it does something I didn't really care for.

When I set it in NCP, I had to go into MSFS and change the resolution (in this case to 3840 x 2160). This made the following changes...

- Screen 3840 x 2160
- Post 3840 x 2160
- Render 2560 x 1440

As you can see, due to the Quality DLSS setting I had, the Render was 67% of the Post value. Sounds like a great solution, right? The problem I encountered was that at 3840 resolution I had lots of stutters. And I was running MSFS at 3840 but the rendered image was 2560. Not ideal. 

What if I could keep my screen and render resolution at 2560 (native) but increase the post processing to sharpen up the gauges? This is where SecondaryScaling comes in. In the UserCfg.opt file found in \AppData\Roaming\Microsoft Flight Simulator\ I was able to increase the SecondaryScaling value to increase the Post value, without having to run a higher screen resolution.

Here's the part of the file you need to experiment with... 

Version 66
{Video
    Adapter "NVIDIA GeForce RTX 3080"
    Monitor 0
    Windowed 1
    FullscreenBorderless 1
    WindowActive 0
    Resolution 2560 1411
    FullScreenResolution 2560 1440
    PosX 0
    PosY 29
    AntiAliasing DLSS
    DLSSMode QUALITY
    DLSSG 0
    Reflex ON
FSRMode QUALITY
    PrimaryScaling 1.000000
    SecondaryScaling 1.500000
    SharpenAmount 1.000000
    ReprojectionMode 0
    WorldScalePercentVR 0
    AntiAliasingVR TAA
    DLSSModeVR PERFORMANCE
    DLSSGVR 0
    ReflexVR ON

The SecondaryScaling value is a multiplier of your native resolution. In my case 2560 x 1.5 = 3840. Then I used the DLSS setting (Quality) to determine the Render resolution. In my case 3840 x .667 gets me back to 2560, my native resolution. 

In summary, I wanted to run 2560 x 1440 resolution, but not have DLSS render the final image at a much lower resolution of 1707 x 960, because it really showed in the gauges and elsewhere. This solution allows you to play with the variables of SecondaryScaling and DLSS Super Resolution to get a crisp display while not tanking your FPS or smoothness.

Here's another example...

My screen is 2560 x 1440. If I wanted to increase my Post resolution to say 5,120 I would use a SecondaryScaling of 2.00. But then what do I want to render it at? If I want to get back to a Render resolution of 2560 I would use a DLSS Super Resolution setting of "Performance" in MSFS, since that is 50%. 

Here is my result...

YrMQg71.jpg

 

 

 

Edited by RobJC
  • Like 11

AMD Ryzen 9 7950X3D | RTX 4090 | 96GB DDR5 7200 RAM | 4TB M.2 NVMe SSD | Corsair H150i Liquid Cooled | 4K Dell G3223Q G-Sync | Win11 x64 Pro

Posted
18 minutes ago, RobJC said:

Screen is the resolution that is shown on your monitor. Post is the resolution the image is processed at before being rendered. And rendered is the result of that processing back to your screen.

 

2 minutes ago, Virtual-Chris said:

I don’t understand. There’s the resolution the GPU renders at and there’s your display resolution. What is post and what is secondary scaling?

Post is the resolution the image is processed at before it is rendered. SecondaryScaling determines that Post resolution. 

AMD Ryzen 9 7950X3D | RTX 4090 | 96GB DDR5 7200 RAM | 4TB M.2 NVMe SSD | Corsair H150i Liquid Cooled | 4K Dell G3223Q G-Sync | Win11 x64 Pro

Posted

I’m still not sure what post is. Here’s my understanding of the flow… maybe outline where this post resolution comes into it?

1. The CPU sends data to the GPU to render the frame.

2. The GPU renders the frame at a resolution dictated by your settings. This could be higher than your display resolution for scaling above 100% or lower if using DLSS2 or a scaling setting below 100%.

3. The rendered frame is then scaled (or not) and output to your display. If using DLSS2 it will upscale from render resolution and use ML algorithms to fill in the missing pixels to achieve display resolution. If using normal scaling, it’s just upsampled without adding any data. 

Posted

Screen = actual monitor resolution. 

Render = the resolution the video card renders. The performance increase comes from this stage. 

Post = the final upscaled output to monitor resolution, it is the final post-processing stage. 

 

  • Like 3
Posted

Is this only applicable using SU11?

 

Richard

i7-12700K | Noctua NH-D15S Black Version | MSI Pro Z690 - A | 32 GB DDR4 3600 | Gigabyte Gaming OC 4090 | 1TB WD Blue NMVe (MSFS 2020) | 500 GB WD Black Gen 4 NVMe | 4TB WD Black Conventional | Fractal Design Torrent Case | Seasonic 1000W Gold Plus PSU | Thrustmaster Boeing Yoke | Honeycomb Throttle | Airbus Side Stick | Virpil Rudder Pedals | Sony X90K 55 Inch TV |

mmBbmS1.png

 

Posted (edited)

Ok, well how do you get rid of the frickin' shimmering ? RTX 2080 Super, 522.25 driver

Edited by jymp
  • Like 1
Posted

yes i think so

ROG Crossair Hero X670e , 9900X, TUF 4090 , X4 NVME's. OS  2TB 980 Pro , MSFS  2TB WD Black , Kington Fury 64GB ram ( 6000) Corsair RM1000 PSU, Artic Freezer iii 360 AIO  . Phanteks P600s Case ,TCL QM8B 50" 120 Hz  TV,second 24 inch screen for charts you tube etc, and 11" touch screen for the EFB. Warthog Stick and TCA Captains throttle ( full pack)  Velocity 1 Rudder Pedals , extreme3D for the Tiller,Streamdeck XL x2 / Streamdeck +/Streamdeck mini because i like pressing buttons 

Posted

How much of the purported performance advantage in DLSS is due to the fact that it just renders in a lower resolution? Between that and the seemingly bogus frame interpolation in DLSS 3, it feels like this is just more snake oil, but I also admit that I may be totally wrong. Thanks to @RobJC for being so thorough in his analysis, but I still don't understand why I get the blurries in DLSS while TAA is just fine.

John Wiesenfeld KPBI | FAA PPL/SEL/IFR in a galaxy long ago and far away | VATSIM PILOT P2

i7-11700K, 32 GB DDR4 3.6 GHz, MSI RTX 3070ti, Dell 4K monitor

 

Posted (edited)
2 hours ago, Dazzlercee23 said:

Screen = actual monitor resolution. 

Render = the resolution the video card renders. The performance increase comes from this stage. 

Post = the final upscaled output to monitor resolution, it is the final post-processing stage. 

 

Thanks... that makes sense. The OP makes it sound like this Post resolution is BEFORE DLSS processing though.

Even using your methodology, I'm still having difficulty understanding how this post upscaling can improve image quality.

Let's say your monitor is 2560p. With DLSS2, the GPU renders it at like 1700p, then the DLSS upscales it to 2560p using machine learning to fill the gaps.  Now let's say I then tell it to upscale that to 3840p using this secondary scaling and then the monitor renders that at 2560p.   That last step of upscaling and downscaling would seemingly add nothing. What am I missing?

Edited by Virtual-Chris
Posted (edited)
1 hour ago, RobJC said:

That thread is mostly talking about render scaling.  In that thread, no one really knows what secondary scaling does. One person suggests it affects the rendering of the cockpit textures... "I’m not 100% sure, but I think it has something to do with the resolution scaling in the interior cockpit. I set mine to 0.500000 and tested, my cockpit textures and labels were noticeably worse than at 1.00000"

Then this guy says...

"SecondaryScaling does the same as DSR yet in game (and using in game down sampling).
...
The render resolution is what the environment gets rendered at, polygons, textures etc.
The post process resolution is where sharpen, color grading and TAA get resolved.
DSR allows you to start with a higher screen resolution, gives you more control over down sampling and gets better results when you use NVidea filters."

I gather DSR is like super sampling. 

Are you sure that this secondary scaling is being applied before DLSS scaling?  I think DLSS scaling will be applied on the rendered resolution.  If you can control the scaling in the post processing stage, I think that would be after DLSS has done the upscaling. 

Edited by Virtual-Chris
Posted

The way I understand it... DLSS renders at a lower resolution, that means GPU do less work.  GPU create more frames. 

Quality DLSS setting is 67% and Performance setting is 50% of your monitor's original resolution.  DLSS renders at this lower resolution which is easier on the GPU.  DLSS adds some pixels based on an algorithm, which in turn makes the displayed image look more like 100% resolution.  Cool.  That's DLSS.  67% of your pixels at Quality setting are rendered by the GPU and 33% are added with the algorithm.

There is a gap between 67% and 100%.  If you want to slide an extra setting in there you can hack it by increasing the SecondarySacling.  This is no different then that TAA slider where you can render at 200% (or 2.0 secondary scaling).  If you up your scaling by 50% your base resolution is now higher.  DLSS takes 67% of that new base resolution and does DLSS things.  However, you effectively created a DLSS setting we can call Quality++ which is say 85% of your monitors resolution.  Therefore your avionics are now 18% sharper and you are still rendering 15% less so you get some performance.

You upped the DLSS percentage, thus you are rendering at a higher resolution but adding less DLSS AI pixels.

Posted
2 hours ago, jrw4 said:

How much of the purported performance advantage in DLSS is due to the fact that it just renders in a lower resolution? Between that and the seemingly bogus frame interpolation in DLSS 3, it feels like this is just more snake oil, but I also admit that I may be totally wrong. Thanks to @RobJC for being so thorough in his analysis, but I still don't understand why I get the blurries in DLSS while TAA is just fine.

I think this is the “magic” to DLSS too. It just creates a lower res image, which shows up unless you have 4k. Look at the Post and Render and compare them to TAA. That’s your answer. 

AMD Ryzen 9 7950X3D | RTX 4090 | 96GB DDR5 7200 RAM | 4TB M.2 NVMe SSD | Corsair H150i Liquid Cooled | 4K Dell G3223Q G-Sync | Win11 x64 Pro

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...