Introduction
AMD FidelityFX Super Resolution (FSR) is an open source, high-quality solution for producing high resolution frames from lower resolution inputs. It uses a collection of cutting-edge algorithms with a particular emphasis on creating high-quality edges, giving large performance improvements compared to rendering at native resolution directly. FSR enables “practical performance” for costly render operations, such as hardware ray tracing.
This guide will help you navigate the process of installing and configuring the FSR Plugin for Unreal Engine 4.
- Prefer our temporal upscaler? Find out how to use our UE4/UE5 plugin for FSR 2.
Plugin installation
This plugin is intended for Unreal Engine 4.27.1* or later.
*If you are not a registered Unreal Engine developer, you will need to follow these instructions to register for access to this link.
Installation procedure
- Locate the Engine\Plugins\Runtime directory of your Unreal Engine 4 installation.
- Unzip FSRPlugin.zip to Engine\Plugins\Runtime\AMD.
- Launch Unreal Engine 4. If Unreal Engine 4 is already running, close and restart it.
- Open your Unreal Engine 4 project.
- Navigate to Edit > Plugins in the Unreal Engine 4 toolbar.
- Within the plugin dialog…
A. Ensure that All is selected on the left side.
B. Type fsr into the search box in the top right corner.
C. Select the Enabled checkbox for the FSR 1.0.
D. When prompted, click Restart Now to apply changes, and restart Unreal Engine 4.
Plugin configuration
Usage
FSR 1.0 can be enabled or disabled with the CVar r.FidelityFX.FSR.Enabled
.
Upscaling percentage can be tuned with the CVar r.ScreenPercentage
. We recommend the following values:
- Ultra Quality :
r.ScreenPercentage 77
Produces an image with quality virtually indistinguishable from native rendering. It should be selected when the highest quality is desired. - Quality :
r.ScreenPercentage 67
Produces a super resolution image with quality representative of native rendering, with a sizeable performance gain. - Balanced :
r.ScreenPercentage 59
Produces a super resolution image approximating native rendering quality, with a major performance gain compared to native. - Performance :
r.ScreenPercentage 50
Visibly impacts image quality and should only be selected in situations where needing additional performance is critical.
We strongly recommend ensuring that r.ScreenPercentage
meets or exceeds a minimum value of 50 at all times.
Other configurations
Mobile users: scroll this table to the left to view the rest.
CVar | Default Value | Valid Values | Details |
---|---|---|---|
r.FidelityFX.FSR.UseFP16
| 1.0 | 0, 1 | Enables half-precision floating point arithmetic, improving performance without visible artifacts. |
r.FidelityFX.FSR.EnableFP16OnNvDX11
| 0.0 | 0, 1 | Our testing revealed that certain models of NVIDIA GPUs may not produce correct results when running DirectX 11 in conjunction with the FP16 variant of the FSR shaders. If this is resolved in the future, then you may want to use this CVar to re-enable the use of the 16-bit version of FSR on those GPUs. |
r.FidelityFX.FSR.RCAS.Enabled
| 1.0 | 0, 1 | Robust Contrast Adaptive Sharpening Filter. Sharpens images after upscaling is complete. |
r.FidelityFX.FSR.RCAS.Denoise
| 0.0 | 0, 1 | RCAS Denoising. Consider enabling for grainy inputs, such as when dithering or film grain effects are applied prior to FSR. |
r.FidelityFX.FSR.RCAS.Sharpness
| 0.2 | [0.0, inf] | RCAS Sharpness tuning.
|
r.FidelityFX.FSR.HDR.PQDitherAmount
| 1.0 | [0.0, 1.0] | HDR-Only Dither amount to apply for PQ->Gamma2 conversion, reducing color banding when the output device is ST2084/PQ. |
r.FidelityFX.FSR.Post.FilmGrain
| 1.0 | 0, 1 | Applies UE4 FilmGrain effects later in the post-processing chain, to avoid conflicts with FidelityFX Super Resolution. |
r.FidelityFX.FSR.Post.ExperimentalChromaticAberration
| 0.0 | 0, 1 | Be careful! This feature is Experimental and may produce undesirable results in some situations! Applies ChromaticAberration effects later in the post-processing chain, to avoid conflicts with FidelityFX Super Resolution. |
r.FidelityFX.FSR.Debug.ForcePS
| 0.0 | 0, 1 | If enabled, runs FSR and post-FFX ChromaticAberration passes in VS-PS pilelines instead of CS. |
Project configuration
FidelityFX Contrast Adaptive Sharpening (CAS)
FidelityFX Super Resolution 1.0 contains a built-in sharpening pass called RCAS that can be configured through the CVar r.FidelityFX.FSR.RCAS
and is enabled by default. If your project has already integrated FidelityFX-CAS, be sure to completely disable FidelityFX CAS – including any in-game menu options – while FidelityFX Super Resolution 1.0 is enabled. This will prevent over-sharpening your final renders and improve integration results.
Hybrid upscaling
If Temporal Upscaling is requested via the CVar r.TemporalAA.Upsampling
, either the default Unreal Engine 4 Temporal Anti-Aliasing with Upsampling (TAAU) algorithm or a replacement Temporal Upscaling algorithm installed via plugins will always serve as the Primary Upscaler regardless of any further FSR settings. Under these conditions, r.ScreenPercentage
will apply to the Primary Upscaler and will have no effect on FSR. However, FSR can still be used as a Secondary Upscaler to meet project-specific needs!
If r.TemporalAA.Upsampling
and r.FidelityFX.FSR.Enabled
are both requested, this Hybrid Upscaling mode is selected automatically. In Hybrid Upscaling mode, upscaling intensity can be tuned to meet project requirements using the CVar r.SecondaryScreenPercentage.GameViewport
.
Mip bias selection
With upscaling enabled, rendered resolutions are frequently much lower than displayed resolutions. When combined with mipmap optimizations, this can limit the fidelity of texture samples relative to the displayed resolution. In these situations, specifying a negative mip bias can improve the quality of final renders.
When Hybrid Upscaling is in use, mip biasing guidelines for the Temporal Upscaler should be followed in lieu of these instructions. In the case of the Unreal Engine 4 default TAAU implementation, all mip bias selection is handled automatically.
When FSR is the Primary Upscaler, the developer should consider specifying a custom mip bias. This can be easily done in Unreal Engine 4 by CVar, using r.MipMapLODBias
. The desired mip bias varies with the ratio of (rendered resolution) : (displayed resolution)
, which is also represented as r.ScreenPercentage
. For upscaling with values of r.ScreenPercentage
in the range [0, 100], we recommend the following formula:
r.MipMapLODBias = log2(r.ScreenPercentage/100)
For the recommended values of r.ScreenPercentage
, these values are recommended:
— Ultra Quality ( r.ScreenPercentage 77
) :
r.MipMapLODBias = -0.3765
— Quality ( r.ScreenPercentage 67
) :
r.MipMapLODBias = -0.5771
— Balanced ( r.ScreenPercentage 59
) :
r.MipMapLODBias = -0.7606
— Performance ( r.ScreenPercentage 50
) :
r.MipMapLODBias = -1.000
- Ultra Quality (
r.ScreenPercentage 77 ) :
r.MipMapLODBias = -0.3765
- Quality (
r.ScreenPercentage 67 ) :
r.MipMapLODBias = -0.5771
- Balanced (
r.ScreenPercentage 59 ) :
r.MipMapLODBias = -0.7606
- Performance (
r.ScreenPercentage 50 ) :
r.MipMapLODBias = -1.000
Panini Projection
The FidelityFX Super Resolution 1.0 plugin is currently incompatible with UE4 Panini Projections. Panini Projection will be explicitly disabled whenever FSR 1.0 is enabled.
Get the UE4 FSR plugin now!
Learn more about FSR and Unreal Engine
Unreal Engine performance guide
Our one-stop guide to performance with Unreal Engine.
AMD FidelityFX™ Super Resolution 1 (FSR 1)
AMD FidelityFX Super Resolution (FSR) is our open-source, high-quality, high-performance upscaling solution.
Unreal Engine
Develop for Unreal Engine on AMD hardware with our plugin, performance and feature patches, including FidelityFX support.
Other Unreal Engine content on GPUOpen
Using Ryzen™ Threadripper for Game Development – optimising UE4 build times
Guest post by Sebastian Aaltonen, co-founder of Second Order. It covers optimising building the engine and asset production when using AMD Ryzen Threadripper processors.
Unreal Engine 4 TressFX 5.0
Watch our video explaining what UE4 TressFX 5.0 is, and how to use it. TressFX is designed to simulate and render realistic hair and fur.
TressFX 5.0 arrives as a patch for Unreal Engine
UE4 TressFX 5.0 has been designed to build upon the many features of UE4 TressFX 4.1, while being much easier to use. Find out what’s new!