Add support for AMD FidelityFX Super Resolution (FSR)

The rendering overhead seems to be fairly low when comparing FSRs internal resolution to it’s native counterpart. Hardware Unboxed had it benchmarked on 8 GPUs, from RX570 to RX6800XT and GTX1070Ti to RTX3080, with FSR from 1080p performance mode to 4K ultra quality and native.

Link to that section here; AMD FidelityFX Super Resolution Analysis, Should Nvidia be Worried? - YouTube

And in image form from TechPowerUp

but it is fine tuned for AMD hardware first and foremost

The improvements look to be pretty equal across the board for both brands, so I don’t really know what “fine tuning” there really is to do. FSR is losing 10% overhead at most when comparing 4K @ quality FSR (1440p internal) to 1440p native, with AMD is ‘losing’ more percentage wise than Nvidia if anything. Slower cards like the RX570 see the smallest improvements.

Gamers Nexus benchmarked it on the 5700G APU (ZEN3+RDNA2 chip) and it still made significant gains, however it did have a 15% overhead. Sounds like the overhead is directly related to total performance (surprise surprise).

All things considered, it seems super easy to implement and we’d all love Asobo to add it to the sim. It will give a lot of people the extra performance bump to push for higher resolutions - and more performance overall if they can use CPU cores more efficiently.

Still need to push it up for the Dev Q&A so they’d at the very least acknowledge it’s existence :wink:
Go vote if you haven’t yet! Is support for AMD new FSR technology planned ?

4 Likes

The temporal upscaling that is already built into the game would be leaps better than AMD FSR which only analyzes single frames.

I encourage everyone to read DF’s analysis (their YT video goes into in even more detail). If you think DF have bias against AMD you haven’t read and watched enough of DF, they analysis are know for incredible detail and objectivity.

2 Likes

They used to claim that DLSS 1.0 looked close to or better than native rendering. They are also generally quite biased towards TAA and other temporal methods.

The current in-game TAAU is fairly good but quite buggy, and I’ve seen a lot better in other games. FSR complements existing anti-aliasing solutions, it does not come with its own. Considering how easy it is to implement, I see no reason why they should not.

2 Likes

The fact that DF manually edits the game files to enable a hidden TAAU, breaking the rest of the rendering pipeline and claiming TAAU looks sharper because the DoF (a character blur filter in Kingshunt’s case) process no longer works, makes their argument come crashing down. They’ve also paid zero attention to FSRs main focus, being performance gain vs quality loss.

would be leaps better than AMD FSR which only analyzes single frames

One of FSRs strong points is precisely that; it doesn’t need TAA(U) or multiple samples. It has zero ghosting, resampling or smearing as a result of that. Like ChaoticSplendid said, the current in-sim TAAU is good in some ways, like static images, but bad in others, like a single lightning flash (or strobe lights, moving shadows, etc). Those completely destroy it’s quality and it’ll have to resample from scratch to get back to it’s details again.

The current TAA also removes most small, moving details like raindrops outside and on the plane’s windows, so in that case it even loses image quality.

3 Likes

I looked into the anti-aliasing techniques, and realised the TAA technique is what is causing effects like these, which have been bothering me for a some time now:
Imgur
(Behind the tail and APU you can see stripes from where the tail was a frame ago. Most noticeable on multiplayer traffic going fast, zoomed in with the drone camera)

From a quick test in EDDF with all three AA techniques, only TAA showed these effects.
I’m not advanced enough with the techniques used here, and I do not know if this is a bug or a result of the technology used.

Curious as to how this would affect the TAAU technology earlier mentioned in this thread, and I suspect that FSR would not suffer from this as it is on a single-frame basis?

2 Likes

I agree and it is even unbearable in VR regarding road traffic (see videos):
[BUG/FEATURE] TAA is transforming road traffic into ghosts (self-cancelling moving pixels) - #3 by CptLucky8

However if I understand this correctly, FSR is a post-process scaling technique post TAA. If this is the case, any TAA artifacts won’t magically disappear with FSR either and could be exemplified instead.

3 Likes

Correct, FSR is a post-AA effect but comes before all other post-process effects like chromatic aberration, film noise etc. TAA’s artifacts would indeed be amplified by it, but it’s not required for FSR to function. In theory any AA or none at all will work just fine, although the better the AA is and the cleaner the ‘pre-FSR’ image is, the better the final result will be.

1 Like

Indeed, FSR is probably not going to fix the artifacts and some of the temporal instability caused by the standard TAA, but what I’m thinking is that it could eliminate the extra artifacts caused by the TAAU, since it will be upscaling an anti-aliased image rather than upsampling it.

My biggest annoyances with the TAAU is that it does not do anything for glass displays (especially at 1080p, anything below 100% render scale causes them to look totally unreadable), and switching between views is really jarring. After one or two frames, it seems to be collecting information from older frames which distort the image rather visibly, and it doesn’t go away until the camera starts panning.

Of course, if they update the TAAU solution in the future to reduce the impact of those issues that would be very good, but until then, they could easily implement FSR to potentially eliminate them. Also, even though there is definitely an overhead with FSR, there is actually a pretty big one with the current TAAU as well, so performance would likely remain the same.

Also to add to this request, someone demonstrated Dota 2 with FSR on a GTX 650, which is the nearly decade-old Kepler architecture. The potential FSR userbase looks to be huge.

1 Like

So, I just played around with FSR in the free demos for Kingshunt and Riftbreaker, and found something interesting for the higher end of GPUs - possibly VR simmers. You can use a virtual resolution higher than your display’s resolution (5120x2880 (5k) for a 3840x2160 (4k) monitor in my case) and use FSR to render that virtual resolution at something lower. I don’t think this applies for render scale, only for the selected in-game resolution. 5k at FSRs lowest setting would be 1440p internally, or what the ‘quality’ setting would be for 4k.

As it turns out, the final image for 5k has less noise and edges are a little cleaner than the 4k image, with identical framerates (100 vs 101 fps). I’m not exactly sure how the scaling algorithm works, but it somehow works better at cleaning up artifacting on the 5k image, while both started at the same base resolution.

So then I tried 5k with FSR on ‘quality’, giving it an internal resolution of 3414x1920 - Not quite 4k, but close. This resulted in an almost supersampled looking image when displayed on a 4k monitor, smoothed edges while maintaining fine details. This could be set up as a TAA alternative or almost-supersampled image without performance loss, if your GPU is good enough to comfortably run high resolutions already. It runs about the same as native 4k while looking a bit cleaner.

The strangest part is, 4k @ Ultra quality (which in itself is almost like native) looks identical to 5k @ performance, while the latter starts at a lower base resolution - and we’re talking extreme pixel peeping to spot even the slightest differences. It’s definitely noticeable that the 5k image runs better though.

I’ll probably stick with the 5k virtual resolution and combining it with FSRs Performance mode if it becomes available. The implementation can vary from game to game, but it seems to get better already by just tinkering with it!

3 Likes

this looks like it is working good!

It would be great you’d share some screenshots too, because I think this could help to “see” the differences you’re describing and probably give a better understanding of all this?!

1 Like

That was the plan! It became a bit of a picture dump to compare it back-to-back, but here goes. The forum’s compression likely makes it even harder to spot differences, it’s difficult as it is already. I’ll upload the pictures somewhere else if need be.

Tested resolutions/settings, both ‘pairs’ run roughly the same:
4K Native - 3840x2160
5K Quality - 3414x1920 internal

4K Quality - 2560x1440 internal
5K Performance - 2560x1440 internal

Note: Riftbreaker uses a forced TXAA

Riftbreaker Set 1 - 300% zoom

4K native

5K Quality

4K Quality

5K Performance

Riftbreaker Set 2 - 150% zoom

4K Native

5K Quality

4K Quality

5K Performance

Kingshunt AA was set to low for these comparisons - looks like it’s turned off or is a very mild FXAA

Kingshunt Set 1 - 200% zoom

4K Native

5K Quality

4K Quality

5K Performance

Kingshunt Set 2 - 200% zoom

4K Native

5K Quality

4K Quality

5K Performance

3 Likes

Left: 99,9% resolution scale with typical upscaling
Right: 99,9% resolution scale with FSR

1 Like

Not sure if this is even possible. As far as i understand it… MSFS is based on TAA- Temporal AntiAliasing(DLSS is based on that approach); FSR isn’t, in fact it is quite the opposite approach… could be difficult if that is a factor?!
In this early stage of development it’s hard to say if we are getting it, if the quality doesn’t get a hit, i would hope so… if it’s possible pretty sure that will take a while.
The built-in resolution scaling isn’t the solution for sure, imo settings below 100% are really hurting the picture quality, yet settings above 100 are improving the picture quality… but that isn’t the topic of this thread. :blue_heart:

1 Like

FSR is almost the polar opposite of a DLSS implementation like you say, however I don’t think that part is what would make it more difficult. MSFS technically has 4 AA options; FXAA, DLAA, TAA (render resolution at or over 100%) and TAA Upscaling (render resolution below 100%).

As far as I know, DLSS would replace or ‘take over’ a TAA Upscaling method, so you automatically inherit many of it’s temporal flaws (becoming blurry in motion, ghosting - though I believe DLSS 2.2 fixes many of those issues).
On the other hand, FSR renders the frame that the anti-alias process puts out (or skips over). It relies only the image it’s been given, so you could use any of the AA methods that are available.

The most difficult part of getting FSR to work well here is what we use TAA for currently. The sim relies on dithering, which TAA ‘blurs’ into a cleaner looking shadow, tree, reflection, cloud etc. Correct me if I’m wrong, but i believe DX12 would be able to do the same without needing TAA - which would be great news for FSR. Ideally, FSR would use a non-TAA solution to stop ghosting/artifacting from being amplified and keep images as clean and sharp as possible in motion.

While I have no knowledge on how the engine currently processes avionics, it seems they are rendered after the AA process; TAAU upscales everything around them, but the avionics themselves are still pixely. That’s one of the reasons why lowering render resolutions doesn’t really work. Since FSR comes after the AA process it might affect those, it might not. It depends on where in the process the avionics are rendered. It would be great if the avionics are rendered at the native resolution so they’re always as sharp as possible, and neither the AA or FSR has to touch them.

I’m keeping my fingers crossed for (very) good news with today’s Sim Update Q&A - starts at 17:30 UTC on the official Twitch stream. I know I’ll be there!

3 Likes

I don’t believe I have a solve for your question, but related to it, here is a topic about EFIS rendering in VR you might want to check out to see if you agree with:

[BUG/FEATURE] EFIS Screens Problems and Solutions for higher legibility - Virtual Reality (VR) / VR Wishlist - Microsoft Flight Simulator Forums

FSR does not come with an anti-aliasing solution of its own, so it just upscales an anti-aliased image provided by the game’s engine. In this case, it would upscale an image with TAA applied, which should help avoid some of the major artifacts caused by the current TAAU implementation.

The newest Xbox trailer shows reflections looking pixelated rather than grainy which could mean they’re not using dithering anymore, more in line with most other games using screen-space reflections no matter the DirectX version. But maybe this wasn’t possible with temporal reflections before.

1 Like

Oh, i am UTC +2, so lucky me it starts in an hour. Thank you for your thoughts! :blue_heart:

1 Like

Our question was answered! Sort of…: Twitch stream segment

At this point in time the dev team considers their TAAU implementation ‘good enough’ (agree to disagree on that one :wink: ) and didn’t give them the performance numbers they were looking for compared to the other optimization work they’ve done over the last few months. BUT they are still looking into it and might implement it in the future, so fingers crossed still!

1 Like

At least now we know they are not just implementing a simple TAA upscale but something more like a TAAU (effectively doing a true super-res by aggregating multiple frames at a subpixel precision).

Although they didn’t find FSR any better perf wise, I’m wondering about visuals because one thing for sure is that using TAA render scaling for up scaling the image in VR is working good only if you’re outputting an eye view which is larger than the VR panel, which means:

LOWER RES RENDER (game) → TAA → HIGHER RES VIEW → VR Compositor → Super Sampling → PANEL RES IMAGE

TAA(U) as it is implemented is also strongly blurring any EFIS drawing, and this where FSR and it edge preserving algorithm could be doing better than FS2020 TAA in VR, maybe?!

I’m not sure how they can be satisfied with the current TAAU implementation, even in the downscaled videos they previewed in today’s Q&A the shimmering in the trees was awful. 40% is a bit extreme even for 4K, but I bet a native 1536x864 image with standard TAA wouldn’t suffer that much.

Also the fact that they called FSR an upsampling technique shows that they haven’t really looked into it yet. They probably don’t know that it’s extremely easy and quick to implement either, which would make it a no-brainer.

The actual problem seems to be that none of the AA methods seem to be working on the glass displays, which is likely not a problem at native resolution anyway.

50% resolution scale, TAAU:

50% resolution scale, no AA:

If they could somehow have glass displays render at the resolution of the final output at all times it would be a massive improvement to usability.

3 Likes