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) override
Initialize 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) override
Execute 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) override
Called 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 = = 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