AMD FidelityFX Super Resolution 3 integration for the O3DE / Atom renderer.
| Feature | Status |
|---|---|
| Windows DX12 backend | Working |
| Windows Vulkan backend | Working |
| NativeAA mode | Working |
| Quality / Balanced / Performance / Ultra Performance modes | Enum exposed, but render scale clamped to 1.0; logs a warning. (Not implemented yet!) |
| Reactive mask pass | Working (alpha-derived single-input variant) |
| Debug visualization | Working |
| TAA mutual-exclusion | Working (FSR3 enabled -> TAA parent disabled) |
| Frame generation | (Not implemented yet!) |
| Linux Vulkan backend | (Not implemented yet!) |
| Dynamic resolution | (Not implemented yet!) |
End-user developers (Project Manager, Visual Studio, or command-line cmake): Just enable the gem in your project and build. The first configure fetches the FidelityFX SDK and builds its libraries automatically (~2-3 minutes, one time per build tree).
Sharing one SDK across multiple O3DE projects on the same machine point all projects at a single fidelityfx-src directory that's already been built. Set the env var once:
setx FSR3_PREBUILT_SDK_DIR F:\engine\build\windows\_deps\fidelityfx-src
(use the path of any build tree that has already built the SDK). New projects will then skip both the fetch and the build entirely.
CI / scripted builds, where surprise-and-wait is bad: opt out of auto-build:
cmake -B <build_dir> -S <project_dir> -DFSR3_AUTO_BUILD_SDK=OFF
The configure will then FATAL_ERROR with explicit instructions if the SDK isn't already built, instead of starting a long-running compile.
Manual SDK build (if auto-build fails, or you want to drive it yourself):
cd <build_dir>/_deps/fidelityfx-src/sdk
BuildFidelityFXSDK.bat
Then re-configure your project.
Launch the Editor. In the console:
| Command | Effect |
|---|---|
r_fsr3Enabled 1 |
Enable FSR3 (disables TAA parent pass while active) |
r_fsr3Enabled 0 |
Disable FSR3, restore TAA |
r_fsr3QualityMode 0 |
NativeAA (1.0x; the only mode that actually works in v1) |
r_fsr3Sharpness 0.5 |
RCAS sharpness, 0..1 |
r_fsr3DebugView 0 |
Off |
r_fsr3DebugView 2 |
Motion-vector visualization |
r_fsr3DebugView 3 |
Reactive-mask visualization |
The same CVars work via the FSR3RequestBus from script.
After a fresh build:
- Launch
bin/profile/Editor.exe. Console should printFSR3 backend 'DX12' initialized successfully .... r_fsr3Enabled 1-- image continues to render correctly (NativeAA-quality temporal AA).r_fsr3DebugView 2-- motion-vector overlay appears.r_fsr3DebugView 0-- normal scene.r_fsr3Enabled 0-- TAA parent re-enables (visible in the Atom GPU profiler).- Repeat 1-5 with
-rhi=vulkanon the command line.
ctest --test-dir build/windows -R FSR3 --output-on-failure -C profile
Five smoke cases cover system-component setup, quality-mode scale-factor sanity, sharpness clamping, reflection registration, and debug-mode round-trip.
This Gem fetches and links AMD FidelityFX SDK v1.1.2 at CMake configure time. The SDK is MIT-licensed; its LICENSE file is preserved at <fetched-sdk-dir>/LICENSE.txt. Any binary distribution of this Gem must redistribute that file alongside.
Upstream: https://github.com/GPUOpen-LibrariesAndSDKs/FidelityFX-SDK
- Sub-resolution rendering (real upscaling on Quality/Balanced/Performance/UltraPerformance modes)
- Linux / Vulkan backend
- Frame generation
- Dynamic resolution / auto quality
- CI wiring for the smoke test