PipelineDesc

The description used to build a pipeline object.

File location: framework/cauldron/framework/inc/render/pipelinedesc.h

Construction

Return type

Description

Construction, implemented per api/platform.
PipelineDesc (PipelineDesc&&)
PipelineDesc (const PipelineDesc&&)

Methods

Return type

Description

void

Add a shader to the pipeline description.

void

Add a shader blob to the pipeline description.

void

AddRasterFormats ( const ResourceFormat & rtFormat, const ResourceFormat depthFormat = ResourceFormat::Unknown )
Add the format of the render targets.

void

AddRasterFormats ( const std::vector<ResourceFormat >& rtFormats, const ResourceFormat depthFormat = ResourceFormat::Unknown )

PipelineDescInternal*

Gets the internal implementation for api/platform parameter accessors.

const PipelineDescInternal*

GetImpl () const

PipelineDesc&

operator = (PipelineDesc&&)
Move assignment overload, implemented per api/platform.

PipelineDesc&

operator = (const PipelineDesc&&)

void

SetRootSignature (RootSignature * pRootSignature)
Set the root signature for the pipeline.

void

AddShaders (std::vector<const wchar_t*>* pAdditionalParameters = nullptr)
Add shaders (and build them) when ready.

void

AddInputLayout (std::vector<InputLayoutDesc >& inputLayouts)
Define an input layout for the pipeline object (with manual information).

void

Add Rasterization state information (For Graphics Pipeline Objects).

void

AddRenderTargetFormats ( const uint32_t numColorFormats, const ResourceFormat * pColorFormats, const ResourceFormat depthStencilFormat )
Add the format of the render targets.

void

AddBlendStates ( const std::vector<BlendDesc >& blendDescs, bool alphaToCoverage, bool independentBlend )
Adds the blend states of the render targets.

void

AddDepthState (const DepthDesc * pDepthDesc)
Adds the depth state.

void

AddPrimitiveTopology (PrimitiveTopologyType topologyType)
Add primitive topology information (For Graphics Pipeline Objects).

void

SetWave64 (bool isWave64)
Set Wave64 for this pipeline.

PipelineType

GetPipelineType () const

Detailed description

The description used to build a pipeline object. The minimal requirements for a PipelineDesc is a RootSignature and a Shader (for compute) By default, the graphics pipeline desc will build with the following attributes:

  • No Depth Target

  • No Input Layout

  • Solid Fill and BackFace culling

  • No multisampling and 0 depth bias values

  • No blending

  • Depth disabled

  • Triangle topology

Data fields

Type

Description

static constexpr uint32_t

s_MaxRenderTargets
Limit the number of render targets to 8.

std::vector<ShaderBuildDesc >

m_ShaderDescriptions
Shader build descriptions (builds shaders from string or file source).

std::vector<ShaderBlobDesc >

m_ShaderBlobDescriptions
Shader build descriptions (builds shaders from shader binary blob).

bool

m_IsWave64
Sets this pipeline to operate with Wave64 if the shader blob doesn’t have this information yet.

PipelineType

m_PipelineType
The pipeline type (compute or graphics).

PipelineDescInternal*

m_PipelineImpl
Internal implementation details set per api/platform.

Construction

PipelineDesc

Copied!

PipelineDesc ()

Construction, implemented per api/platform.


Methods

AddShaderDesc

Copied!

void AddShaderDesc (ShaderBuildDesc & shaderDesc)

Add a shader to the pipeline description.


AddShaderBlobDesc

Copied!

void AddShaderBlobDesc (ShaderBlobDesc & shaderBlobDesc)

Add a shader blob to the pipeline description.


AddRasterFormats

Copied!

void AddRasterFormats (
    const ResourceFormat & rtFormat,
    const ResourceFormat  depthFormat = ResourceFormat::Unknown
)

Add the format of the render targets.


GetImpl

Copied!

PipelineDescInternal* GetImpl ()

Gets the internal implementation for api/platform parameter accessors.


operator=

Copied!

PipelineDesc& operator =  (PipelineDesc&&)

Move assignment overload, implemented per api/platform.


SetRootSignature

Copied!

void SetRootSignature (RootSignature * pRootSignature)

Set the root signature for the pipeline.


AddShaders

Copied!

void AddShaders (std::vector<const wchar_t*>* pAdditionalParameters = nullptr)

Add shaders (and build them) when ready.


AddInputLayout

Copied!

void AddInputLayout (std::vector<InputLayoutDesc >& inputLayouts)

Define an input layout for the pipeline object (with manual information).


AddRasterStateDescription

Copied!

void AddRasterStateDescription (RasterDesc * pRasterDesc)

Add Rasterization state information (For Graphics Pipeline Objects).


AddRenderTargetFormats

Copied!

void AddRenderTargetFormats (
    const uint32_t numColorFormats,
    const ResourceFormat * pColorFormats,
    const ResourceFormat  depthStencilFormat
)

Add the format of the render targets.


AddBlendStates

Copied!

void AddBlendStates (
    const std::vector<BlendDesc >& blendDescs,
    bool alphaToCoverage,
    bool independentBlend
)

Adds the blend states of the render targets.


AddDepthState

Copied!

void AddDepthState (const DepthDesc * pDepthDesc)

Adds the depth state.


AddPrimitiveTopology

Copied!

void AddPrimitiveTopology (PrimitiveTopologyType  topologyType)

Add primitive topology information (For Graphics Pipeline Objects).


SetWave64

Copied!

void SetWave64 (bool isWave64)

Set Wave64 for this pipeline.