Skip to content

FidelityFX CACAO

Navigation: SDKEffect 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:

NameTypeDefault
contextFfxCacaoContext *
contextDescriptionconst 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:

NameTypeDefault
contextFfxCacaoContext *
dispatchDescriptionconst 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:

NameTypeDefault
contextFfxCacaoContext *

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: