AMD FidelityFX™ CACAO background

AMD FidelityFX™ Combined Adaptive Compute Ambient Occlusion (CACAO)

High quality ambient lighting

AMD FidelityFX™ Combined Adaptive Compute Ambient Occlusion (CACAO) is an AMD RDNA™ architecture-optimized implementation of ambient occlusion.

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

Intelligent sampling

Open source, MIT license

Highly optimized

Details

In 3D graphics, one of the biggest challenges is creating high quality lighting. Calculating physically accurate lighting is too computationally expensive to be done in real time, so instead multiple approximate models are used to create believable lighting. 

One of these models is ambient lighting, which models indirect light in a scene. The most naïve ambient light model is to have ambient lighting constant across an entire scene. However, this can be greatly improved by ambient occlusion, in which there is less ambient light in areas with occluding geometry – for example in corners, where objects meet, nooks and crannies etc. This vastly improves believability of a scene and makes a scene easier to visually parse.

Computing ambient occlusion can be done in multiple ways. In static scenes ambient occlusion may be computed ahead of time. When this is done, the methods used are typically very expensive and take a long time to compute. However, in dynamic scenes in which content is not predictable ahead of time this is not an option. In this case the state of the art is to use screen space ambient occlusion, which computes the ambient occlusion each frame based on geometry rendered. When this approach is taken an implementation must be chosen which is a good balance of speed and quality.

The AMD FidelityFX™ CACAO implementation is a highly optimized implementation of ambient occlusion. It may be run at multiple different quality settings, allowing it to meet multiple different requirements for quality performance trade-offs, and be run across a wide range of hardware.

Comparisons

AMD FidelityFX™ CACAO off/on

CACAO off
CACAO on

AMD FidelityFX™ CACAO on/debug view

CACAO on
Debug view

AMD FidelityFX™ CACAO off/on in Dirt® 5

Dirt5

CACAO off
CACAO on

Xbox developer?

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

xbox

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

Disclaimers

DIRT 5™ © 2020 The Codemasters Software Company Limited (“Codemasters”). All rights reserved. “Codemasters”®, “EGO”®, the Codemasters logo and “DIRT”® are registered trademarks owned by Codemasters. “DIRT 5”™ and “RaceNet”™ are trademarks of Codemasters. All rights reserved. All other copyrights or trademarks are the property of their respective owners and are being used under license. Developed and published by Codemasters. Disc version published and distributed 2020 by Deep Silver, a division of Koch Media GmbH, Austria. Deep Silver and its respective logos are trademarks of Koch Media GmbH.

World of Warcraft®: Shadowlands © 2021 Blizzard Entertainment, Inc. All rights reserved. World of Warcraft, Warcraft, and Blizzard Entertainment are trademarks or registered trademarks of Blizzard Entertainment, Inc. in the U.S. and/or other countries.

Other AMD FidelityFX effects