SPDRenderModule
class SPDRenderModule : public cauldron::RenderModuleSPDRenderModule handles a number of tasks related to SPD.
SPDRenderModule takes care of: creating UI section that enable users to switch between options of SPD performs downsampling of all faces of a cubemap texture using FidelityFX SPD effect component
Dependencies: FfxSpdContext, FfxSpdContextDescription
Inherits from: public cauldron::RenderModule
Public Interface
Constructor:
SPDRenderModule
inline SPDRenderModule()Constructor with default behavior.
Attributes: inline
Source: samples/spd/spdrendermodule.h (line 76, column 5)
Destructor:
~SPDRenderModule
virtual ~SPDRenderModule()Tear down the FFX API Context and release resources.
Attributes: virtual
Source: samples/spd/spdrendermodule.h (line 81, column 13)
Public Functions:
Init
virtual void Init(const json &initData) overrideInitialize FFX API Context, load the downsampling resource, and setup UI section for SPD.
Parameters:
| Name | Type | Default |
|---|---|---|
initData | const json & | “ |
Attributes: virtual
Source: samples/spd/spdrendermodule.h (line 86, column 10)
Execute
virtual void Execute(double deltaTime, cauldron::CommandList *pCmdList) overrideSetup downsample texture and parameters FFX API needs this frame and then call the FFX Dispatch.
Parameters:
| Name | Type | Default |
|---|---|---|
deltaTime | double | “ |
pCmdList | cauldron::CommandList * | “ |
Attributes: virtual
Source: samples/spd/spdrendermodule.h (line 91, 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/spd/spdrendermodule.h (line 96, column 10)
Private Interface
Private Functions:
TextureLoadComplete
void TextureLoadComplete(const std::vector<const cauldron::Texture *> &textureList, void *)Callback for texture loading so we can complete parameter binding and mark the module “ready”.
Parameters:
| Name | Type | Default |
|---|---|---|
textureList | const std::vector<const cauldron::Texture *> & | “ |
| “ | void * | “ |
Source: samples/spd/spdrendermodule.h (line 103, column 10)
InitFfxContext
void InitFfxContext()Source: samples/spd/spdrendermodule.h (line 105, column 10)
DestroyFfxContext
void DestroyFfxContext()Source: samples/spd/spdrendermodule.h (line 106, column 10)
ExecutePSDownsample
void ExecutePSDownsample(double deltaTime, cauldron::CommandList *pCmdList)Performs traditional raster-based hierarchical downsampling via consecutive pixel shader invocations.
Parameters:
| Name | Type | Default |
|---|---|---|
deltaTime | double | “ |
pCmdList | cauldron::CommandList * | “ |
Source: samples/spd/spdrendermodule.h (line 111, column 10)
ExecuteCSDownsample
void ExecuteCSDownsample(double deltaTime, cauldron::CommandList *pCmdList)Performs traditional compute-based hierarchical downsampling via consecutive compute shader invocations.
Parameters:
| Name | Type | Default |
|---|---|---|
deltaTime | double | “ |
pCmdList | cauldron::CommandList * | “ |
Source: samples/spd/spdrendermodule.h (line 116, column 10)
ExecuteSPDDownsample
void ExecuteSPDDownsample(double deltaTime, cauldron::CommandList *pCmdList)Performs FidelityFX SPD-based downsampling via a single dispatch call.
Parameters:
| Name | Type | Default |
|---|---|---|
deltaTime | double | “ |
pCmdList | cauldron::CommandList * | “ |
Source: samples/spd/spdrendermodule.h (line 121, column 10)
ExecuteVerificationQuads
void ExecuteVerificationQuads(double deltaTime, cauldron::CommandList *pCmdList)Renders the mip-map quads to the scene for verification.
Parameters:
| Name | Type | Default |
|---|---|---|
deltaTime | double | “ |
pCmdList | cauldron::CommandList * | “ |
Source: samples/spd/spdrendermodule.h (line 126, column 10)
UpdateSPDContext
void UpdateSPDContext(bool enabled)Destroys and/or recreates FidelityFX SPD context when feature changes are made at the UI level.
Parameters:
| Name | Type | Default |
|---|---|---|
enabled | bool | “ |
Source: samples/spd/spdrendermodule.h (line 131, column 10)
InitTraditionalDSPipeline
void InitTraditionalDSPipeline(bool computeDownsample)Constructs all GPU resources (signatures, pipelines, parameter bindings) needed for comparison downsampling.
Parameters:
| Name | Type | Default |
|---|---|---|
computeDownsample | bool | “ |
Source: samples/spd/spdrendermodule.h (line 136, column 10)
InitVerificationPipeline
void InitVerificationPipeline()Constructs all GPU resources (signatures, pipelines, parameter bindings) needed to output SPD verification mips.
Source: samples/spd/spdrendermodule.h (line 141, column 10)
Private Members:
PipelineSet m_PipelineSets
PipelineSet m_PipelineSetsAttributes: private
Source: samples/spd/spdrendermodule.h (line 150, column 17)
PipelineSet m_VerificationSet
PipelineSet m_VerificationSet = = {}Attributes: private
Source: samples/spd/spdrendermodule.h (line 151, column 17)
int32_t m_DownsamplerUsed
int32_t m_DownsamplerUsed = = 2Attributes: private
Source: samples/spd/spdrendermodule.h (line 153, column 17)
int32_t m_SPDLoadLinear
int32_t m_SPDLoadLinear = = 0Attributes: private
Source: samples/spd/spdrendermodule.h (line 154, column 17)
int32_t m_SPDWaveInterop
int32_t m_SPDWaveInterop = = 0Attributes: private
Source: samples/spd/spdrendermodule.h (line 155, column 17)
int32_t m_SPDMath
int32_t m_SPDMath = = 0Attributes: private
Source: samples/spd/spdrendermodule.h (line 156, column 17)
uint32_t m_ViewSlice
uint32_t m_ViewSlice = = 0Attributes: private
Source: samples/spd/spdrendermodule.h (line 157, column 17)
std::vector<const cauldron::RasterView *> m_RasterViews
std::vector<const cauldron::RasterView *> m_RasterViews = = {}Attributes: private
Source: samples/spd/spdrendermodule.h (line 160, column 19)
const cauldron::Texture * m_pCubeTexture
const cauldron::Texture * m_pCubeTexture = = nullptrAttributes: private
Source: samples/spd/spdrendermodule.h (line 163, column 36)
cauldron::SamplerDesc m_LinearSamplerDesc
cauldron::SamplerDesc m_LinearSamplerDescAttributes: private
Source: samples/spd/spdrendermodule.h (line 164, column 37)
const cauldron::Texture * m_pColorTarget
const cauldron::Texture * m_pColorTarget = = nullptrAttributes: private
Source: samples/spd/spdrendermodule.h (line 165, column 36)
const cauldron::RasterView * m_pColorRasterView
const cauldron::RasterView * m_pColorRasterView = = nullptrAttributes: private
Source: samples/spd/spdrendermodule.h (line 166, column 36)
FfxSpdContextDescription m_InitializationParameters
FfxSpdContextDescription m_InitializationParameters = = {}Attributes: private
Source: samples/spd/spdrendermodule.h (line 169, column 30)
FfxSpdContext m_Context
FfxSpdContext m_ContextAttributes: private
Source: samples/spd/spdrendermodule.h (line 170, column 30)
bool m_ContextCreated
bool m_ContextCreated = = falseAttributes: private
Source: samples/spd/spdrendermodule.h (line 171, column 30)
Source: samples/spd/spdrendermodule.h (line 70, column 1)