template<typename EngineImplTraits>
Diligent::PipelineStateBase class

Template class implementing base functionality of the pipeline state object.

Template parameters
EngineImplTraits - Engine implementation type traits.

Base classes

template<class BaseInterface, typename RenderDeviceImplType, typename ObjectDescType>
class DeviceObjectBase<EngineImplTraits::PipelineStateInterface, EngineImplTraits::RenderDeviceImplType, PipelineStateDesc>
Template class implementing base functionality of the device object.

Constructors, destructors, conversion operators

PipelineStateBase(IReferenceCounters* pRefCounters, RenderDeviceImplType* pDevice, const GraphicsPipelineStateCreateInfo& GraphicsPipelineCI, bool bIsDeviceInternal = false)
Initializes the object as graphics pipeline.
PipelineStateBase(IReferenceCounters* pRefCounters, RenderDeviceImplType* pDevice, const ComputePipelineStateCreateInfo& ComputePipelineCI, bool bIsDeviceInternal = false)
Initializes the object as compute pipeline.
PipelineStateBase(IReferenceCounters* pRefCounters, RenderDeviceImplType* pDevice, const RayTracingPipelineStateCreateInfo& RayTracingPipelineCI, bool bIsDeviceInternal = false)
Initializes the object as ray tracing pipeline.

Public functions

auto GetResourceSignatureCount() const -> Uint32 final
Implementation of IPipelineState::GetResourceSignatureCount().
auto GetResourceSignature(Uint32 Index) const -> PipelineResourceSignatureImplType* final
Implementation of IPipelineState::GetResourceSignature().
auto IsCompatibleWith(const IPipelineState* pPSO) const -> bool override
Implementation of IPipelineState::IsCompatibleWith().

Protected types

using SignatureAutoPtrType = RefCntAutoPtr<PipelineResourceSignatureImplType>
Resource signatures arranged by their binding indices.

Protected variables

SHADER_TYPE m_ActiveShaderStages
Shader stages that are active in this PSO.
const bool m_UsingImplicitSignature
True if the pipeline was created using implicit root signature.
Uint8 m_SignatureCount
The number of signatures in m_Signatures array. Note that this is not necessarily the same as the number of signatures that were used to create the pipeline, because signatures are arranged by their binding index.

Function documentation

template<typename EngineImplTraits>
Diligent::PipelineStateBase<EngineImplTraits>::PipelineStateBase(IReferenceCounters* pRefCounters, RenderDeviceImplType* pDevice, const GraphicsPipelineStateCreateInfo& GraphicsPipelineCI, bool bIsDeviceInternal = false)

Initializes the object as graphics pipeline.

Parameters
pRefCounters - Reference counters object that controls the lifetime of this PSO
pDevice - Pointer to the device.
GraphicsPipelineCI - Graphics pipeline create information.
bIsDeviceInternal - Flag indicating if the pipeline state is an internal device object and must not keep a strong reference to the device.

template<typename EngineImplTraits>
Diligent::PipelineStateBase<EngineImplTraits>::PipelineStateBase(IReferenceCounters* pRefCounters, RenderDeviceImplType* pDevice, const ComputePipelineStateCreateInfo& ComputePipelineCI, bool bIsDeviceInternal = false)

Initializes the object as compute pipeline.

Parameters
pRefCounters - Reference counters object that controls the lifetime of this PSO
pDevice - Pointer to the device.
ComputePipelineCI - Compute pipeline create information.
bIsDeviceInternal - Flag indicating if the pipeline state is an internal device object and must not keep a strong reference to the device.

template<typename EngineImplTraits>
Diligent::PipelineStateBase<EngineImplTraits>::PipelineStateBase(IReferenceCounters* pRefCounters, RenderDeviceImplType* pDevice, const RayTracingPipelineStateCreateInfo& RayTracingPipelineCI, bool bIsDeviceInternal = false)

Initializes the object as ray tracing pipeline.

Parameters
pRefCounters - Reference counters object that controls the lifetime of this PSO
pDevice - Pointer to the device.
RayTracingPipelineCI - Ray tracing pipeline create information.
bIsDeviceInternal - Flag indicating if the pipeline state is an internal device object and must not keep a strong reference to the device.