AMD FSR Based on Modified Lanczos Upscaler, Can Be Enabled On NVIDIA GPUs Using Control Panel For Similar Results In Games
AMD's FSR has received a positive response across the gaming and tech community for bringing an open-source solution that rivals NVIDIA and is hardware agnostic (in a way). AMD FSR runs on both, NVIDIA GeForce and AMD Radeon GPUs and several developers have shown just how easy it is to implement within games though it looks like people digging through the source code have found out that the tech behind FSR might be a little too similar to something that NVIDIA has offered in its control panel for a while now.
AMD FSR Might Be A Little Too Similar To NVIDIA's Lanczos Upscaler As Revealed Through Source Code, NVIDIA GPUs Have Had Tech Since A While Now & Can Be Enabled In All Games
As discovered by Alexander Battaglia of Digital Foundry, the AMD FSR (FidelityFX Super Resolution) technology is based on the Lanczos upscale, albeit, a modified version of it. The FSR algorithm is actually composed of two main passes, EASU (Edge-Adaptive Spatial Upsampling) and RCAS (Robust Contrast-Adaptive Sharpening). The EASU pass provides spatial only scaling at a relatively low cost & which makes it appropriate for lower-end GPUs on desktops and laptops.
You may want to read the FSR documentation, 2 tap Lanczos is the spatial upscaler. pic.twitter.com/gAEika6zma
— Alexander Battaglia (@Dachsjaeger) August 4, 2021
It is mentioned within the Open Source code and FSR presentation that the EASU scalar uses a modified fast approximation method to the standard Lanczos (size=2) kernel. The modified FSR version of the Lanczos filter also eliminates negative lobes, otherwise known as ringing, by using the nearest 2x2 input texels or 2-tap approximation.
At the heart of FSR is a cutting-edge algorithm that detects and recreates high-resolution edges from the source image. Those high-resolution edges are a critical element required for turning the current frame into a “super resolution” image.FSR provides consistent upscaling quality regardless of whether the frame is in movement, which can provide quality advantages compared to other types of upscalers.
FSR is composed of two main passes:
- An upscaling pass called EASU (Edge-Adaptive Spatial Upsampling) that also performs edge reconstruction. In this pass the input frame is analyzed and the main part of the algorithm detects gradient reversals – essentially looking at how neighboring gradients differ – from a set of input pixels. The intensity of the gradient reversals defines the weights to apply to the reconstructed pixels at display resolution.
- A sharpening pass called RCAS (Robust Contrast-Adaptive Sharpening) that extracts pixel detail in the upscaled image.
Interesting. So it is a Lanczos variant after all. Prior to FSR being released, I had asked AMD about this (it looked Lanczos-y to me), and they said that the upscaling algorithm was "developed entirely in-house". Which doesn't seem to be entirely accurate now...
— Ryan Smith (@RyanSmithAT) August 4, 2021
— VideoCardz.com (@VideoCardz) August 4, 2021
Battaglia further states that this technology has been offered within NVIDIA's Control Panel for a couple of years now. Within the 'Manage 3D Settings' panel, users can enable GPU scaling and also control image sharpening with more taps than FSR for higher quality. This works on older Turing & Pascal GPUs & can be applied globally to all DirectX 9, 10, 11, 12, Vulkan, and OpenGL games.
Now it's not the most efficient way of upscaling games as there are certain limitations that apply to using this method compared to AMD's FSR and NVIDIA DLSS which is implemented on per-game. It has the following limitations.
Currently, the following limitations apply:
- Scaling is not supported on MSHybrid systems.
- HDR displays driven by pre-Turing GPUs will not support scaling
- Scaling will not work with VR
- Scaling will not work with displays using YUV420 format.
- Scaling uses aspect ration scaling and will not use integer scaling
- Sharpening will not work with HDR displays
- GPU scaling engages when games are played only in full-screen mode, and not in
- windowed or borderless windowed mode.
- Some G-SYNC displays have a 6-tap/64-phase scaler which scales better than that
- offered by Turing's 5-tap/32-phase scaler.
- To avoid accidentally triggering scaling by applications or DWM, first change to the
- desired (<native) resolution from the NVIDIA Control Panel and then launch the
- Turing's 5-tap upscaler may not engage on certain monitors, based on the monitor's
- vblank timing.
- Turing's 5-tap upscaler may not engage if the input resolution is greater than 2560px
- in either the x or y dimension.
- Scaling is turned off automatically when switching display devices.
- "Restore Defaults" option in the control panel currently does not revert the upscaling resolution.
Also, since this upscaling method works for the entire screen, there is a possibility of the game UI or Menu becoming blurry and unable to read compared to the proper solutions where devs will be knowing for sure which screen elements the upscaling needs to be applied to and which do not. It is interesting to see that AMD chose the Lanczos Upscale as a base for its FSR tech and improved upon it in several ways while making it open-source for easier integration within AAA titles and is applicable for general purpose use as Jarred Walton over at TomsHardware points out.
"As a former software developer, I can attest to the fact that it's far easier to get management to greenlight a new feature when said feature benefits 100% of the intended user base, rather than only a small portion of the potential users. The needs of the many outweigh the needs of the few or something like that.
Of course, the proof is in the eating of the pudding, and FSR pudding tastes nearly as good as natively rendered pudding — maybe a bit undermixed, but you almost wouldn't notice, at least when using the ultra quality or quality profiles. Let's just not get too carried away with congratulating AMD on creating something new and useful when what we really should be doing is asking what took so long."
It is also pretty clear that AMD's FSR will be a superior technology but for those who want to try it out, an interesting comparison would be to compare games that use FSR and see how NVIDIA's upscale looks against that. This is pretty much doable on any NVIDIA GeForce graphics card from the past two years including the GeForce 10 and 16 series products. But this is only useful for the AAA gaming titles that don't have FSR or DLSS support in which case, Lanczos filter through the NVIDIA control panel is a good option.
News Source: Tomshardware