Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FSR3 Gem

AMD FidelityFX Super Resolution 3 integration for the O3DE / Atom renderer.

What v1 ships

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!)

Building

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.

Using FSR3 in the Editor

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.

Verifying a build

After a fresh build:

  1. Launch bin/profile/Editor.exe. Console should print FSR3 backend 'DX12' initialized successfully ....
  2. r_fsr3Enabled 1 -- image continues to render correctly (NativeAA-quality temporal AA).
  3. r_fsr3DebugView 2 -- motion-vector overlay appears.
  4. r_fsr3DebugView 0 -- normal scene.
  5. r_fsr3Enabled 0 -- TAA parent re-enables (visible in the Atom GPU profiler).
  6. Repeat 1-5 with -rhi=vulkan on the command line.

Tests

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.

Third-party software

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

Roadmap (post-MVP)

  1. Sub-resolution rendering (real upscaling on Quality/Balanced/Performance/UltraPerformance modes)
  2. Linux / Vulkan backend
  3. Frame generation
  4. Dynamic resolution / auto quality
  5. CI wiring for the smoke test

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages