As promised last month, AMD FSR open source has been made available today on GPUOpen under an MIT license. You'll get access to a sample, while the full source code is available on GitHub. This bodes well not only for game developers but for modders, too, as someone already managed to add FSR to Grand Theft Auto V without even having access to the source code. Such mods and hacks should be even easier now.
AMD also shared lots of documentation on how FidelityFX Super Resolution works. Some of it is included in the GPUOpen page, while the rest is available in a separate document dedicated to integration.
FidelityFX Super Resolution is a spatial upscaler: it works by taking the current anti-aliased frame and upscaling it to display resolution without relying on other data such as frame history or motion vectors.
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.
FSR also comes with helper functions for color space conversions, dithering, and tone mapping to assist with integrating it into common rendering pipelines used with today’s games.
According to AMD, developers should keep in mind three key aspects when accounting for FidelityFX Super Resolution:
- the image should be well anti-aliased with techniques like TAA or MSAA;
- the image should be generated with negative MIP bias to increase texture detail
- the image should be noise-free.
The performance overhead at 4K resolution is between 0.40ms or less (RX 6800 XT, RTX 3080), 0.60ms or less (RX 6700 XT, RTX 3060Ti), or 1.0ms or less at its worst with mainstream GPUs like the RX 5700 XT and RTX 2060 SUPER.
AMD also confirmed that FSR is coming to four games in the near future. Specifically, Arcadegeddon and Necromunda: Hired Gun will be updated with it starting tomorrow, while FidelityFX Super Resolution support for Resident Evil Village and Edge of Eternity is coming in the next two weeks. Necromunda: Hired Gun and Edge of Eternity already feature NVIDIA DLSS support, which will give us the very first shot at a direct comparison between the two technologies.
Last but not least, FSR is now available in a special preview beta branch of Unity 2021.2 HDRP, mere days after NVIDIA DLSS also got added to the Unity 2021.2 HDRP beta.