Go to the documentation of this file.
43 class ShaderResourcesD3D12;
72 #ifdef DILIGENT_DEVELOPMENT
73 using ShaderResourceCacheArrayType = std::array<ShaderResourceCacheD3D12*, MAX_RESOURCE_SIGNATURES>;
74 void DvpVerifySRBResources(
const ShaderResourceCacheArrayType& ResourceCaches)
const;
78 struct ShaderStageInfo
81 ShaderStageInfo(ShaderD3D12Impl* _pShader);
83 void Append(ShaderD3D12Impl* pShader);
87 std::vector<ShaderD3D12Impl*> Shaders;
88 std::vector<CComPtr<ID3DBlob>> ByteCodes;
92 using TShaderStages = std::vector<ShaderStageInfo>;
94 template <
typename PSOCreateInfoType>
95 void InitInternalObjects(
const PSOCreateInfoType& CreateInfo,
96 TShaderStages& ShaderStages,
97 LocalRootSignatureD3D12* pLocalRootSig =
nullptr);
100 TShaderStages& ShaderStages,
101 LocalRootSignatureD3D12* pLocalRootSig);
103 static RefCntAutoPtr<PipelineResourceSignatureD3D12Impl> CreateDefaultResourceSignature(
104 RenderDeviceD3D12Impl* pDevice,
106 TShaderStages& ShaderStages,
107 LocalRootSignatureD3D12* pLocalRootSig);
111 void ValidateShaderResources(
const ShaderD3D12Impl* pShader,
const LocalRootSignatureD3D12* pLocalRootSig);
114 CComPtr<ID3D12DeviceChild> m_pd3d12PSO;
115 RefCntAutoPtr<RootSignatureD3D12> m_RootSig;
121 #ifdef DILIGENT_DEVELOPMENT
123 std::vector<std::shared_ptr<const ShaderResourcesD3D12>> m_ShaderResources;
126 std::vector<ResourceAttribution> m_ResourceAttibutions;
virtual ID3D12RootSignature * GetD3D12RootSignature() const override final
Implementation of IPipelineStateD3D12::GetD3D12RootSignature().
Definition: PipelineStateD3D12Impl.hpp:68
Base interface for a reference counter object that stores the number of strong and weak references an...
Definition: ReferenceCounters.h:44
Graphics pipeline state creation attributes.
Definition: PipelineState.h:397
Ray tracing pipeline state description.
Definition: PipelineState.h:443
SHADER_TYPE
Describes the shader type.
Definition: GraphicsTypes.h:65
Pipeline state interface.
Definition: PipelineState.h:505
Implementation of the Diligent::RootSignature class.
Definition: RootSignature.hpp:67
~PipelineStateD3D12Impl()
Definition: PipelineStateD3D12Impl.cpp:983
virtual bool IsCompatibleWith(const IPipelineState *pPSO) const override final
Implementation of IPipelineState::IsCompatibleWith() in Direct3D12 backend.
Definition: PipelineStateD3D12Impl.cpp:1001
__forceinline SHADER_TYPE GetShaderStageType(const ShaderD3D11Impl *pShader)
Definition: PipelineStateD3D11Impl.cpp:43
Render device implementation in Direct3D12 backend.
Definition: RenderDeviceD3D12Impl.hpp:70
const RootSignatureD3D12 & GetRootSignature() const
Definition: PipelineStateD3D12Impl.hpp:70
#define IMPLEMENT_QUERY_INTERFACE_IN_PLACE(InterfaceID, ParentClassName)
Definition: ObjectBase.hpp:59
#define DILIGENT_CALL_TYPE
Definition: CommonDefinitions.h:45
const D3D12_PIPELINE_STATE_SUBOBJECT_TYPE Type
Definition: PipelineStateD3D12Impl.cpp:69
Compute pipeline state description.
Definition: PipelineState.h:427
virtual ID3D12StateObject * GetD3D12StateObject() const override final
Implementation of IPipelineStateD3D12::GetD3D12StateObject().
Definition: PipelineStateD3D12Impl.hpp:65
@ SHADER_TYPE_UNKNOWN
Unknown shader type.
Definition: GraphicsTypes.h:67
struct PipelineStateCreateInfo PipelineStateCreateInfo
Definition: PipelineState.h:393
PipelineStateD3D12Impl(IReferenceCounters *pRefCounters, RenderDeviceD3D12Impl *pDeviceD3D12, const GraphicsPipelineStateCreateInfo &CreateInfo)
Definition: PipelineStateD3D12Impl.cpp:691
virtual ID3D12PipelineState * GetD3D12PipelineState() const override final
Implementation of IPipelineStateD3D12::GetD3D12PipelineState().
Definition: PipelineStateD3D12Impl.hpp:62
Template class implementing base functionality of the pipeline state object.
Definition: PipelineStateBase.hpp:99
Pipeline state object implementation in Direct3D12 backend.
Definition: PipelineStateD3D12Impl.hpp:46
The library uses Direct3D-style math:
Definition: AdvancedMath.hpp:37