AMD FidelityFX™ Denoiser background

AMD FidelityFX™ Denoiser

Shadows and reflections

AMD FidelityFX™ Denoiser includes specialized spatio-temporal denoisers optimized for specific workloads:

  • Shadow Denoiser: Designed to denoise a shadow mask created from tracing jittered rays towards a single light source.
  • Reflection Denoiser: Designed to remove noise from the result of tracing jittered reflection rays based on surface roughness.

Supports:

  • DirectX® 12
  • Vulkan®

Part of the AMD FidelityFX™ SDK

AMD FidelityFX SDK components

Download the latest version - v1.1.4

This release of the AMD FidelityFX™ SDK adds the following features:

  • Additions to the API and fixes for issues discovered.

Features

Open source, MIT license

Optimized for Shader Model 6.0+

State-of-the-art algorithm

Xbox developer?

An example use of AMD FidelityFX™ Shadow Denoiser exists within the Xbox Game Development Kit samples.

xbox

Shadow Denoiser specific features

  • Spatio-temporal denoiser, specialized for shadow denoising.
  • Tile classifier to skip work on areas without spatial variance in the shadow mask.
  • Increased contribution of spatial filters on low temporal sample counts.
  • Analysis of the local pixel neighborhood to counter ghosting artifacts.

Shadow Denoiser comparison

Raw Shadow Mask
Denoised Shadow Mask

Reflection Denoiser features

  • High performance spatio-temporal denoiser, specialized for reflection denoising.
  • Tile Classifier to skip non reflective areas.
  • Variable Rate Traversal: From full rate for mirror reflections down to quarter rate for glossy reflections.
  • Temporal Variance Guided Tracing.

Includes:

  • Classifier pass for reflection rays and denoiser tiles.
  • Spatial filter pass.
  • Temporal reprojection pass.
  • Gaussian blur.

Reflection Denoiser comparison

How the Reflection Denoiser works

1. Noisy reflection input

2. Spatial resolve

3. Temporal resolve

4. Gaussian blur

Requirements

  • DirectX® 12
  • Vulkan®

Version history

  • The AMD FidelityFX™ SDK 1.1.4 is a patch release that includes additions to API and fixes for issues discovered with AMD FSR 3.1.0 to 3.1.3.

  • Exposed 4 new tunings to reduce AMD FSR upscaler ghosting in newly disoccludded pixels or highly reactive pixels.

  • Changed the default value of fMinDisocclusionAccumulation to -0.333 (from equivalent of 0.333 in AMD FSR 3.1.3) to reduce disocclusion ghosting.

  • Added ffxQueryGetProviderVersion to get version info from created ffx-api context.

  • Exposed ffxDispatchDescFrameGenerationPrepareCameraInfo as a linked struct. It is a required input to AMD FSR 3.1.4 and onwards for best quality.

  • Added frame generation debug checker support.

  • Dropped unused interpolation command lists if frame generation callback fails, to fix infinite wait at swapchain destruction.

  • General fixes to Vulkan® Frame Interpolation Swapchain.

  • General framework fixes and updates.

  • Frame pacing debug line added to Vulkan®.

  • Added new FFX error when create frame interpolation swapchain results in E_ACCESSDENIED in DX12 due to overlay or capture software.

  • Enabled support for frame interpolation swapchain on Windows® 10 1909 and potentially earlier versions.

  • Fixed flipped disocclusion factor from previous and current backbuffer.

  • Fixed HDR mode issues in Cauldron sample.

  • Fixed MSVC C compile errors including ffx-api.

  • The AMD FidelityFX™ SDK 1.1.4 also updates the following to address select issues:

  • AMD FidelityFX™ Brixelizer GI 1.0.1

  • AMD FidelityFX™ Breadcrumbs 1.0.1

Other AMD FidelityFX effects