Our Unreal Engine performance guide
Our dedicated team of Unreal Engine engineers have been working hard to put together our recommendations
for optimizing with your Unreal Engine code base.
Now updated for AMD FSR 3!
Our FSR 3 plugin for Unreal Engine 5 is available now!
AMD FidelityFX™ Super Resolution 3 (FSR 3) technology uses a combination of super resolution temporal upscaling technology and frame generation to deliver a massive increase in framerates in supported games.
AMD FSR 3 technology extends upon FSR 2’s upscaling by adding Frame Generation – the ability to generate entirely new game frames and present those to the user to improve FPS. FSR 3 does this by adding two new technologies – Frame Interpolation and Optical Flow enhanced from AMD Fluid Motion Frames.
Current FSR version: FSR 3.0.3 (December 14 2023)
Our FSR 2 plugin for Unreal Engine 4.26/4.27 and UE5.0/5.1/5.2(.1) is available now!
AMD FidelityFX™ Super Resolution 2 (FSR 2) is our open source temporal upscaling solution. FSR 2 uses cutting-edge temporal algorithms to reconstruct fine geometric and texture detail, producing anti-aliased output from aliased input.
Find out what our open source, high-quality solution for producing high resolution frames from lower resolution inputs can do for your game!
Current FSR version: FSR 2.2.1b (August 2023)
FSR 2.1 (onwards) Unreal Engine performance patches
Don’t miss our very detailed blog series which explains what the patches which come supplied with the plugin are, how to install them, and how use them to your benefit. You can also learn about the changes you can make to get similar benefits without using the patches.
Read the experiences of a game developer integrating our FSR 2.1 Unreal Engine plugin
Guest blog by EBB Software: Integrating AMD FidelityFX™ Super Resolution 2 (FSR 2) into Scorn
In this guest post by EBB Software, learn how they integrated our FSR 2.1 plugin for Unreal Engine into their first title: Scorn
Why not also try our FSR 1 plugin for Unreal Engine 4?
Any developer using a version of Unreal Engine 4 at v4.27.1 or greater can install our FSR 1 plugin.
FSR 1 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. This enables “practical performance” for costly render operations, such as hardware ray tracing.
Performance patches
In order to access the patches you must be a registered Unreal Engine developer with access to the Unreal Engine GitHub repository.
Many of the optimization efforts that produce these patches are eventually integrated directly into a stock release of Unreal Engine. The patches presented here represent optimizations that have not been taken into Unreal Engine, and generally meet one of the following criteria:
- A similar optimization has already been applied in a subsequent release of stock Unreal Engine, and we wanted to make it available for prior versions that are still widely used.
- The optimization is still being reviewed for inclusion into stock Unreal Engine, and is provided here in the meantime.
- The optimization contains one or more AMD-specific implementations which, while they do not impact non-AMD performance, are not widely applicable enough for stock release.
Patch name | Integration difficulty | 4.25 | 4.24 | 4.23 |
---|---|---|---|---|
AGS 5.4 Integration and DX12 Engine Registration Strongly recommended. This optimization works by integrating the AMD GPU Services library at version 5.4, which then allows application registration under the D3D12RHI. |
Very easy |
- |
||
Prioritize ClearRenderTargetView over clearing RT regions by drawing quads This optimization works by eliminating the usage of rendered quads to clear a texture, and instead always calling ClearRenderTargetView(). |
Very easy |
- |
- |
|
Replace anisotropic samplers during Shadow Depths This optimization works by identifying scenarios in which Unreal Engine will insert anisotropic samplers during the ShadowDepths pass that will not directly affect the depth output. It replaces them with Trilinear samplers instead. |
Very easy |
- |
- |
|
Eliminate unnecessary and slow RT clears This optimization works by identifying Render Targets which are subjected to expensive and slow clears, but are likely to subsequently have every pixel written without blending. Such clears can be skipped without penalty. |
Easy |
|||
Use Compute for Histogram-based reduction during Lens Exposure This optimization works by replacing the PostProcessHistogramReduce PS with a Compute shader implementation that leverages LDS to avoid looping texture samples. |
Very easy |
|||
Use one triangle for fullscreen draws This optimization works by replacing fullscreen clears or copies which have been implemented by drawing a dual-triangle quad over an entire render target with a single triangle which also covers that entire render target (and then some). |
Very easy |
|||
Reduce memory pressure on RT volume during Translucent Lighting This optimization works by recognizing that the pair of 64x64x64 3D textures used in the FilterTranslucentVolume pass have an alpha channel that is regularly unused. In these cases, converting those volumes from RGBA16 to R11G11B10 can yield significant performance gains with minimal side effects. |
Very easy |
- |
||
Use Compute for HZB Mip Generation This optimization works by replacing UE4’s existing Pixel Shader HZB downsampling implementation with a tightly-threaded Compute Shader implementation. |
Very easy |
- |
- |
|
Use Compute for combining LUTs during Post Processing This optimization works by forcing the usage of an already-existing Compute path for LUT combination. |
Very easy |
- |
- |
|
Improve AO Shader memory access pattern This optimization works by making a trio of small modifications to the AmbientOcclusion PS implementation. 1. Eliminate a sample into a randomized texture, and replace it with a computed value. 2. Reorganize HZB samples to improve cache utilization. 3. Eliminate a small amount of processing if OPTIMIZATION_O1 is defined. |
Very easy |
- |
Feature patches
In order to access the patches you must be a registered Unreal Engine developer with access to the Unreal Engine GitHub repository.
Patch name | Integration difficulty | 4.27 | 4.26 | 4.25 |
---|---|---|---|---|
AMD FidelityFX – Super Resolution 2 (FSR 2) Uses cutting-edge temporal algorithms to reconstruct fine geometric and texture detail, producing anti-aliased output from aliased input. Learn more about FSR 2. |
- |
|||
AMD FidelityFX – Super Resolution (FSR) Produces high resolution frames from lower resolution inputs, with a particular emphasis on creating high-quality edges. Gives large performance improvements compared to rendering at native resolution directly. Learn more about FSR. |
- |
|||
TressFX 5.0 (Unreal Engine patch only) TressFX 5.0 has been designed to build upon the many features of TressFX 4.1 while being much easier to use. Learn more about UE4 TressFX 5.0. |
- |
|||
AMD FidelityFX – Variable Shading (VS) FidelityFX Variable Shading (VS) patch provides an open source implementation to easily integrate Variable Rate Shading into UE4. Learn more about VS. |
Very easy |
- |
- |
|
AMD FidelityFX – Single Pass Downsampler (SPD) Provides an optimized solution for creating up to 12 MIP levels of a texture. This patch provides SPD optimization to the Bloom effect to accelerate texture creation. Learn more about SPD. |
Easy |
- |
||
AMD FidelityFX – Luminance Preserving Mapper (LPM) Integrates HDR, FreeSync™2, and wide gamut tone and gamut mapping. UE4.25+ only. Learn more about LPM. |
Medium |
- |
||
AMD FidelityFX – Contrast Adaptive Sharpening (CAS) Integration of FidelityFX CAS into Unreal Engine’s renderer. Learn more about CAS. |
Very easy |
- |
||
Chroma Keying Enables GPU accelerated compositing of content and videos based on color keying. |
Very easy |
- |
||
360 Video Stitching Enables GPU accelerated stitching of recorded or live video streams. |
Medium |
- |
||
Advanced Media Framework Accelerated multimedia processing, including video playback and encoding. Learn more about AMF. |
Very easy |
- |
||
FEMFX – Finite Element Method*
Accelerated CPU library for Finite Element Method (FEM) to compute physics for many different materials, duplicating real-world bending and breaking effects. |
Hard |
- |
- |
- |
Related content
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!
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.
How to use AMD FidelityFX™ Super Resolution (FSR) 1.0 Unreal Engine 4 Plugin
Find out how to install and configure the AMD FidelityFX Super Resolution (FSR) 1.0 plugin for Unreal Engine 4.
More UE4.26 feature patch updates – AMF, chroma keying, and 360 video stitching
More feature patch updates available for UE4.26: Advanced Media Framework (AMF), chroma keying, and 360 video stitching.
Unreal Engine 4.26 feature patch updates, including new FidelityFX Variable Shading
Feature patch updates for UE4.26, including new FidelityFX Variable Shading, and updates to FidelityFX LPM, SPD, and CAS, plus TressFX 4.1.
Subsurface Scattering in Unreal Forward Renderer (2017) – YouTube link
This talk discusses how subsurface scattering is implemented in Unreal Engine’s forward renderer. Because UE4 implements subsurface scattering as a screen space effect, it wasn’t available on the forward path by default, so a new technique had to be implemented, and one that had to still work with the UE4 material system and editor.
A Sampling of UE4 Rendering Improvements (2017) – YouTube link
Arne Schober at Epic gives a rundown of a number of recent (2017) interesting improvements to UE4’s renderers, from MSAA support in the forward renderer for VR, to compositing a usable UI on top of a HDR image.
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.