FidelityFX CACAO
Navigation: SDK → Effect Components
FidelityFX CACAO
Include the interface for the backend of the API.
FidelityFX Combined Adaptive Compute Ambient Occlusion runtime library.
Defines
FFX_CACAO_VERSION_MAJOR
#define FFX_CACAO_VERSION_MAJOR (1)FidelityFX CACAO major version.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 37, column 9)
FFX_CACAO_VERSION_MINOR
#define FFX_CACAO_VERSION_MINOR (4)FidelityFX CACAO minor version.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 42, column 9)
FFX_CACAO_VERSION_PATCH
#define FFX_CACAO_VERSION_PATCH (0)FidelityFX CACAO patch version.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 47, column 9)
FFX_CACAO_PREPARE_DEPTHS_AND_MIPS_WIDTH
#define FFX_CACAO_PREPARE_DEPTHS_AND_MIPS_WIDTH 8Width of the PREPARE_DEPTHS_AND_MIPS pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 55, column 9)
FFX_CACAO_PREPARE_DEPTHS_AND_MIPS_HEIGHT
#define FFX_CACAO_PREPARE_DEPTHS_AND_MIPS_HEIGHT 8Height of the PREPARE_DEPTHS_AND_MIPS pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 59, column 9)
FFX_CACAO_PREPARE_DEPTHS_WIDTH
#define FFX_CACAO_PREPARE_DEPTHS_WIDTH 8Width of the PREPARE_DEPTHS pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 64, column 9)
FFX_CACAO_PREPARE_DEPTHS_HEIGHT
#define FFX_CACAO_PREPARE_DEPTHS_HEIGHT 8Height of the PREPARE_DEPTHS pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 68, column 9)
FFX_CACAO_PREPARE_DEPTHS_HALF_WIDTH
#define FFX_CACAO_PREPARE_DEPTHS_HALF_WIDTH 8Width of the PREPARE_DEPTHS_HALF pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 73, column 9)
FFX_CACAO_PREPARE_DEPTHS_HALF_HEIGHT
#define FFX_CACAO_PREPARE_DEPTHS_HALF_HEIGHT 8Height of the PREPARE_DEPTHS_HALF pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 77, column 9)
FFX_CACAO_PREPARE_NORMALS_WIDTH
#define FFX_CACAO_PREPARE_NORMALS_WIDTH 8Width of the PREPARE_NORMALS pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 82, column 9)
FFX_CACAO_PREPARE_NORMALS_HEIGHT
#define FFX_CACAO_PREPARE_NORMALS_HEIGHT 8Height of the PREPARE_NORMALS pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 86, column 9)
PREPARE_NORMALS_FROM_INPUT_NORMALS_WIDTH
#define PREPARE_NORMALS_FROM_INPUT_NORMALS_WIDTH 8Width of the PREPARE_NORMALS_FROM_INPUT_NORMALS pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 91, column 9)
PREPARE_NORMALS_FROM_INPUT_NORMALS_HEIGHT
#define PREPARE_NORMALS_FROM_INPUT_NORMALS_HEIGHT 8Height of the PREPARE_NORMALS_FROM_INPUT_NORMALS pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 95, column 9)
FFX_CACAO_GENERATE_SPARSE_WIDTH
#define FFX_CACAO_GENERATE_SPARSE_WIDTH 4Width of the GENERATE_SPARSE pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 103, column 9)
FFX_CACAO_GENERATE_SPARSE_HEIGHT
#define FFX_CACAO_GENERATE_SPARSE_HEIGHT 16Height of the GENERATE_SPARSE pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 107, column 9)
FFX_CACAO_GENERATE_WIDTH
#define FFX_CACAO_GENERATE_WIDTH 8Width of the GENERATE pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 112, column 9)
FFX_CACAO_GENERATE_HEIGHT
#define FFX_CACAO_GENERATE_HEIGHT 8Height of the GENERATE pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 116, column 9)
IMPORTANCE_MAP_WIDTH
#define IMPORTANCE_MAP_WIDTH 8Width of the IMPORTANCE_MAP pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 124, column 9)
IMPORTANCE_MAP_HEIGHT
#define IMPORTANCE_MAP_HEIGHT 8Height of the IMPORTANCE_MAP pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 128, column 9)
IMPORTANCE_MAP_A_WIDTH
#define IMPORTANCE_MAP_A_WIDTH 8Width of the IMPORTANCE_MAP_A pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 133, column 9)
IMPORTANCE_MAP_A_HEIGHT
#define IMPORTANCE_MAP_A_HEIGHT 8Height of the IMPORTANCE_MAP_A pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 137, column 9)
IMPORTANCE_MAP_B_WIDTH
#define IMPORTANCE_MAP_B_WIDTH 8Width of the IMPORTANCE_MAP_B pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 142, column 9)
IMPORTANCE_MAP_B_HEIGHT
#define IMPORTANCE_MAP_B_HEIGHT 8Height of the IMPORTANCE_MAP_B pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 146, column 9)
FFX_CACAO_BLUR_WIDTH
#define FFX_CACAO_BLUR_WIDTH 16Width of the BLUR pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 154, column 9)
FFX_CACAO_BLUR_HEIGHT
#define FFX_CACAO_BLUR_HEIGHT 16Height of the BLUR pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 158, column 9)
FFX_CACAO_APPLY_WIDTH
#define FFX_CACAO_APPLY_WIDTH 8Width of the APPLY pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 166, column 9)
FFX_CACAO_APPLY_HEIGHT
#define FFX_CACAO_APPLY_HEIGHT 8Height of the APPLY pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 170, column 9)
FFX_CACAO_BILATERAL_UPSCALE_WIDTH
#define FFX_CACAO_BILATERAL_UPSCALE_WIDTH 8Width of the BILATERAL_UPSCALE pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 178, column 9)
FFX_CACAO_BILATERAL_UPSCALE_HEIGHT
#define FFX_CACAO_BILATERAL_UPSCALE_HEIGHT 8Height of the BILATERAL_UPSCALE pass tile size.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 182, column 9)
FFX_CACAO_CONTEXT_SIZE
#define FFX_CACAO_CONTEXT_SIZE (301054)The size of the context specified in 32bit values.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 187, column 9)
FFX_CACAO_CONTEXT_COUNT
#define FFX_CACAO_CONTEXT_COUNT 1FidelityFX CACAO context count.
Defines the number of internal effect contexts required by CACAO.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 194, column 9)
Functions
ffxCacaoContextCreate
FFX_API FfxErrorCode ffxCacaoContextCreate(FfxCacaoContext *context, const FfxCacaoContextDescription *contextDescription)Create a FidelityFX CACAO context from the parameters programmed to the FfxCacaoContextDescription structure.
The context structure is the main object used to interact with the CACAO API, and is responsible for the management of the internal resources used by the CACAO algorithm. When this API is called, multiple calls will be made via the pointers contained in the backendInterface structure. This backend will attempt to retrieve the device capabilities, and create the internal resources, and pipelines required by CACAO to function. Depending on the precise configuration used when creating the FfxCacaoContext a different set of resources and pipelines might be requested via the callback functions.
The FfxCacaoContext should be destroyed when use of it is completed, typically when an application is unloaded or CACAO upscaling is disabled by a user. To destroy the CACAO context you should call ffxCacaoContextDestroy.
Parameters:
| Name | Type | Default |
|---|---|---|
context | FfxCacaoContext * | “ |
contextDescription | const FfxCacaoContextDescription * | “ |
Returns: FFX_API FfxErrorCode
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 486, column 22)
ffxCacaoContextDispatch
FFX_API FfxErrorCode ffxCacaoContextDispatch(FfxCacaoContext *context, const FfxCacaoDispatchDescription *dispatchDescription)Dispatches work to the FidelityFX CACAO context.
Parameters:
| Name | Type | Default |
|---|---|---|
context | FfxCacaoContext * | “ |
dispatchDescription | const FfxCacaoDispatchDescription * | “ |
Returns: FFX_API FfxErrorCode
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 501, column 22)
ffxCacaoContextDestroy
FFX_API FfxErrorCode ffxCacaoContextDestroy(FfxCacaoContext *context)Destroy the FidelityFX CACAO context.
Parameters:
| Name | Type | Default |
|---|---|---|
context | FfxCacaoContext * | “ |
Returns: FFX_API FfxErrorCode
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 513, column 22)
ffxCacaoUpdateSettings
FFX_API FfxErrorCode ffxCacaoUpdateSettings(FfxCacaoContext *context, const FfxCacaoSettings *settings, const bool useDownsampledSsao)Updates the settings used by CACAO.
Parameters:
context(FfxCacaoContext *) – [in] A pointer to a FfxCacaoContext structure to change settings for.settings(const FfxCacaoSettings *) – [in] A pointer to a FfxCacaoSettings structure.useDownsampledSsao(const bool)
Returns: FFX_API FfxErrorCode
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 525, column 22)
ffxCacaoGetEffectVersion
FFX_API FfxVersionNumber ffxCacaoGetEffectVersion()Queries the effect version number.
Returns: The SDK version the effect was built with.
Returns: FFX_API FfxVersionNumber
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 533, column 26)
Variables
const FfxCacaoSettings FFX_CACAO_DEFAULT_SETTINGS
static const FfxCacaoSettings FFX_CACAO_DEFAULT_SETTINGS = = { 1.2f, 1.0f, 1.50f, 0.98f, 0.06f, 50.0f, 300.0f, FFX_CACAO_QUALITY_HIGHEST, 0.45f, 2, 0.98f, 0.0f, 0.0f, 0.5f, false, 5.0f, 0.01f,}The default settings used by FidelityFX CACAO.
Attributes: static
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 287, column 31)
Enumerations
FfxCacaoPass
enum FfxCacaoPassAn enumeration of the passes which constitutes the CACAO algorithm.
Values:
FFX_CACAO_PASS_CLEAR_LOAD_COUNTER
FFX_CACAO_PASS_CLEAR_LOAD_COUNTER = 0FFX_CACAO_PASS_PREPARE_DOWNSAMPLED_DEPTHS
FFX_CACAO_PASS_PREPARE_DOWNSAMPLED_DEPTHS = 1FFX_CACAO_PASS_PREPARE_NATIVE_DEPTHS
FFX_CACAO_PASS_PREPARE_NATIVE_DEPTHS = 2FFX_CACAO_PASS_PREPARE_DOWNSAMPLED_DEPTHS_AND_MIPS
FFX_CACAO_PASS_PREPARE_DOWNSAMPLED_DEPTHS_AND_MIPS = 3FFX_CACAO_PASS_PREPARE_NATIVE_DEPTHS_AND_MIPS
FFX_CACAO_PASS_PREPARE_NATIVE_DEPTHS_AND_MIPS = 4FFX_CACAO_PASS_PREPARE_DOWNSAMPLED_NORMALS
FFX_CACAO_PASS_PREPARE_DOWNSAMPLED_NORMALS = 5FFX_CACAO_PASS_PREPARE_NATIVE_NORMALS
FFX_CACAO_PASS_PREPARE_NATIVE_NORMALS = 6FFX_CACAO_PASS_PREPARE_DOWNSAMPLED_NORMALS_FROM_INPUT_NORMALS
FFX_CACAO_PASS_PREPARE_DOWNSAMPLED_NORMALS_FROM_INPUT_NORMALS = 7FFX_CACAO_PASS_PREPARE_NATIVE_NORMALS_FROM_INPUT_NORMALS
FFX_CACAO_PASS_PREPARE_NATIVE_NORMALS_FROM_INPUT_NORMALS = 8FFX_CACAO_PASS_PREPARE_DOWNSAMPLED_DEPTHS_HALF
FFX_CACAO_PASS_PREPARE_DOWNSAMPLED_DEPTHS_HALF = 9FFX_CACAO_PASS_PREPARE_NATIVE_DEPTHS_HALF
FFX_CACAO_PASS_PREPARE_NATIVE_DEPTHS_HALF = 10FFX_CACAO_PASS_GENERATE_Q0
FFX_CACAO_PASS_GENERATE_Q0 = 11FFX_CACAO_PASS_GENERATE_Q1
FFX_CACAO_PASS_GENERATE_Q1 = 12FFX_CACAO_PASS_GENERATE_Q2
FFX_CACAO_PASS_GENERATE_Q2 = 13FFX_CACAO_PASS_GENERATE_Q3
FFX_CACAO_PASS_GENERATE_Q3 = 14FFX_CACAO_PASS_GENERATE_Q3_BASE
FFX_CACAO_PASS_GENERATE_Q3_BASE = 15FFX_CACAO_PASS_GENERATE_IMPORTANCE_MAP
FFX_CACAO_PASS_GENERATE_IMPORTANCE_MAP = 16FFX_CACAO_PASS_POST_PROCESS_IMPORTANCE_MAP_A
FFX_CACAO_PASS_POST_PROCESS_IMPORTANCE_MAP_A = 17FFX_CACAO_PASS_POST_PROCESS_IMPORTANCE_MAP_B
FFX_CACAO_PASS_POST_PROCESS_IMPORTANCE_MAP_B = 18FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_1
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_1 = 19FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_2
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_2 = 20FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_3
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_3 = 21FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_4
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_4 = 22FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_5
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_5 = 23FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_6
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_6 = 24FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_7
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_7 = 25FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_8
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_8 = 26FFX_CACAO_PASS_APPLY_NON_SMART_HALF
FFX_CACAO_PASS_APPLY_NON_SMART_HALF = 27FFX_CACAO_PASS_APPLY_NON_SMART
FFX_CACAO_PASS_APPLY_NON_SMART = 28FFX_CACAO_PASS_APPLY
FFX_CACAO_PASS_APPLY = 29FFX_CACAO_PASS_UPSCALE_BILATERAL_5X5
FFX_CACAO_PASS_UPSCALE_BILATERAL_5X5 = 30FFX_CACAO_PASS_COUNT
The number of passes in CACAO.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 199, column 1)
FfxCacaoQuality
enum FfxCacaoQualityThe quality levels that FidelityFX CACAO can generate SSAO at. This affects the number of samples taken for generating SSAO.
Values:
FFX_CACAO_QUALITY_LOWEST
FFX_CACAO_QUALITY_LOWEST = 0FFX_CACAO_QUALITY_LOW
FFX_CACAO_QUALITY_LOW = 1FFX_CACAO_QUALITY_MEDIUM
FFX_CACAO_QUALITY_MEDIUM = 2FFX_CACAO_QUALITY_HIGH
FFX_CACAO_QUALITY_HIGH = 3FFX_CACAO_QUALITY_HIGHEST
FFX_CACAO_QUALITY_HIGHEST = 4Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 245, column 1)
FfxCacaoInitializationFlagBits
enum FfxCacaoInitializationFlagBitsAn enumeration of bit flags used when creating a FfxCacaoContext. See FfxCacaoContextDescription.
Values:
FFX_CACAO_ENABLE_APPLY_SMART
FFX_CACAO_ENABLE_APPLY_SMART = (1<<0)A bit indicating to use smart application.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 257, column 1)
FfxCacaoDispatchFlagsBits
enum FfxCacaoDispatchFlagsBitsAn enumeration of bit flags used when dispatching FidelityFX CACAO.
Values:
FFX_CACAO_SRV_SSAO_REMAP_TO_PONG
FFX_CACAO_SRV_SSAO_REMAP_TO_PONG = (1<<0)A bit indicating the SRV maps to pong texture.
FFX_CACAO_UAV_SSAO_REMAP_TO_PONG
FFX_CACAO_UAV_SSAO_REMAP_TO_PONG = (1<<1)A bit indicating the UAV maps to pong texture.
Source: sdk/include/FidelityFX/host/ffx_cacao.h (line 432, column 1)
Dependencies
This module depends on: