Skip to content

BlurRenderModule

Navigation: SamplesEffect samplesFidelityFX Blur sample

BlurRenderModule

BlurRenderModule reference documentation.

Functions

BlurRenderModule

BlurRenderModule()

Constructor with default behavior.

Source: samples/blur/blurrendermodule.h (line 71, column 5)

~BlurRenderModule

virtual ~BlurRenderModule()

Tear down the FFX API Context and release all resources.

Attributes: virtual

Source: samples/blur/blurrendermodule.h (line 75, column 13)

Init

virtual void Init(const json &initData) override

Initialize UI, also the FFX API Context and the other “conventional” blur effects.

Parameters:

NameTypeDefault
initDataconst json &

Attributes: virtual

Source: samples/blur/blurrendermodule.h (line 80, column 10)

Execute

virtual void Execute(double deltaTime, cauldron::CommandList *pCmdList) override

Execute the currently selected blur effect or execute the comparison mode shaders.

Parameters:

NameTypeDefault
deltaTimedouble
pCmdListcauldron::CommandList *

Attributes: virtual

Source: samples/blur/blurrendermodule.h (line 85, column 10)

OnResize

virtual void OnResize(const cauldron::ResolutionInfo &resInfo) override

Called by the framework when resolution changes.

Parameters:

NameTypeDefault
resInfoconst cauldron::ResolutionInfo &

Attributes: virtual

Source: samples/blur/blurrendermodule.h (line 90, column 10)

InitFfxBackend

void InitFfxBackend()

Create and initialize m_BackendInterface.

Source: samples/blur/blurrendermodule.h (line 107, column 10)

InitTextures

void InitTextures()

Create and initialize textures required for blur and comparison mode effects.

Source: samples/blur/blurrendermodule.h (line 111, column 10)

InitPipelines

void InitPipelines()

Create and initialize all of the blur compute pipelines and the comparison mode compute pipeline.

Source: samples/blur/blurrendermodule.h (line 115, column 10)

CreatePassThroughPipeline

void CreatePassThroughPipeline(const wchar_t *computeShaderFilename)

Parameters:

NameTypeDefault
computeShaderFilenameconst wchar_t *

Source: samples/blur/blurrendermodule.h (line 117, column 10)

CreateSinglePassBoxFilterPipelines

void CreateSinglePassBoxFilterPipelines(const wchar_t **ppSigmas, size_t sigmasCount, const wchar_t **ppKernelSizes, size_t kernelSizesCount, const wchar_t *comparisonFiltersComputeShader)

Parameters:

NameTypeDefault
ppSigmasconst wchar_t **
sigmasCountsize_t
ppKernelSizesconst wchar_t **
kernelSizesCountsize_t
comparisonFiltersComputeShaderconst wchar_t *

Source: samples/blur/blurrendermodule.h (line 118, column 10)

CreateMultiPassSeparableFilterPipelines

void CreateMultiPassSeparableFilterPipelines(const wchar_t **ppSigmas, size_t sigmasCount, const wchar_t **ppKernelSizes, size_t kernelSizesCount, const wchar_t *comparisonFiltersComputeShader)

Parameters:

NameTypeDefault
ppSigmasconst wchar_t **
sigmasCountsize_t
ppKernelSizesconst wchar_t **
kernelSizesCountsize_t
comparisonFiltersComputeShaderconst wchar_t *

Source: samples/blur/blurrendermodule.h (line 120, column 10)

CreateMultiPassSeparableTransposeFilterPipelines

void CreateMultiPassSeparableTransposeFilterPipelines(const wchar_t **ppSigmas, size_t sigmasCount, const wchar_t **ppKernelSizes, size_t kernelSizesCount, const wchar_t *comparisonFiltersComputeShader)

Parameters:

NameTypeDefault
ppSigmasconst wchar_t **
sigmasCountsize_t
ppKernelSizesconst wchar_t **
kernelSizesCountsize_t
comparisonFiltersComputeShaderconst wchar_t *

Source: samples/blur/blurrendermodule.h (line 122, column 10)

CreatePipeline

cauldron::PipelineObject * CreatePipeline(cauldron::RootSignature *pRootSignature, const std::wstring &pipelineName, const std::wstring &shaderFile, const std::wstring &entryFunc, cauldron::DefineList &defines)

Parameters:

NameTypeDefault
pRootSignaturecauldron::RootSignature *
pipelineNameconst std::wstring &
shaderFileconst std::wstring &
entryFuncconst std::wstring &
definescauldron::DefineList &

Returns: cauldron::PipelineObject *

Source: samples/blur/blurrendermodule.h (line 125, column 30)

CreateBlurContexts

void CreateBlurContexts()

Source: samples/blur/blurrendermodule.h (line 132, column 10)

DestroyBlurContexts

void DestroyBlurContexts()

Source: samples/blur/blurrendermodule.h (line 133, column 10)

ExecutePassThrough

void ExecutePassThrough(cauldron::CommandList *pCmdList, const wchar_t *pProfile, cauldron::ParameterSet *pParamSet)

Parameters:

NameTypeDefault
pCmdListcauldron::CommandList *
pProfileconst wchar_t *
pParamSetcauldron::ParameterSet *

Source: samples/blur/blurrendermodule.h (line 217, column 10)

ExecuteSinglePassBoxFilter

void ExecuteSinglePassBoxFilter(cauldron::CommandList *pCmdList, const wchar_t *pProfile, cauldron::ParameterSet *pParameterSet, int32_t kernelPerm, int32_t kernelSize, FfxBlurFloatPrecision floatPrecision)

Parameters:

NameTypeDefault
pCmdListcauldron::CommandList *
pProfileconst wchar_t *
pParameterSetcauldron::ParameterSet *
kernelPermint32_t
kernelSizeint32_t
floatPrecisionFfxBlurFloatPrecision

Source: samples/blur/blurrendermodule.h (line 219, column 10)

ExecuteMultiPassFilter

void ExecuteMultiPassFilter(cauldron::CommandList *pCmdList, const wchar_t *pProfile, ParameterSetPair &paramSets, int32_t kernelPerm, int32_t kernelSize, FfxBlurFloatPrecision floatPrecision)

Parameters:

NameTypeDefault
pCmdListcauldron::CommandList *
pProfileconst wchar_t *
paramSetsParameterSetPair &
kernelPermint32_t
kernelSizeint32_t
floatPrecisionFfxBlurFloatPrecision

Source: samples/blur/blurrendermodule.h (line 228, column 10)

ExecuteMultiPassTransposeFilter

void ExecuteMultiPassTransposeFilter(cauldron::CommandList *pCmdList, const wchar_t *pProfile, ParameterSetPair &paramSets, int32_t kernelPerm, int32_t kernelSize, FfxBlurFloatPrecision floatPrecision)

Parameters:

NameTypeDefault
pCmdListcauldron::CommandList *
pProfileconst wchar_t *
paramSetsParameterSetPair &
kernelPermint32_t
kernelSizeint32_t
floatPrecisionFfxBlurFloatPrecision

Source: samples/blur/blurrendermodule.h (line 235, column 10)

ExecuteTwoPassFilter

void ExecuteTwoPassFilter(cauldron::CommandList *pCmdList, cauldron::PipelineObject *pPass1PipelineSet, cauldron::PipelineObject *pPass2PipelineSet, ParameterSetPair &paramSets, const cauldron::Texture *pPass1Output)

Parameters:

NameTypeDefault
pCmdListcauldron::CommandList *
pPass1PipelineSetcauldron::PipelineObject *
pPass2PipelineSetcauldron::PipelineObject *
paramSetsParameterSetPair &
pPass1Outputconst cauldron::Texture *

Source: samples/blur/blurrendermodule.h (line 242, column 10)

ExecuteBlurEffect

void ExecuteBlurEffect(cauldron::CommandList *pCmdList, const wchar_t *pProfile, FfxBlurContext &blurContext, const TexturePair &inputOutputPair, FfxBlurKernelPermutation kernelPermutation, FfxBlurKernelSize kernelSize)

Parameters:

NameTypeDefault
pCmdListcauldron::CommandList *
pProfileconst wchar_t *
blurContextFfxBlurContext &
inputOutputPairconst TexturePair &
kernelPermutationFfxBlurKernelPermutation
kernelSizeFfxBlurKernelSize

Source: samples/blur/blurrendermodule.h (line 250, column 10)

UpdateConstants

void UpdateConstants(uint32_t width, uint32_t height, cauldron::ParameterSet *pParameterSet)

Parameters:

NameTypeDefault
widthuint32_t
heightuint32_t
pParameterSetcauldron::ParameterSet *

Source: samples/blur/blurrendermodule.h (line 257, column 10)

ExecuteComparisonPass

void ExecuteComparisonPass(cauldron::CommandList *pCmdList)

Parameters:

NameTypeDefault
pCmdListcauldron::CommandList *

Source: samples/blur/blurrendermodule.h (line 266, column 10)

Variables

size_t m_KernelSizesCount

size_t m_KernelSizesCount = = 0u

Attributes: private

Source: samples/blur/blurrendermodule.h (line 135, column 12)

int32_t m_CurrentAlgorithm1

int32_t m_CurrentAlgorithm1 = = 1

Attributes: private

Source: samples/blur/blurrendermodule.h (line 137, column 13)

int32_t m_CurrentGaussianSigma1

int32_t m_CurrentGaussianSigma1 = = 2

Attributes: private

Source: samples/blur/blurrendermodule.h (line 138, column 13)

int32_t m_CurrentKernelSize1

int32_t m_CurrentKernelSize1 = = 6

Attributes: private

Source: samples/blur/blurrendermodule.h (line 139, column 13)

int32_t m_CurrentFpMath1

int32_t m_CurrentFpMath1 = = 1

Attributes: private

Source: samples/blur/blurrendermodule.h (line 140, column 13)

FfxInterface m_BackendInterface

FfxInterface m_BackendInterface = = {0}

Attributes: private

Source: samples/blur/blurrendermodule.h (line 142, column 18)

FfxBlurContext m_BlurContext1

FfxBlurContext m_BlurContext1 = = {}

Attributes: private

Source: samples/blur/blurrendermodule.h (line 144, column 20)

bool m_BlurContext1Created

bool m_BlurContext1Created = = false

Attributes: private

Source: samples/blur/blurrendermodule.h (line 145, column 20)

FfxBlurContext m_BlurContext2

FfxBlurContext m_BlurContext2 = = {}

Attributes: private

Source: samples/blur/blurrendermodule.h (line 146, column 20)

bool m_BlurContext2Created

bool m_BlurContext2Created = = false

Attributes: private

Source: samples/blur/blurrendermodule.h (line 147, column 20)

int32_t m_CurrentAlgorithm2

int32_t m_CurrentAlgorithm2 = = 1

Attributes: private

Source: samples/blur/blurrendermodule.h (line 150, column 13)

int32_t m_CurrentGaussianSigma2

int32_t m_CurrentGaussianSigma2 = = 1

Attributes: private

Source: samples/blur/blurrendermodule.h (line 151, column 13)

int32_t m_CurrentKernelSize2

int32_t m_CurrentKernelSize2 = = 2

Attributes: private

Source: samples/blur/blurrendermodule.h (line 152, column 13)

int32_t m_CurrentFpMath2

int32_t m_CurrentFpMath2 = = 1

Attributes: private

Source: samples/blur/blurrendermodule.h (line 153, column 13)

cauldron::RootSignature * m_pFilterPipelineRootSig

cauldron::RootSignature * m_pFilterPipelineRootSig = = nullptr

Attributes: private

Source: samples/blur/blurrendermodule.h (line 155, column 29)

cauldron::PipelineObject * m_pPassThroughPipeline

cauldron::PipelineObject * m_pPassThroughPipeline = = nullptr

Attributes: private

Source: samples/blur/blurrendermodule.h (line 157, column 43)

std::vector<cauldron::PipelineObject *> m_SinglePassBoxFilterPipelinesFp32

std::vector<cauldron::PipelineObject *> m_SinglePassBoxFilterPipelinesFp32

Attributes: private

Source: samples/blur/blurrendermodule.h (line 158, column 17)

std::vector<cauldron::PipelineObject *> m_SinglePassBoxFilterPipelinesFp16

std::vector<cauldron::PipelineObject *> m_SinglePassBoxFilterPipelinesFp16

Attributes: private

Source: samples/blur/blurrendermodule.h (line 159, column 17)

std::vector<cauldron::PipelineObject *> m_MultiPassSeparableFilterPipelinesFp32

std::vector<cauldron::PipelineObject *> m_MultiPassSeparableFilterPipelinesFp32

Attributes: private

Source: samples/blur/blurrendermodule.h (line 160, column 17)

std::vector<cauldron::PipelineObject *> m_MultiPassSeparableFilterPipelinesFp16

std::vector<cauldron::PipelineObject *> m_MultiPassSeparableFilterPipelinesFp16

Attributes: private

Source: samples/blur/blurrendermodule.h (line 161, column 17)

std::vector<cauldron::PipelineObject *> m_MultiPassSeparableTransposeFilterPipelinesFp32

std::vector<cauldron::PipelineObject *> m_MultiPassSeparableTransposeFilterPipelinesFp32

Attributes: private

Source: samples/blur/blurrendermodule.h (line 162, column 17)

std::vector<cauldron::PipelineObject *> m_MultiPassSeparableTransposeFilterPipelinesFp16

std::vector<cauldron::PipelineObject *> m_MultiPassSeparableTransposeFilterPipelinesFp16

Attributes: private

Source: samples/blur/blurrendermodule.h (line 163, column 17)

ParameterSets m_SinglePassParams

ParameterSets m_SinglePassParams

Attributes: private

Source: samples/blur/blurrendermodule.h (line 175, column 19)

MultiPassParameterSets m_MultiPassParams

MultiPassParameterSets m_MultiPassParams

Attributes: private

Source: samples/blur/blurrendermodule.h (line 191, column 28)

MultiPassParameterSets m_MultiPassTransposeParams

MultiPassParameterSets m_MultiPassTransposeParams

Attributes: private

Source: samples/blur/blurrendermodule.h (line 192, column 28)

cauldron::RootSignature * m_pComparisonPipelineRootSig

cauldron::RootSignature * m_pComparisonPipelineRootSig = = nullptr

Attributes: private

Source: samples/blur/blurrendermodule.h (line 194, column 30)

cauldron::PipelineObject * m_pComparisonPipeline

cauldron::PipelineObject * m_pComparisonPipeline = = nullptr

Attributes: private

Source: samples/blur/blurrendermodule.h (line 195, column 30)

cauldron::ParameterSet * m_pComparisonPipelineParams

cauldron::ParameterSet * m_pComparisonPipelineParams = = nullptr

Attributes: private

Source: samples/blur/blurrendermodule.h (line 196, column 30)

bool m_ComparisonModeEnabled

bool m_ComparisonModeEnabled = = false

Attributes: private

Source: samples/blur/blurrendermodule.h (line 198, column 10)

bool m_EnableFilterOptions1

bool m_EnableFilterOptions1 = = true

Attributes: private

Source: samples/blur/blurrendermodule.h (line 199, column 10)

bool m_EnableFilterOptions2

bool m_EnableFilterOptions2 = = false

Attributes: private

Source: samples/blur/blurrendermodule.h (line 200, column 10)

bool m_RebuildShaders

bool m_RebuildShaders = = false

Attributes: private

Source: samples/blur/blurrendermodule.h (line 201, column 10)

const cauldron::Texture * m_pInput

const cauldron::Texture * m_pInput = = nullptr

Attributes: private

Source: samples/blur/blurrendermodule.h (line 203, column 29)

const cauldron::Texture * m_pPass1Output

const cauldron::Texture * m_pPass1Output = = nullptr

Attributes: private

Source: samples/blur/blurrendermodule.h (line 204, column 29)

const cauldron::Texture * m_pTransposePass1Output

const cauldron::Texture * m_pTransposePass1Output = = nullptr

Attributes: private

Source: samples/blur/blurrendermodule.h (line 205, column 29)

const cauldron::Texture * m_pOutput

const cauldron::Texture * m_pOutput = = nullptr

Attributes: private

Source: samples/blur/blurrendermodule.h (line 206, column 29)

const cauldron::Texture * m_pComparisonOutput1

const cauldron::Texture * m_pComparisonOutput1 = = nullptr

Attributes: private

Source: samples/blur/blurrendermodule.h (line 208, column 29)

const cauldron::Texture * m_pComparisonOutput2

const cauldron::Texture * m_pComparisonOutput2 = = nullptr

Attributes: private

Source: samples/blur/blurrendermodule.h (line 209, column 29)

float m_DiffFactor

float m_DiffFactor = = 1.0f

Attributes: private

Source: samples/blur/blurrendermodule.h (line 265, column 11)

Typedefs

ParameterSetPair

using BlurRenderModule::ParameterSetPair = std::pair<cauldron::ParameterSet*, cauldron::ParameterSet*>

Source: samples/blur/blurrendermodule.h (line 226, column 5)

TexturePair

using BlurRenderModule::TexturePair = std::pair<const cauldron::Texture*, const cauldron::Texture*>

Source: samples/blur/blurrendermodule.h (line 248, column 5)

Enumerations

Algorithm

enum Algorithm

Values:

NONE

NONE = 0

FIDELITYFX_BLUR_GAUSSIAN

SINGLE_PASS_BOX_FILTER

MULTI_PASS_SEPARABLE_FILTER

MULTI_PASS_SEPARABLE_FILTER_TRANSPOSE

NUM_GAUSSIAN_BLUR_ALGORITHMS

Source: samples/blur/blurrendermodule.h (line 94, column 5)

Dependencies: FfxBlurContext, FfxInterface