BlurRenderModule
Navigation: Samples → Effect samples → FidelityFX 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) overrideInitialize UI, also the FFX API Context and the other “conventional” blur effects.
Parameters:
| Name | Type | Default |
|---|---|---|
initData | const json & | “ |
Attributes: virtual
Source: samples/blur/blurrendermodule.h (line 80, column 10)
Execute
virtual void Execute(double deltaTime, cauldron::CommandList *pCmdList) overrideExecute the currently selected blur effect or execute the comparison mode shaders.
Parameters:
| Name | Type | Default |
|---|---|---|
deltaTime | double | “ |
pCmdList | cauldron::CommandList * | “ |
Attributes: virtual
Source: samples/blur/blurrendermodule.h (line 85, column 10)
OnResize
virtual void OnResize(const cauldron::ResolutionInfo &resInfo) overrideCalled by the framework when resolution changes.
Parameters:
| Name | Type | Default |
|---|---|---|
resInfo | const 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:
| Name | Type | Default |
|---|---|---|
computeShaderFilename | const 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:
| Name | Type | Default |
|---|---|---|
ppSigmas | const wchar_t ** | “ |
sigmasCount | size_t | “ |
ppKernelSizes | const wchar_t ** | “ |
kernelSizesCount | size_t | “ |
comparisonFiltersComputeShader | const 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:
| Name | Type | Default |
|---|---|---|
ppSigmas | const wchar_t ** | “ |
sigmasCount | size_t | “ |
ppKernelSizes | const wchar_t ** | “ |
kernelSizesCount | size_t | “ |
comparisonFiltersComputeShader | const 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:
| Name | Type | Default |
|---|---|---|
ppSigmas | const wchar_t ** | “ |
sigmasCount | size_t | “ |
ppKernelSizes | const wchar_t ** | “ |
kernelSizesCount | size_t | “ |
comparisonFiltersComputeShader | const 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:
| Name | Type | Default |
|---|---|---|
pRootSignature | cauldron::RootSignature * | “ |
pipelineName | const std::wstring & | “ |
shaderFile | const std::wstring & | “ |
entryFunc | const std::wstring & | “ |
defines | cauldron::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:
| Name | Type | Default |
|---|---|---|
pCmdList | cauldron::CommandList * | “ |
pProfile | const wchar_t * | “ |
pParamSet | cauldron::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:
| Name | Type | Default |
|---|---|---|
pCmdList | cauldron::CommandList * | “ |
pProfile | const wchar_t * | “ |
pParameterSet | cauldron::ParameterSet * | “ |
kernelPerm | int32_t | “ |
kernelSize | int32_t | “ |
floatPrecision | FfxBlurFloatPrecision | “ |
Source: samples/blur/blurrendermodule.h (line 219, column 10)
ExecuteMultiPassFilter
void ExecuteMultiPassFilter(cauldron::CommandList *pCmdList, const wchar_t *pProfile, ParameterSetPair ¶mSets, int32_t kernelPerm, int32_t kernelSize, FfxBlurFloatPrecision floatPrecision)Parameters:
| Name | Type | Default |
|---|---|---|
pCmdList | cauldron::CommandList * | “ |
pProfile | const wchar_t * | “ |
paramSets | ParameterSetPair & | “ |
kernelPerm | int32_t | “ |
kernelSize | int32_t | “ |
floatPrecision | FfxBlurFloatPrecision | “ |
Source: samples/blur/blurrendermodule.h (line 228, column 10)
ExecuteMultiPassTransposeFilter
void ExecuteMultiPassTransposeFilter(cauldron::CommandList *pCmdList, const wchar_t *pProfile, ParameterSetPair ¶mSets, int32_t kernelPerm, int32_t kernelSize, FfxBlurFloatPrecision floatPrecision)Parameters:
| Name | Type | Default |
|---|---|---|
pCmdList | cauldron::CommandList * | “ |
pProfile | const wchar_t * | “ |
paramSets | ParameterSetPair & | “ |
kernelPerm | int32_t | “ |
kernelSize | int32_t | “ |
floatPrecision | FfxBlurFloatPrecision | “ |
Source: samples/blur/blurrendermodule.h (line 235, column 10)
ExecuteTwoPassFilter
void ExecuteTwoPassFilter(cauldron::CommandList *pCmdList, cauldron::PipelineObject *pPass1PipelineSet, cauldron::PipelineObject *pPass2PipelineSet, ParameterSetPair ¶mSets, const cauldron::Texture *pPass1Output)Parameters:
| Name | Type | Default |
|---|---|---|
pCmdList | cauldron::CommandList * | “ |
pPass1PipelineSet | cauldron::PipelineObject * | “ |
pPass2PipelineSet | cauldron::PipelineObject * | “ |
paramSets | ParameterSetPair & | “ |
pPass1Output | const 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:
| Name | Type | Default |
|---|---|---|
pCmdList | cauldron::CommandList * | “ |
pProfile | const wchar_t * | “ |
blurContext | FfxBlurContext & | “ |
inputOutputPair | const TexturePair & | “ |
kernelPermutation | FfxBlurKernelPermutation | “ |
kernelSize | FfxBlurKernelSize | “ |
Source: samples/blur/blurrendermodule.h (line 250, column 10)
UpdateConstants
void UpdateConstants(uint32_t width, uint32_t height, cauldron::ParameterSet *pParameterSet)Parameters:
| Name | Type | Default |
|---|---|---|
width | uint32_t | “ |
height | uint32_t | “ |
pParameterSet | cauldron::ParameterSet * | “ |
Source: samples/blur/blurrendermodule.h (line 257, column 10)
ExecuteComparisonPass
void ExecuteComparisonPass(cauldron::CommandList *pCmdList)Parameters:
| Name | Type | Default |
|---|---|---|
pCmdList | cauldron::CommandList * | “ |
Source: samples/blur/blurrendermodule.h (line 266, column 10)
Variables
size_t m_KernelSizesCount
size_t m_KernelSizesCount = = 0uAttributes: private
Source: samples/blur/blurrendermodule.h (line 135, column 12)
int32_t m_CurrentAlgorithm1
int32_t m_CurrentAlgorithm1 = = 1Attributes: private
Source: samples/blur/blurrendermodule.h (line 137, column 13)
int32_t m_CurrentGaussianSigma1
int32_t m_CurrentGaussianSigma1 = = 2Attributes: private
Source: samples/blur/blurrendermodule.h (line 138, column 13)
int32_t m_CurrentKernelSize1
int32_t m_CurrentKernelSize1 = = 6Attributes: private
Source: samples/blur/blurrendermodule.h (line 139, column 13)
int32_t m_CurrentFpMath1
int32_t m_CurrentFpMath1 = = 1Attributes: 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 = = falseAttributes: 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 = = falseAttributes: private
Source: samples/blur/blurrendermodule.h (line 147, column 20)
int32_t m_CurrentAlgorithm2
int32_t m_CurrentAlgorithm2 = = 1Attributes: private
Source: samples/blur/blurrendermodule.h (line 150, column 13)
int32_t m_CurrentGaussianSigma2
int32_t m_CurrentGaussianSigma2 = = 1Attributes: private
Source: samples/blur/blurrendermodule.h (line 151, column 13)
int32_t m_CurrentKernelSize2
int32_t m_CurrentKernelSize2 = = 2Attributes: private
Source: samples/blur/blurrendermodule.h (line 152, column 13)
int32_t m_CurrentFpMath2
int32_t m_CurrentFpMath2 = = 1Attributes: private
Source: samples/blur/blurrendermodule.h (line 153, column 13)
cauldron::RootSignature * m_pFilterPipelineRootSig
cauldron::RootSignature * m_pFilterPipelineRootSig = = nullptrAttributes: private
Source: samples/blur/blurrendermodule.h (line 155, column 29)
cauldron::PipelineObject * m_pPassThroughPipeline
cauldron::PipelineObject * m_pPassThroughPipeline = = nullptrAttributes: private
Source: samples/blur/blurrendermodule.h (line 157, column 43)
std::vector<cauldron::PipelineObject *> m_SinglePassBoxFilterPipelinesFp32
std::vector<cauldron::PipelineObject *> m_SinglePassBoxFilterPipelinesFp32Attributes: private
Source: samples/blur/blurrendermodule.h (line 158, column 17)
std::vector<cauldron::PipelineObject *> m_SinglePassBoxFilterPipelinesFp16
std::vector<cauldron::PipelineObject *> m_SinglePassBoxFilterPipelinesFp16Attributes: private
Source: samples/blur/blurrendermodule.h (line 159, column 17)
std::vector<cauldron::PipelineObject *> m_MultiPassSeparableFilterPipelinesFp32
std::vector<cauldron::PipelineObject *> m_MultiPassSeparableFilterPipelinesFp32Attributes: private
Source: samples/blur/blurrendermodule.h (line 160, column 17)
std::vector<cauldron::PipelineObject *> m_MultiPassSeparableFilterPipelinesFp16
std::vector<cauldron::PipelineObject *> m_MultiPassSeparableFilterPipelinesFp16Attributes: private
Source: samples/blur/blurrendermodule.h (line 161, column 17)
std::vector<cauldron::PipelineObject *> m_MultiPassSeparableTransposeFilterPipelinesFp32
std::vector<cauldron::PipelineObject *> m_MultiPassSeparableTransposeFilterPipelinesFp32Attributes: private
Source: samples/blur/blurrendermodule.h (line 162, column 17)
std::vector<cauldron::PipelineObject *> m_MultiPassSeparableTransposeFilterPipelinesFp16
std::vector<cauldron::PipelineObject *> m_MultiPassSeparableTransposeFilterPipelinesFp16Attributes: private
Source: samples/blur/blurrendermodule.h (line 163, column 17)
ParameterSets m_SinglePassParams
ParameterSets m_SinglePassParamsAttributes: private
Source: samples/blur/blurrendermodule.h (line 175, column 19)
MultiPassParameterSets m_MultiPassParams
MultiPassParameterSets m_MultiPassParamsAttributes: private
Source: samples/blur/blurrendermodule.h (line 191, column 28)
MultiPassParameterSets m_MultiPassTransposeParams
MultiPassParameterSets m_MultiPassTransposeParamsAttributes: private
Source: samples/blur/blurrendermodule.h (line 192, column 28)
cauldron::RootSignature * m_pComparisonPipelineRootSig
cauldron::RootSignature * m_pComparisonPipelineRootSig = = nullptrAttributes: private
Source: samples/blur/blurrendermodule.h (line 194, column 30)
cauldron::PipelineObject * m_pComparisonPipeline
cauldron::PipelineObject * m_pComparisonPipeline = = nullptrAttributes: private
Source: samples/blur/blurrendermodule.h (line 195, column 30)
cauldron::ParameterSet * m_pComparisonPipelineParams
cauldron::ParameterSet * m_pComparisonPipelineParams = = nullptrAttributes: private
Source: samples/blur/blurrendermodule.h (line 196, column 30)
bool m_ComparisonModeEnabled
bool m_ComparisonModeEnabled = = falseAttributes: private
Source: samples/blur/blurrendermodule.h (line 198, column 10)
bool m_EnableFilterOptions1
bool m_EnableFilterOptions1 = = trueAttributes: private
Source: samples/blur/blurrendermodule.h (line 199, column 10)
bool m_EnableFilterOptions2
bool m_EnableFilterOptions2 = = falseAttributes: private
Source: samples/blur/blurrendermodule.h (line 200, column 10)
bool m_RebuildShaders
bool m_RebuildShaders = = falseAttributes: private
Source: samples/blur/blurrendermodule.h (line 201, column 10)
const cauldron::Texture * m_pInput
const cauldron::Texture * m_pInput = = nullptrAttributes: private
Source: samples/blur/blurrendermodule.h (line 203, column 29)
const cauldron::Texture * m_pPass1Output
const cauldron::Texture * m_pPass1Output = = nullptrAttributes: private
Source: samples/blur/blurrendermodule.h (line 204, column 29)
const cauldron::Texture * m_pTransposePass1Output
const cauldron::Texture * m_pTransposePass1Output = = nullptrAttributes: private
Source: samples/blur/blurrendermodule.h (line 205, column 29)
const cauldron::Texture * m_pOutput
const cauldron::Texture * m_pOutput = = nullptrAttributes: private
Source: samples/blur/blurrendermodule.h (line 206, column 29)
const cauldron::Texture * m_pComparisonOutput1
const cauldron::Texture * m_pComparisonOutput1 = = nullptrAttributes: private
Source: samples/blur/blurrendermodule.h (line 208, column 29)
const cauldron::Texture * m_pComparisonOutput2
const cauldron::Texture * m_pComparisonOutput2 = = nullptrAttributes: private
Source: samples/blur/blurrendermodule.h (line 209, column 29)
float m_DiffFactor
float m_DiffFactor = = 1.0fAttributes: 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 AlgorithmValues:
NONE
NONE = 0FIDELITYFX_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