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 8
Width 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 8
Height 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 8
Width 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 8
Height 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 8
Width 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 8
Height 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 8
Width 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 8
Height 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 8
Width 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 8
Height 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 4
Width 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 16
Height 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 8
Width 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 8
Height 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 8
Width 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 8
Height 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 8
Width 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 8
Height 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 8
Width 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 8
Height 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 16
Width 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 16
Height 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 8
Width 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 8
Height 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 8
Width 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 8
Height 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 1
FidelityFX 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 FfxCacaoPass
An enumeration of the passes which constitutes the CACAO algorithm.
Values:
FFX_CACAO_PASS_CLEAR_LOAD_COUNTER
FFX_CACAO_PASS_CLEAR_LOAD_COUNTER = 0
FFX_CACAO_PASS_PREPARE_DOWNSAMPLED_DEPTHS
FFX_CACAO_PASS_PREPARE_DOWNSAMPLED_DEPTHS = 1
FFX_CACAO_PASS_PREPARE_NATIVE_DEPTHS
FFX_CACAO_PASS_PREPARE_NATIVE_DEPTHS = 2
FFX_CACAO_PASS_PREPARE_DOWNSAMPLED_DEPTHS_AND_MIPS
FFX_CACAO_PASS_PREPARE_DOWNSAMPLED_DEPTHS_AND_MIPS = 3
FFX_CACAO_PASS_PREPARE_NATIVE_DEPTHS_AND_MIPS
FFX_CACAO_PASS_PREPARE_NATIVE_DEPTHS_AND_MIPS = 4
FFX_CACAO_PASS_PREPARE_DOWNSAMPLED_NORMALS
FFX_CACAO_PASS_PREPARE_DOWNSAMPLED_NORMALS = 5
FFX_CACAO_PASS_PREPARE_NATIVE_NORMALS
FFX_CACAO_PASS_PREPARE_NATIVE_NORMALS = 6
FFX_CACAO_PASS_PREPARE_DOWNSAMPLED_NORMALS_FROM_INPUT_NORMALS
FFX_CACAO_PASS_PREPARE_DOWNSAMPLED_NORMALS_FROM_INPUT_NORMALS = 7
FFX_CACAO_PASS_PREPARE_NATIVE_NORMALS_FROM_INPUT_NORMALS
FFX_CACAO_PASS_PREPARE_NATIVE_NORMALS_FROM_INPUT_NORMALS = 8
FFX_CACAO_PASS_PREPARE_DOWNSAMPLED_DEPTHS_HALF
FFX_CACAO_PASS_PREPARE_DOWNSAMPLED_DEPTHS_HALF = 9
FFX_CACAO_PASS_PREPARE_NATIVE_DEPTHS_HALF
FFX_CACAO_PASS_PREPARE_NATIVE_DEPTHS_HALF = 10
FFX_CACAO_PASS_GENERATE_Q0
FFX_CACAO_PASS_GENERATE_Q0 = 11
FFX_CACAO_PASS_GENERATE_Q1
FFX_CACAO_PASS_GENERATE_Q1 = 12
FFX_CACAO_PASS_GENERATE_Q2
FFX_CACAO_PASS_GENERATE_Q2 = 13
FFX_CACAO_PASS_GENERATE_Q3
FFX_CACAO_PASS_GENERATE_Q3 = 14
FFX_CACAO_PASS_GENERATE_Q3_BASE
FFX_CACAO_PASS_GENERATE_Q3_BASE = 15
FFX_CACAO_PASS_GENERATE_IMPORTANCE_MAP
FFX_CACAO_PASS_GENERATE_IMPORTANCE_MAP = 16
FFX_CACAO_PASS_POST_PROCESS_IMPORTANCE_MAP_A
FFX_CACAO_PASS_POST_PROCESS_IMPORTANCE_MAP_A = 17
FFX_CACAO_PASS_POST_PROCESS_IMPORTANCE_MAP_B
FFX_CACAO_PASS_POST_PROCESS_IMPORTANCE_MAP_B = 18
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_1
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_1 = 19
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_2
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_2 = 20
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_3
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_3 = 21
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_4
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_4 = 22
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_5
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_5 = 23
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_6
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_6 = 24
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_7
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_7 = 25
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_8
FFX_CACAO_PASS_EDGE_SENSITIVE_BLUR_8 = 26
FFX_CACAO_PASS_APPLY_NON_SMART_HALF
FFX_CACAO_PASS_APPLY_NON_SMART_HALF = 27
FFX_CACAO_PASS_APPLY_NON_SMART
FFX_CACAO_PASS_APPLY_NON_SMART = 28
FFX_CACAO_PASS_APPLY
FFX_CACAO_PASS_APPLY = 29
FFX_CACAO_PASS_UPSCALE_BILATERAL_5X5
FFX_CACAO_PASS_UPSCALE_BILATERAL_5X5 = 30
FFX_CACAO_PASS_COUNT
The number of passes in CACAO.
Source: sdk/include/FidelityFX/host/ffx_cacao.h
(line 199, column 1)
FfxCacaoQuality
enum FfxCacaoQuality
The 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 = 0
FFX_CACAO_QUALITY_LOW
FFX_CACAO_QUALITY_LOW = 1
FFX_CACAO_QUALITY_MEDIUM
FFX_CACAO_QUALITY_MEDIUM = 2
FFX_CACAO_QUALITY_HIGH
FFX_CACAO_QUALITY_HIGH = 3
FFX_CACAO_QUALITY_HIGHEST
FFX_CACAO_QUALITY_HIGHEST = 4
Source: sdk/include/FidelityFX/host/ffx_cacao.h
(line 245, column 1)
FfxCacaoInitializationFlagBits
enum FfxCacaoInitializationFlagBits
An 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 FfxCacaoDispatchFlagsBits
An 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: