Render

FidelityFX Cauldron Framework Render reference documentation.

Typedefs

Type

Description

typedef void

(*cauldron::DeviceRemovedCallback )(void *customData)
Callback to be used when detecting device removed error while presenting the frame.

typedef std::map<const std::wstring, std::wstring>

DefineList, holds pairs of key & value that will be used by the compiler as defines.

Enumerations

Name

Description

AddressMode

An enumeration for uv addressing mode.
Wrap – Tiles the texture.
Mirror – Mirrors the texture when tiling.
Clamp – Clamps accesses to 0.0 or 1.0.
Border – Texture coordinates outside 0.0 or 1.0 return border color.
MirrorOnce – Takes the absolute value of the coordinate and clamps to the maximum value.

AttributeFormat

An enumeration for various attribute formats.
Unknown – Unknown attribute format.
Scalar – Scalar (float) attribute format.
Vec2 – 2-Component vector attribute format.
Vec3 – 3-Component vector attribute format.
Vec4 – 4-Component vector attribute format.

BarrierType

An enumeration of supported barrier types.
Transition – Resource transition barrier.
Aliasing – Resource aliasing barrier.
UAV – Resource UAV-sync barrier.

BindingType

An enumeration for binding types. Used to bind parameters to root signatures and parameter sets.
TextureSRV = 0 – Binds as a texture srv.
TextureUAV – Binds as a texture uav.
BufferSRV – Binds as a buffer srv.
BufferUAV – Binds as a buffer uav.
AccelStructRT – Binds as an acceleration structure.
CBV – Binds as a constant buffer.
Sampler – Binds as a sampler.
RootConstant – Binds as a root constant buffer.
Root32BitConstant – Binds as a 32-bit push constant.
Invalid – Invalid binding.
Count = Invalid – Binding type count.

Blend

An enumeration for blend factors.
Zero = 0 – Blend factor zero.
One – Blend factor one.
SrcColor – Blend factor source color.
DstColor – Blend factor destination color.
InvSrcColor – Blend factor 1 – source color.
InvDstColor – Blend factor 1 – destination color.
SrcAlpha – Blend factor source alpha.
DstAlpha – Blend factor destination alpha.
InvSrcAlpha – Blend factor 1 – source alpha.
InvDstAlpha – Blend factor 1 – destination alpha.
SrcAlphaSat – Blend factor is (f, f, f, 1) where f = min(source alpha, 1 – destination alpha).
BlendFactor – Blend factor is a custom value.
InvBlendFactor – Blend factor is 1 – custom value.

BlendOp

An enumeration for blend operations.
Add = 0 – Source + destination blend operation.
Subtract – Source – destination blend operation.
RevSubtract – Destination – source blend operation.
Min – Min(source, destination) blend operation.
Max – Max(source, destination) blend operation.

BufferType

An enumeration for various types of buffers which can be created through “FidelityFX Cauldron Framework“
Vertex – Resource represents a vertex buffer.
Index – Resource represents an index buffer.
Constant – Resource represents a constant buffer.
AccelerationStructure – Resource represents an acceleration structure.
Data – Resource represents a generic data buffer.

CellStatus

An enumeration for shadow cell status.
Empty – The cell is empty.
Allocated – The cell has been allocated.
Subdivided – The cell was subdivided into 4 cells.

ColorPrimaries

An enumeration representing the red, green, blue and white points for above colour spaces’ gamut triangle.
ColorPrimaries_WHITE – White.
ColorPrimaries_RED – Red.
ColorPrimaries_GREEN – Green.
ColorPrimaries_BLUE – Blue.

ColorPrimariesCoordinates

An enumeration for storing xy triangle gamut points for above red, green, blue and white color primairies.
ColorPrimariesCoordinates_X – The x coordinate.
ColorPrimariesCoordinates_Y – The y coordinate.

ColorSpace

An enumeration for color space to use for attached monitor display.
ColorSpace_REC709 – Display using Rec. 709 (also known as Rec.709, BT.709, and ITU 709).
ColorSpace_P3 – Display using DCI-P3 sRGB color space.
ColorSpace_REC2020 – Display using Rec. 2020 (also known as Rec. 2020 or BT.2020).
ColorSpace_Display – Current display color space id.

ColorWriteMask

An enumeration for color write mask.
Red = 0x1 – Write red channel.
Green = 0x2 – Write green channel.
Blue = 0x4 – Write blue channel.
Alpha = 0x8 – Write alpha channel.
All = (Red | Green | Blue | Alpha) – Write all channels.

CommandQueue

An enumeration for command queue types.
Graphics = 0 – Graphics command queue (single threaded).
Compute – Compute command queue (single threaded).
Copy – Copy command queue (multi threaded).
Count – CommandQueue type count.

ComparisonFunc

An enumeration for comparison functions.
Never = 0 – Always fail.
Less – Accept new if less than current.
Equal – Accept new if equal to current.
LessEqual – Accept new if less or equal to current.
Greater – Accept new if greater than current.
NotEqual – Accept new if not equal to current.
GreaterEqual – Accept new if greater or equal to current.
Always – Always accept.

CullMode

An enumeration for culling mode.
None = 0 – No culling.
Front – Front face culling.
Back – Backface culling.

DeviceFeature

An enumeration for device features to query.
None = 0 – No device features. Used for initialization.
FP16 = 1 << 0 – Does the device support FP16 capabilities.
VRSTier1 = 1 << 1 – Does the device support VRS Tier 1 capabilities.
VRSTier2 = 1 << 2 – Does the device support VRS Tier 2 capabilities.
RT_1_0 = 1 << 3 – Does the device support RT 1.0 capabilities.
RT_1_1 = 1 << 4 – Does the device support RT 1.1 capabilities.
WaveSize = 1 << 5 – Does the device support wave size control capabilities.
CoherentMemoryAMD = 1 << 6 – Does the device support coherent memory from AMD extension.
DedicatedAllocs = 1 << 7 – Does the device support dedicated allocations for resources.
BufferMarkerAMD = 1 << 8 – Does the device support buffer markers from AMD extension.
ExtendedSync = 1 << 9 – Does the device support extended synchronization methods.
ShaderStorageBufferArrayNonUniformIndexing = 1 << 10 – Does the device support shader storage buffer array non uniform indexing (always supported for DX12, device dependent for Vulkan).

FilterFunc

An enumeration for filter functions.
MinMagMipPoint
MinMagPointMipLinear
MinPointMagLinearMipPoint
MinPointMagMipLinear
MintMagPointMipLinear
MinLinearMagMipPoint
MinLinearMagPointMipLinear
MinMagLinearMipPoint
MinMagMipLinear
Anisotropic
ComparisonMinMagMipPoint
ComparisonMinMagPointMipLinear
ComparisonMinPointMagLinearMipPoint
ComparisonMinPointMagMipLinear
ComparisonMintMagPointMipLinear
ComparisonMinLinearMagMipPoint
ComparisonMinLinearMagPointMipLinear
ComparisonMinMagLinearMipPoint
ComparisonMinMagMipLinear
ComparisonAnisotropic

GPUResourceType

An enumeration of supported GPU resource types.
Texture = 0 – A texture resource. This is either a loaded texture, rendertarget or depthtarget.
Buffer – A buffer resource.
BufferBreadcrumbs – AMD FidelityFX Breadcrumbs Library markers buffer resource.
Swapchain – A Swapchain resource (special handling is provided).

IndirectCommandType

An enumeration of indirect workload types.
Draw = 0 – Indirect Draw workload.
DrawIndexed – Indirect DrawIndexed workload.
Dispatch – Indirect Dispatch workload.

MaterialBlend

An enumeration of supported surface blend types.
Opaque = 0 – Opaque blend type (no blending).
Mask – Mask blend type (alpha to mask).
AlphaBlend – Alpha blend type (Cb(1 – alpha) + Ca).
Count – Number of blend types.

PipelineType

An enumeration for pipeline types.
Undefined = 0 – Undefined (default)
Graphics – Graphics pipeline.
Compute – Compute pipeline.

PrimitiveTopology

An enumeration for primitive topology options.
Undefined = 0 – Undefined topology.
PointList – Point list primitive topology.
LineList – Line list primitive topology.
TriangleList – Triangle list primitive topology.
TriangleStrip – Triangle strip primitive topology.

PrimitiveTopologyType

An enumeration for primitive topology types.
Undefined = 0 – Undefined primitive topology.
Point – Point primitive topology.
Line – Line primitive topology.
Triangle – Triangle primitive topology.
Patch – Patch primitive topology.

ResourceFlags

An enumeration for resource flags.
None = 0x0 – No flags.
AllowRenderTarget = 0x1 << 0 – Allow resource to be used as rasterization target.
AllowDepthStencil = 0x1 << 1 – Allow resource to be used as depth/stencil target.
AllowUnorderedAccess = 0x1 << 3 – Allow unordered access to resource.
DenyShaderResource = 0x1 << 4 – Prevents the resource from having an SRV created for it.
AllowSimultaneousAccess = 0x1 << 6 – Allow resource to be accessed from different queues simultaneously.
AllowShadingRate = 0x1 << 7 – Allow resource to be a shading rate resource.
AllowIndirect = 0x1 << 8 – Allow resource to be an indirect argument.
AllowConstantBuffer = 0x1 << 9 – All resource to be used as a constant buffer.
BreadcrumbsBuffer = 0x1 << 10 – Special purpose buffer for holding AMD FidelityFX Breadcrumbs Library markers.

ResourceFormat

An enumeration for Resource formats.
Unknown – Unknown resource format.
R8_SINT – Single-component (R) 8-bit (signed int) type.
R8_UINT – Single-component (R) 8-bit (unsigned int) type.
R8_UNORM – Single-component (R) 8-bit (unsigned normalized) type.
R16_SINT – Single-component (R) 16-bit (signed int) type.
R16_UINT – Single-component (R) 16-bit (unsigned int) type.
R16_FLOAT – Single-component (R) 16-bit (floating point) type.
R16_UNORM – Single-component (R) 16-bit (unsigned normalized) type.
R16_SNORM – Single-component (R) 16-bit (signed normalized) type.
RG8_SINT – 2-component (RG) 16-bit (signed int) type.
RG8_UINT – 2-component (RG) 16-bit (unsigned int) type.
RG8_UNORM – 2-component (RG) 16-bit (unsigned normalized) type.
R32_SINT – Single-Component (R) 32-bit (signed int) type.
R32_UINT – Single-Component (R) 32-bit (unsigned int) type.
RGBA8_SINT – 4-Component (RGBA) 32-bit (signed int) type.
BGRA8_SINT – 4-Component (BGRA) 32-bit (signed int) type.
RGBA8_UINT – 4-Component (RGBA) 32-bit (unsigned int) type.
BGRA8_UINT – 4-Component (BGRA) 32-bit (unsigned int) type.
RGBA8_UNORM – 4-Component (RGBA) 32-bit (unsigned normalized) type.
BGRA8_UNORM – 4-Component (BGRA) 32-bit (unsigned normalized) type.
RGBA8_SNORM – 4-Component (RGBA) 32-bit (signed normalized) type.
RGBA8_SRGB – 4-Component (RGBA) 32-bit (SRGB) type.
BGRA8_SRGB – 4-Component (BGRA) 32-bit (SRGB) type.
RGBA8_TYPELESS – 4-Component (RGBA) 32-bit (typeless) type.
BGRA8_TYPELESS – 4-Component (BGRA) 32-bit (typeless) type.
RGB10A2_UNORM – 4-Component (RGBA) 32-bit (unsigned normalized) type.
RG11B10_FLOAT – 3-Component (RGB) 32-bit (floating point) type.
RGB9E5_SHAREDEXP – 3-Component (RGB) 32-bit (floating point) type.
RG16_SINT – 2-Component (RG) 32-bit (signed int) type.
RG16_UINT – 2-Component (RG) 32-bit (unsigned int) type.
RG16_FLOAT – 2-Component (R) 32-bit (floating point) type.
R32_FLOAT – Single-Component (R) 32-bit (floating point) type.
RGBA16_SINT – 4-Component (RGBA) 64-bit (signed int) type.
RGBA16_UINT – 4-Component (RGBA) 64-bit (unsigned int) type.
RGBA16_UNORM – 4-Component (RGBA) 64-bit (unsigned normalized) type.
RGBA16_SNORM – 4-Component (RGBA) 64-bit (signed normalized) type.
RGBA16_FLOAT – 4-Component (RGBA) 64-bit (floating point) type.
RG32_SINT – 2-Component (RG) 64-bit (signed int) type.
RG32_UINT – 2-Component (RG) 64-bit (unsigned int) type.
RG32_FLOAT – 2-Component (RG) 64-bit (floating point) type.
RGB32_SINT – 3-Component (RGB) 96-bit (signed int) type.
RGB32_UINT – 3-Component (RGB) 96-bit (unsigned int) type.
RGB32_FLOAT – 3-Component (RGB) 96-bit (floating point) type.
RGBA32_SINT – 4-Component (RGBA) 128-bit (signed int) type.
RGBA32_UINT – 4-Component (RGBA) 128-bit (unsigned int) type.
RGBA32_FLOAT – 4-Component (RGBA) 128-bit (floating point) type.
RGBA32_TYPELESS – 4-Component (RGBA) 128-bit (typeless) type.
D16_UNORM – 16-bit depth (unsigned int) type.
D32_FLOAT – 32-bit depth (floating point) type.
BC1_UNORM – BC1 compressed (unsigned int) type.
BC1_SRGB – BC1 compressed (SRGB) type.
BC2_UNORM – BC2 compressed (unsigned normalized) type.
BC2_SRGB – BC2 compressed (SRGB) type.
BC3_UNORM – BC3 compressed (unsigned normalized) type.
BC3_SRGB – BC3 compressed (SRGB) type.
BC4_UNORM – BC4 compressed (unsigned normalized) type.
BC4_SNORM – BC4 compressed (signed normalized) type.
BC5_UNORM – BC5 compressed (unsigned normalized) type.
BC5_SNORM – BC5 compressed (signed normalized) type.
BC6_UNSIGNED – BC6 compressed (unsigned) type.
BC6_SIGNED – BC6 compressed (signed) type.
BC7_UNORM – BC7 compressed (unsigned normalized) type.
BC7_SRGB – BC7 compressed (SRGB) type.

ResourceState

An enumeration for resource states.
CommonResource = 0x0 – Common resource state.
VertexBufferResource = 0x1 << 0 – Vertex buffer resource state.
ConstantBufferResource = 0x1 << 1 – Constant buffer resource state.
IndexBufferResource = 0x1 << 2 – Index buffer resource state.
RenderTargetResource = 0x1 << 3 – Render target resource state.
UnorderedAccess = 0x1 << 4 – Unordered access resource state.
DepthWrite = 0x1 << 5 – Depth write resource state.
DepthRead = 0x1 << 6 – Depth read resource state.
NonPixelShaderResource = 0x1 << 7 – Non-pixel shader resource state.
PixelShaderResource = 0x1 << 8 – Pixel shader resource state.
IndirectArgument = 0x1 << 9 – Indirect argument resource state.
CopyDest = 0x1 << 10 – Copy destination resource state.
CopySource = 0x1 << 11 – Copy source resource state.
ResolveDest = 0x1 << 12 – Resolve destination resource state.
ResolveSource = 0x1 << 13 – Resolve source resource state.
RTAccelerationStruct = 0x1 << 14 – Ray tracing acceleration structure resource state.
ShadingRateSource = 0x1 << 15 – Shading rate source resource state.
GenericRead = 0x1 << 16 – Generic read resource state.
Present = 0x1 << 17 – Present resource state.
DepthShaderResource = DepthRead | NonPixelShaderResource | PixelShaderResource – Depth shader resource state.
ShaderResource = NonPixelShaderResource | PixelShaderResource – Shader resource (general) state.

ResourceViewHeapType

An enumeration for resource view heap types.
GPUResourceView = 0 – GPU resource view type.
CPUResourceView – CPU resource view type.
CPURenderView – CPU render view type (renter targets).
CPUDepthView – CPU depth view type (depth targets).
GPUSamplerView – GPU sampler view types (samplers).
Count – Resource view heap type count.

ResourceViewType

An enumeration for resource view types.
CBV = 0 – Constant buffer view type.
TextureSRV – Texture shader resource view type.
BufferSRV – Buffer shader resource view type.
TextureUAV – Texture unordered access view type.
BufferUAV – Buffer unordered access view type.
RTV – Render target view type.
DSV – Depth stencil view type.
Sampler – Sampler view type.
Count – Resource view type count.
Invalid = 0xffffffff – Invalid resource view type (used for initializations)

ShaderBindStage

An enumeration for shader binding stages.
Unassigned = 0 – Unassigned (default).
Vertex = 1 << 0 – Vertex shader binding.
Pixel = 1 << 1 – Pixel shader binding.
Compute = 1 << 2 – Compute shader binding.
VertexAndPixel = Vertex | Pixel – Vertex and Pixel shader binding.

ShaderModel

An enumeration for shader stage Note, need to also update the JSON config enums in Framework.cpp when this changes Note2, need to also update defines strings in shaderbuild_win.cpp.
SM5_1 = 0 – default basic hsls support.
SM6_0 – wave intrinsics & 64-integers for arithmetic.
SM6_1 – SV_ViewID, barycentric semantics, and GetAttributeAtVertex.
SM6_2 – float16 support (instead of minfloat16) and denorm mode selection.
SM6_3 – DXR support.
SM6_4 – low-precision packed dot product, library sub-object support for RT.
SM6_5 – DXR 1.1, Sampler Feedback, Mesh and Amplification shaders, and more wave intrinsics.
SM6_6 – New Atomic operations, Dynamic Resources, Helper Lane Detection, Compute derivatives, new Pack/Unpack intrinsics, WaveSize, RT payload access qualifiers.
SM6_7 – Expanded texture fetching, quad querying, and wave capabilities.
SM6_8 – Work Graphs.

ShaderStage

An enumeration for shader stage.
Vertex = 0 – Shader vertex stage.
Pixel – Shader pixel stage.
Hull – Shader hull stage.
Domain – Shader domain stage.
Geometry – Shader geometry stage.
Compute – Shader compute stage.

ShadingRate

An enumeration for shading rate modes.
ShadingRate_1X1 = ((uint32_t)ShadingRate1D::ShadingRate1D_1X << 3 ) | (uint32_t)ShadingRate1D::ShadingRate1D_1X – 1×1 shading rate.
ShadingRate_1X2 = ((uint32_t)ShadingRate1D::ShadingRate1D_1X << 3 ) | (uint32_t)ShadingRate1D::ShadingRate1D_2X – 1×2 shading rate.
ShadingRate_1X4 = ((uint32_t)ShadingRate1D::ShadingRate1D_1X << 3 ) | (uint32_t)ShadingRate1D::ShadingRate1D_4X – 1×4 shading rate.
ShadingRate_2X1 = ((uint32_t)ShadingRate1D::ShadingRate1D_2X << 3 ) | (uint32_t)ShadingRate1D::ShadingRate1D_1X – 2×1 shading rate.
ShadingRate_2X2 = ((uint32_t)ShadingRate1D::ShadingRate1D_2X << 3 ) | (uint32_t)ShadingRate1D::ShadingRate1D_2X – 2×2 shading rate.
ShadingRate_2X4 = ((uint32_t)ShadingRate1D::ShadingRate1D_2X << 3 ) | (uint32_t)ShadingRate1D::ShadingRate1D_4X – 2×4 shading rate.
ShadingRate_4X1 = ((uint32_t)ShadingRate1D::ShadingRate1D_4X << 3 ) | (uint32_t)ShadingRate1D::ShadingRate1D_1X – 4×1 shading rate.
ShadingRate_4X2 = ((uint32_t)ShadingRate1D::ShadingRate1D_4X << 3 ) | (uint32_t)ShadingRate1D::ShadingRate1D_2X – 4×2 shading rate.
ShadingRate_4X4 = ((uint32_t)ShadingRate1D::ShadingRate1D_4X << 3 ) | (uint32_t)ShadingRate1D::ShadingRate1D_4X – 4×4 shading rate.

ShadingRate1D

An enumeration for 1 dimensional shading rates.
ShadingRate1D_1X = 1 << 0 – 1×1 shading rate.
ShadingRate1D_2X = 1 << 1 – 1×2 shading rate.
ShadingRate1D_4X = 1 << 2 – 1×4 shading rate.

ShadingRateCombiner

An enumeration for shading rate combiners.
ShadingRateCombiner_Passthrough = 1 << 0 – Pass through.
ShadingRateCombiner_Override = 1 << 1 – Override.
ShadingRateCombiner_Min = 1 << 2 – Minimum.
ShadingRateCombiner_Max = 1 << 3 – Maximum.
ShadingRateCombiner_Sum = 1 << 4 – Sum.
ShadingRateCombiner_Mul = 1 << 5 – Multiply.

ShadowMapResolution

An enumeration for shadow map resolution occupancy.
Full = 1 – Shadow map entry occupies full shadow map resolution.
Half = 2 – Shadow map entry occupies half the shadow map resolution.
Quarter = 4 – Shadow map entry occupies a quarter of the shadow map resolution.
Eighth = 8 – Shadow map entry occupies an eighth of the shadow map resolution.

StencilOp

An enumeration for stencil operations.
Zero = 0 – Set stencil buffer entry to 0.
Keep – Do not update the stencil buffer entry.
Replace – Replace the stencil buffer entry with a specified value.
IncrementSat – Increment the stencil buffer entry. Clamp to maximum value.
DecrementSat – Decrement the stencil buffer entry. Clamp to minimum value.
Invert – Invert the stencil buffer entry.
Increment – Increment the stencil buffer entry. Wrap to zero.
Decrement – Decrement the stencil buffer entry. Wrap to maximum value.

TextureClass

An enumeration of supported texture class types.
Albedo = 0 – Texture represents albedo data.
Normal – Texture represents normal data.
Emissive – Texture represents emissive data.
Occlusion – Texture represents occlusion data.
MetalRough – Texture represents metal-rough data.
SpecGloss – Texture represents spec-gloss data.
Count – Number of texture classes.

TextureDimension

An enumeration for texture dimension.
Unknown = 0 – Unknown texture dimension.
Texture1D – 1D texture dimension.
Texture2D – 2D texture dimension.
Texture3D – 3D texture dimension.
CubeMap – Cubed texture dimension.

UpscalerState

An enumeration for upscaler state.
None = 0 – No upscaling.
PreUpscale – Currently in pre-upscale state.
PostUpscale – Currently in post-upscale state.

VariableShadingMode

An enumeration for variable shading mode.
VariableShadingMode_None = 0 – No variable rate shading.
VariableShadingMode_Per_Draw – Per-draw variable rate shading.
VariableShadingMode_Image – Image-based variable rate shading.

VertexAttributeFlag

An enumeration for vertex attribute flags (convenience masks built from “VertexAttributeType“)
VertexAttributeFlag_Position = 0x1 << static_cast<uint32_t>(VertexAttributeType::Position)
VertexAttributeFlag_Normal = 0x1 << static_cast<uint32_t>(VertexAttributeType::Normal)
VertexAttributeFlag_Tangent = 0x1 << static_cast<uint32_t>(VertexAttributeType::Tangent)
VertexAttributeFlag_Texcoord0 = 0x1 << static_cast<uint32_t>(VertexAttributeType::Texcoord0)
VertexAttributeFlag_Texcoord1 = 0x1 << static_cast<uint32_t>(VertexAttributeType::Texcoord1)
VertexAttributeFlag_Color0 = 0x1 << static_cast<uint32_t>(VertexAttributeType::Color0)
VertexAttributeFlag_Color1 = 0x1 << static_cast<uint32_t>(VertexAttributeType::Color1)
VertexAttributeFlag_Weights0 = 0x1 << static_cast<uint32_t>(VertexAttributeType::Weights0)
VertexAttributeFlag_Weights1 = 0x1 << static_cast<uint32_t>(VertexAttributeType::Weights1)
VertexAttributeFlag_Joints0 = 0x1 << static_cast<uint32_t>(VertexAttributeType::Joints0)
VertexAttributeFlag_Joints1 = 0x1 << static_cast<uint32_t>(VertexAttributeType::Joints1)
VertexAttributeFlag_PreviousPosition = 0x1 << static_cast<uint32_t>(VertexAttributeType::PreviousPosition)

VertexAttributeType

An enumeration for vertex attribute types.
Position = 0 – Position vertex attribute.
Normal – Normal vertex attribute.
Tangent – Tangent vertex attribute.
Texcoord0 – Texcoord0 vertex attribute.
Texcoord1 – Texcoord1 vertex attribute.
Color0 – Color0 vertex attribute.
Color1 – Color1 vertex attribute.
Weights0 – Weights0 (blend weights) vertex attribute.
Weights1 – Weights1 (blend weights) vertex attribute.
Joints0 – Joint0 (blend indices) vertex attribute.
Joints1 – Joint1 (blend indices) vertex attribute.
PreviousPosition – PreviousPosition vertex attribute.
Count – Vertex attribute count.

ViewDimension

An enumeration for resource view dimensions.
Unknown = 0 – View dimension for unknown resource.
Buffer – View dimension for buffer resource.
Texture1D – View dimension for 1D texture resource.
Texture1DArray – View dimension for 1D texture array resource.
Texture2D – View dimension for 2D texture resource.
Texture2DArray – View dimension for 2D texture array resource.
Texture2DMS – View dimension for 2D multi-sampled texture resource.
Texture2DMSArray – View dimension for 2D texture multi-sampled array resource.
Texture3D – View dimension for 3D texture resource.
TextureCube – View dimension for cube map resource.
TextureCubeArray – View dimension for cube map array resource.
RTAccelerationStruct – View dimension for rt acceleration structure resource.

Structs

Name

Description

AllocationBlock

A structure representing an allocation block used to upload CPU-side memory to a GPU resource.

AnimInterpolants

Represents animation interpolation data for a specific frame of animation

AnimationSkin

Represents an Animation Skin data for a specific mesh

Barrier

A structure encapsulating information needed for resource barrier execution.

BindingDesc

Structure representing a binding description for resource binding.

BlendDesc

Structure representing the blend description needed for a pipeline object.

BufferAddressInfo

A structure representing buffer addressing information used to bind buffer resources to the GPU. Private implementations can be found under each API/Platform folder.

BufferCopyDesc

A structure representing buffer copy job description used to copy buffer resources on the GPU. Private implementations can be found under each API/Platform folder.

BufferDesc

A buffer description structure used to create buffer resources. Provides convenience functions for creating buffer descriptions of all supported types of buffers.

Cell

An structure represnting a shadow cell entry.

DepthDesc

Structure representing the depth description needed for a pipeline object.

EmitterDesc

Structure representing the needed information for the creation of particle emitters.

FeatureInfo_VRS

A structure holding Variable Shading Rate feature information.

HDRMetadata

A structure holding HDR meta data.

IndexBufferInformation

Structure representing the index buffer information.

InputLayoutDesc

Structure representing the input layout description for a single vertex attribute. Needed for a pipeline object.

OptionalTransparencyOptions

A structure representing optional shader instructions and targets to apply to translucency pipelines.

ParticleSpawnerDesc

Structure representing the needed information for the creation of particle spawners.

PipelineDesc

The description used to build a pipeline object.

ProfileCapture

Profiling capture identification structure.

RasterDesc

Structure representing the rasterization description needed for a pipeline object.

Rect

A structure representing a rect (quad) construct.

ResolutionInfo

A structure holding resolution information.

ResourceViewInfo

A structure representing resource view information used to bind resources to the GPU. Private implementations can be found under each API/Platform folder.

RootSignatureDesc

The description structure used to construct “FidelityFX Cauldron Framework“ ‘s “RootSignature“

SamplerDesc

A structure representing a sampler description.

ShaderBlobDesc

A structure representing shader blob description information.

ShaderBuildDesc

A structure representing shader build description information.

SkinningData

Stores all the skins and skinning matrices for animated meshes

StencilDesc

Structure representing the stencil description needed for a pipeline object.

TextureCopyDesc

A structure representing texture copy job description used to copy texture resources on the GPU. Private implementations can be found under each API/Platform folder.

TextureDesc

A structure representing a texture description.

TextureInfo

Structure representing the needed information for the usage of a material texture.

TimingInfo

Structure holding the information of a timing capture.

TransferInfo

A structure representing data transfer information. Is backed by an allocation block.

VariableShadingRateInfo

A structure representing variable shading rate information.

VertexBufferInformation

Structure representing the vertex buffer information for a vertex data stream (component channel).

Viewport

A structure representing a viewport construct.

Classes

Name

Description

ASInstance

The Acceleration Structure instance representation stored in the acceleration structure manager.

ASManager

The Acceleration Structure manager used to update and build various rt acceleration structures.

AnimChannel

An animation channel represents a single channel of an Animation.

Animation

Holds all high level information related to an animation instance.

BLAS

The FidelityFX Cauldron Framework api/platform-agnostic representation of the Bottom Level Acceleration Structure.

Buffer

The FidelityFX Cauldron Framework api/platform-agnostic representation of a buffer gpu resource.

CPUScopedProfileCapture

Convenience class to perform scoped CPU profiling captures.

CommandList

The FidelityFX Cauldron Framework api/platform-agnostic representation of a command list.

CopyResource

Copy resources are used to prime GPU resources with data (copied over via the Copy queue).

Device

The FidelityFX Cauldron Framework api/platform-agnostic representation of the rendering device.

GBufferRenderModule

The GBuffer render module is responsible for rendering the gbuffer for all loaded scene entities.

GPUParticleRenderModule

The GPUParticlesRenderModule is responsible for spawning and simulating all entities with ParticleSpawnerComponents.

GPUResource

The FidelityFX Cauldron Framework api/platform-agnostic representation of a GPU resource.

GPUScopedProfileCapture

Convenience class to perform scoped GPU profiling captures.

IndirectWorkload

A structure encapsulating an indirect workload to execute.

LightingRenderModule

The lighting render module is responsible rendering deferred lighting from the gbuffer information.

Material

The FidelityFX Cauldron Framework material representation.

Mesh

The FidelityFX Cauldron Framework mesh representation.

ParameterSet

The parameter sets are how resource binding is handled in FidelityFX Cauldron Framework.

ParticleSystem

Represents a run-time particle spawning system as defined by a ParticleSpawnerDesc.

PipelineObject

The FidelityFX Cauldron Framework pipeline object instance used to execute GPU workloads.

Profiler

The FidelityFX Cauldron Framework representation of the CPU/GPU profiler.

RasterShadowRenderModule

The raster shadow render module is responsible for rendering all rasterized shadow geometry.

RasterView

The FidelityFX Cauldron Framework representation of a rasterization resource view.

RasterViewAllocator

Allocator used for the creation of RasterView instances.

RenderModule

The FidelityFX Cauldron Framework render module base class.

RenderModuleFactory

Factory class for RenderModule registration and creation.

ResourceResizedListener

Convenience class to help constructs register for resize event notifications.

ResourceView

The FidelityFX Cauldron Framework api/platform-agnostic representation of the resource view.

ResourceViewAllocator

The FidelityFX Cauldron Framework api/platform-agnostic representation of the resource view allocator.

RootSignature

The FidelityFX Cauldron Framework api/platform-agnostic representation of the root signature.

Sampler

The FidelityFX Cauldron Framework api/platform-agnostic representation of the sampler resource.

ScopedProfileCapture

Convenience class to perform scoped GPU and CPU profiling captures.

ScopedProfileCaptureBase

Convenience calss to perform scoped profiling captures.

ShadowMapAtlas

The FidelityFX Cauldron Framework shadow map atlas representation.

ShadowMapResourcePool

The FidelityFX Cauldron Framework shadow map resource pool.

SkyDomeRenderModule

The sky dome render module is responsible for rendering the set ibl map to background or to generate a procedural sky.

Surface

The FidelityFX Cauldron Framework surface representation.

SwapChain

The FidelityFX Cauldron Framework api/platform-agnostic representation of the swapchain object.

SwapChainRenderTarget

The FidelityFX Cauldron Framework api/platform-agnostic representation of a swap chain render target resource.

TAARenderModule

The TAA render module is responsible for performing the Temporal Anti-Aliasing GPU work when included.

TLAS

The FidelityFX Cauldron Framework api/platform-agnostic representation of the Top Level Acceleration Structure.

Texture

The FidelityFX Cauldron Framework api/platform-agnostic representation of a texture resource.

TranslucencyRenderModule

The Translucency render module is responsible for rendering all translucent geometry and particles in a sorted (back to front) manner.

UploadContext

The FidelityFX Cauldron Framework api/platform-agnostic representation of an upload context.

UploadHeap

The FidelityFX Cauldron Framework api/platform-agnostic representation of the upload heap.

Functions

Return type

Description

const void*

cauldron::GetInterpolant (const AnimInterpolants * pInterpolant, int32_t index)
Gets the “AnimInterpolants“ for the given index (frame)

int32_t

cauldron::FindClosestInterpolant ( const AnimInterpolants * pInterpolant, float value )
Gets the closest “AnimInterpolants“ for the given animation value.

void

cauldron::FillDisplaySpecificPrimaries ( float xw, float yw, float xr, float yr, float xg, float yg, float xb, float yb )
Fills the ColorSpace_Display entry with the provided primaries.

void

cauldron::SetupGamutMapperMatrices ( ColorSpace gamutIn, ColorSpace gamutOut, Mat4 * inputToOutputRecMatrix )
Calculates conversion matrix to to transform RGB values from one gamut to another. gamutIn is colorspace to convert from and gamutOut is target colourspace to convert to.

void

Set all resource view heaps to the CommandList.

void

Closes the CommandList.

void

cauldron::ResourceBarrier ( CommandList * pCmdList, uint32_t barrierCount, const Barrier * pBarriers )
Submits 1 (or more) resource barriers.

void

cauldron::CopyTextureRegion ( CommandList * pCmdList, const TextureCopyDesc * pCopyDesc )
Copy texture data from one resource to another.

void

cauldron::CopyBufferRegion ( CommandList * pCmdList, const BufferCopyDesc * pCopyDesc )
Copy buffer data from one resource to another.

void

cauldron::ClearRenderTarget ( CommandList * pCmdList, const ResourceViewInfo * pRendertargetView, const float clearColor[4] )
Clears a render target with the specified value.

void

cauldron::ClearDepthStencil ( CommandList * pCmdList, const ResourceViewInfo * pDepthStencilView, uint8_t stencilValue )
Clears a depth(/stencil) target with the specified value.

void

cauldron::ClearUAVFloat ( CommandList * pCmdList, const GPUResource * pResource, const ResourceViewInfo * pGPUView, const ResourceViewInfo * pCPUView, float clearColor[4] )
Clears a resource with the specified value.

void

cauldron::ClearUAVUInt ( CommandList * pCmdList, const GPUResource * pResource, const ResourceViewInfo * pGPUView, const ResourceViewInfo * pCPUView, uint32_t clearColor[4] )
Clears a resource with the specified value.

void

cauldron::BeginRaster ( CommandList * pCmdList, uint32_t numRasterViews, const RasterView ** pRasterViews, const RasterView * pDepthView = nullptr, const VariableShadingRateInfo * pVrsInfo = nullptr )
Begins rasterization workload submission to the CommandList.

void

cauldron::BeginRaster ( CommandList * pCmdList, uint32_t numColorViews, const ResourceViewInfo * pColorViews, const ResourceViewInfo * pDepthView = nullptr, const VariableShadingRateInfo * pVrsInfo = nullptr )
Begins rasterization workload submission to the CommandList.

void

cauldron::SetRenderTargets ( CommandList * pCmdList, uint32_t numRasterViews, const ResourceViewInfo * pRasterViews, const ResourceViewInfo * pDepthView = nullptr )
Binds the rendertarget/depth views to the GPU for rendering.

void

cauldron::EndRaster ( CommandList * pCmdList, const VariableShadingRateInfo * pVrsInfo = nullptr )
Ends rasterization workload submissions to the CommandList.

void

cauldron::SetViewport (CommandList * pCmdList, Viewport * pViewport)
Sets a viewport for rasterization work.

void

cauldron::SetScissorRects ( CommandList * pCmdList, uint32_t numRects, Rect * pRectList )
Sets the scissor rect for rasterization work.

void

cauldron::SetViewportScissorRect ( CommandList * pCmdList, uint32_t left, uint32_t top, uint32_t width, uint32_t height, float nearDist, float farDist )
Convenience function to set both viewport and scissor rect through a single call.

void

Set the pipeline object to use for Draw/Dispatch.

void

cauldron::SetPrimitiveTopology ( CommandList * pCmdList, PrimitiveTopology topology )
Sets the primitive topology to use on rasterization workloads.

void

cauldron::SetVertexBuffers ( CommandList * pCmdList, uint32_t startSlot, uint32_t numBuffers, BufferAddressInfo * pVertexBufferView )
Sets a vertex buffer for rasterization work.

void

cauldron::SetIndexBuffer ( CommandList * pCmdList, BufferAddressInfo * pIndexBufferView )
Sets an index buffer for rasterization work.

void

cauldron::DrawInstanced ( CommandList * pCmdList, uint32_t vertexCountPerInstance, uint32_t instanceCount = 1, uint32_t startVertex = 0, uint32_t startInstance = 0 )
Instanced draw function.

void

cauldron::DrawIndexedInstanced ( CommandList * pCmdList, uint32_t indexCountPerInstance, uint32_t instanceCount = 1, uint32_t startIndex = 0, uint32_t baseVertex = 0, uint32_t startInstance = 0 )
Instanced drawindexed function.

void

cauldron::ExecuteIndirect ( CommandList * pCmdList, IndirectWorkload * pIndirectWorkload, const Buffer * pArgumentBuffer, uint32_t drawCount, uint32_t offset )
Executes indirect workloads.

void

cauldron::Dispatch ( CommandList * pCmdList, uint32_t numGroupX, uint32_t numGroupY, uint32_t numGroupZ )
Dispatches GPU workloads.

void

cauldron::WriteBufferImmediate ( CommandList * pCmdList, const GPUResource * pResource, uint32_t numParams, const uint32_t* offsets, const uint32_t* values )
Does immediate writes to buffer resources.

void

cauldron::WriteBreadcrumbsMarker ( Device * pDevice, CommandList * pCmdList, Buffer * pBuffer, uint64_t gpuAddress, uint32_t value, bool isBegin )
Writes AMD FidelityFX Breadcrumbs Library marker to specified GPU locations.

void

cauldron::SetShadingRate ( CommandList * pCmdList, const ShadingRate shadingRate, const ShadingRateCombiner * combiners, const GPUResource * pShadingRateImage = nullptr )
Sets the shading rate to use for rasterization workloads.

int

Initializes the shader compilation system.

void

Terminates the shader compilation system.

void*

cauldron::CompileShaderToByteCode ( const ShaderBuildDesc & shaderDesc, std::vector<const wchar_t*>* pAdditionalParameters = nullptr )
Compiles the shader description to byte code.

void

cauldron::AddTextureToDefineList ( DefineList & defineList, uint32_t& attributes, const uint32_t surfaceAttributes, const Material * pMaterial, const TextureClass textureClass, const wchar_t* pTextureKey, const wchar_t* pTexCoordKey )
Helpers to construct the defines for the shader Adds the texcoord support.

size_t

cauldron::Hash ( DefineList & defineList, uint32_t usedAttributes, const Surface * pSurface )
Helper function to construct hash from defines and attributes in a geometric shader.

Macros

Name

Description

MAX_PUSH_CONSTANTS_ENTRIES 512

Maximum number of supported push-type entries.

Detailed description

FidelityFX Cauldron Framework Render reference documentation.

Typedefs

DeviceRemovedCallback

Copied!

typedef void (*cauldron::DeviceRemovedCallback )(void *customData)

Callback to be used when detecting device removed error while presenting the frame.


DefineList

Copied!

typedef std::map<const std::wstring, std::wstring> cauldron::DefineList

DefineList, holds pairs of key & value that will be used by the compiler as defines.


Global variables

Copied!

static const int cauldron::g_maxParticles = 400* 1024

Global functions

GetInterpolant

Copied!

const void* cauldron::GetInterpolant (
    const AnimInterpolants * pInterpolant,
    int32_t index
)

Gets the AnimInterpolants for the given index (frame)

Parameters:

pInterpolant

The animation interpolants to read from.

index

The index of frame of the data to fetch.

Returns:

A pointer to the offsetted interpolant data.


FindClosestInterpolant

Copied!

int32_t cauldron::FindClosestInterpolant (
    const AnimInterpolants * pInterpolant,
    float value
)

Gets the closest AnimInterpolants for the given animation value.

Parameters:

pInterpolant

The animation interpolants to read from.

value

The value (time) at which to get nearest interpolated data from.

Returns:

The index of the closest interpolant data to the desired value.


FillDisplaySpecificPrimaries

Copied!

void cauldron::FillDisplaySpecificPrimaries (
    float xw,
    float yw,
    float xr,
    float yr,
    float xg,
    float yg,
    float xb,
    float yb
)

Fills the ColorSpace_Display entry with the provided primaries.


SetupGamutMapperMatrices

Copied!

void cauldron::SetupGamutMapperMatrices (
    ColorSpace  gamutIn,
    ColorSpace  gamutOut,
    Mat4 * inputToOutputRecMatrix
)

Calculates conversion matrix to to transform RGB values from one gamut to another. gamutIn is colorspace to convert from and gamutOut is target colourspace to convert to.


SetAllResourceViewHeaps

Copied!

void cauldron::SetAllResourceViewHeaps (
    CommandList * pCmdList,
    ResourceViewAllocator * pAllocator = nullptr
)

Set all resource view heaps to the CommandList.


CloseCmdList

Copied!

void cauldron::CloseCmdList (CommandList * pCmdList)

Closes the CommandList.


ResourceBarrier

Copied!

void cauldron::ResourceBarrier (
    CommandList * pCmdList,
    uint32_t barrierCount,
    const Barrier * pBarriers
)

Submits 1 (or more) resource barriers.


CopyTextureRegion

Copied!

void cauldron::CopyTextureRegion (
    CommandList * pCmdList,
    const TextureCopyDesc * pCopyDesc
)

Copy texture data from one resource to another.


CopyBufferRegion

Copied!

void cauldron::CopyBufferRegion (
    CommandList * pCmdList,
    const BufferCopyDesc * pCopyDesc
)

Copy buffer data from one resource to another.


ClearRenderTarget

Copied!

void cauldron::ClearRenderTarget (
    CommandList * pCmdList,
    const ResourceViewInfo * pRendertargetView,
    const float clearColor[4]
)

Clears a render target with the specified value.


ClearDepthStencil

Copied!

void cauldron::ClearDepthStencil (
    CommandList * pCmdList,
    const ResourceViewInfo * pDepthStencilView,
    uint8_t stencilValue
)

Clears a depth(/stencil) target with the specified value.


ClearUAVFloat

Copied!

void cauldron::ClearUAVFloat (
    CommandList * pCmdList,
    const GPUResource * pResource,
    const ResourceViewInfo * pGPUView,
    const ResourceViewInfo * pCPUView,
    float clearColor[4]
)

Clears a resource with the specified value.


ClearUAVUInt

Copied!

void cauldron::ClearUAVUInt (
    CommandList * pCmdList,
    const GPUResource * pResource,
    const ResourceViewInfo * pGPUView,
    const ResourceViewInfo * pCPUView,
    uint32_t clearColor[4]
)

Clears a resource with the specified value.


BeginRaster

Copied!

void cauldron::BeginRaster (
    CommandList * pCmdList,
    uint32_t numRasterViews,
    const RasterView ** pRasterViews,
    const RasterView * pDepthView = nullptr,
    const VariableShadingRateInfo * pVrsInfo = nullptr
)

Begins rasterization workload submission to the CommandList.


BeginRaster

Copied!

void cauldron::BeginRaster (
    CommandList * pCmdList,
    uint32_t numColorViews,
    const ResourceViewInfo * pColorViews,
    const ResourceViewInfo * pDepthView = nullptr,
    const VariableShadingRateInfo * pVrsInfo = nullptr
)

Begins rasterization workload submission to the CommandList.


SetRenderTargets

Copied!

void cauldron::SetRenderTargets (
    CommandList * pCmdList,
    uint32_t numRasterViews,
    const ResourceViewInfo * pRasterViews,
    const ResourceViewInfo * pDepthView = nullptr
)

Binds the rendertarget/depth views to the GPU for rendering.


EndRaster

Copied!

void cauldron::EndRaster (
    CommandList * pCmdList,
    const VariableShadingRateInfo * pVrsInfo = nullptr
)

Ends rasterization workload submissions to the CommandList.


SetViewport

Copied!

void cauldron::SetViewport (CommandList * pCmdList, Viewport * pViewport)

Sets a viewport for rasterization work.


SetScissorRects

Copied!

void cauldron::SetScissorRects (
    CommandList * pCmdList,
    uint32_t numRects,
    Rect * pRectList
)

Sets the scissor rect for rasterization work.


SetViewportScissorRect

Copied!

void cauldron::SetViewportScissorRect (
    CommandList * pCmdList,
    uint32_t left,
    uint32_t top,
    uint32_t width,
    uint32_t height,
    float nearDist,
    float farDist
)

Convenience function to set both viewport and scissor rect through a single call.


SetPipelineState

Copied!

void cauldron::SetPipelineState (
    CommandList * pCmdList,
    PipelineObject * pPipeline
)

Set the pipeline object to use for Draw/Dispatch.


SetPrimitiveTopology

Copied!

void cauldron::SetPrimitiveTopology (
    CommandList * pCmdList,
    PrimitiveTopology  topology
)

Sets the primitive topology to use on rasterization workloads.


SetVertexBuffers

Copied!

void cauldron::SetVertexBuffers (
    CommandList * pCmdList,
    uint32_t startSlot,
    uint32_t numBuffers,
    BufferAddressInfo * pVertexBufferView
)

Sets a vertex buffer for rasterization work.


SetIndexBuffer

Copied!

void cauldron::SetIndexBuffer (
    CommandList * pCmdList,
    BufferAddressInfo * pIndexBufferView
)

Sets an index buffer for rasterization work.


DrawInstanced

Copied!

void cauldron::DrawInstanced (
    CommandList * pCmdList,
    uint32_t vertexCountPerInstance,
    uint32_t instanceCount = 1,
    uint32_t startVertex = 0,
    uint32_t startInstance = 0
)

Instanced draw function.


DrawIndexedInstanced

Copied!

void cauldron::DrawIndexedInstanced (
    CommandList * pCmdList,
    uint32_t indexCountPerInstance,
    uint32_t instanceCount = 1,
    uint32_t startIndex = 0,
    uint32_t baseVertex = 0,
    uint32_t startInstance = 0
)

Instanced drawindexed function.


ExecuteIndirect

Copied!

void cauldron::ExecuteIndirect (
    CommandList * pCmdList,
    IndirectWorkload * pIndirectWorkload,
    const Buffer * pArgumentBuffer,
    uint32_t drawCount,
    uint32_t offset
)

Executes indirect workloads.


Dispatch

Copied!

void cauldron::Dispatch (
    CommandList * pCmdList,
    uint32_t numGroupX,
    uint32_t numGroupY,
    uint32_t numGroupZ
)

Dispatches GPU workloads.


WriteBufferImmediate

Copied!

void cauldron::WriteBufferImmediate (
    CommandList * pCmdList,
    const GPUResource * pResource,
    uint32_t numParams,
    const uint32_t* offsets,
    const uint32_t* values
)

Does immediate writes to buffer resources.


WriteBreadcrumbsMarker

Copied!

void cauldron::WriteBreadcrumbsMarker (
    Device * pDevice,
    CommandList * pCmdList,
    Buffer * pBuffer,
    uint64_t gpuAddress,
    uint32_t value,
    bool isBegin
)

Writes AMD FidelityFX Breadcrumbs Library marker to specified GPU locations.


SetShadingRate

Copied!

void cauldron::SetShadingRate (
    CommandList * pCmdList,
    const ShadingRate  shadingRate,
    const ShadingRateCombiner * combiners,
    const GPUResource * pShadingRateImage = nullptr
)

Sets the shading rate to use for rasterization workloads.


InitShaderCompileSystem

Copied!

int cauldron::InitShaderCompileSystem ()

Initializes the shader compilation system.


TerminateShaderCompileSystem

Copied!

void cauldron::TerminateShaderCompileSystem ()

Terminates the shader compilation system.


CompileShaderToByteCode

Copied!

void* cauldron::CompileShaderToByteCode (
    const ShaderBuildDesc & shaderDesc,
    std::vector<const wchar_t*>* pAdditionalParameters = nullptr
)

Compiles the shader description to byte code.


AddTextureToDefineList

Copied!

void cauldron::AddTextureToDefineList (
    DefineList & defineList,
    uint32_t& attributes,
    const uint32_t surfaceAttributes,
    const Material * pMaterial,
    const TextureClass  textureClass,
    const wchar_t* pTextureKey,
    const wchar_t* pTexCoordKey
)

Helpers to construct the defines for the shader Adds the texcoord support.


Hash

Copied!

size_t cauldron::Hash (
    DefineList & defineList,
    uint32_t usedAttributes,
    const Surface * pSurface
)

Helper function to construct hash from defines and attributes in a geometric shader.


Macros

MAX_PUSH_CONSTANTS_ENTRIES

Copied!

#define MAX_PUSH_CONSTANTS_ENTRIES 512

Maximum number of supported push-type entries.