diff options
| author | assiduous <assiduous@diligentgraphics.com> | 2021-02-17 05:55:51 +0000 |
|---|---|---|
| committer | assiduous <assiduous@diligentgraphics.com> | 2021-03-19 00:34:30 +0000 |
| commit | 7f14bc0f8fd221a9b2c71341822fc60ffbdf4aff (patch) | |
| tree | f8720360aa4892ba0bb6c0bd7db1fe9a07e481e3 /Graphics/GraphicsEngineD3D12 | |
| parent | fixed DXBC & DXIL resource remapping (diff) | |
| download | DiligentCore-7f14bc0f8fd221a9b2c71341822fc60ffbdf4aff.tar.gz DiligentCore-7f14bc0f8fd221a9b2c71341822fc60ffbdf4aff.zip | |
Few minor updates to RootSignatureD3D12
Diffstat (limited to 'Graphics/GraphicsEngineD3D12')
| -rw-r--r-- | Graphics/GraphicsEngineD3D12/include/RootSignature.hpp | 12 | ||||
| -rw-r--r-- | Graphics/GraphicsEngineD3D12/src/RootSignature.cpp | 16 |
2 files changed, 10 insertions, 18 deletions
diff --git a/Graphics/GraphicsEngineD3D12/include/RootSignature.hpp b/Graphics/GraphicsEngineD3D12/include/RootSignature.hpp index c7a3e2c4..9bc47265 100644 --- a/Graphics/GraphicsEngineD3D12/include/RootSignature.hpp +++ b/Graphics/GraphicsEngineD3D12/include/RootSignature.hpp @@ -93,20 +93,20 @@ public: using SignatureArrayType = std::array<RefCntAutoPtr<PipelineResourceSignatureD3D12Impl>, MAX_RESOURCE_SIGNATURES>; private: - void Finalize(RenderDeviceD3D12Impl* pDeviceD3D12Impl); - std::array<Uint16, MAX_RESOURCE_SIGNATURES> m_FirstRootIndex = {}; std::array<Uint16, MAX_RESOURCE_SIGNATURES> m_FirstRegisterSpace = {}; + // The total number of register spaces used by this root signature Uint32 m_TotalSpacesUsed = 0; + // The number of resource signatures used by this root signature + // (Maximum is MAX_RESOURCE_SIGNATURES) + const Uint8 m_SignatureCount; + const size_t m_Hash; CComPtr<ID3D12RootSignature> m_pd3d12RootSignature; - // The number of resource signatures used by this root signature - // (Maximum is MAX_RESOURCE_SIGNATURES) - Uint8 m_SignatureCount = 0; - SignatureArrayType m_Signatures = {}; + SignatureArrayType m_Signatures = {}; RootSignatureCacheD3D12& m_Cache; }; diff --git a/Graphics/GraphicsEngineD3D12/src/RootSignature.cpp b/Graphics/GraphicsEngineD3D12/src/RootSignature.cpp index fd890b83..1f51f4cf 100644 --- a/Graphics/GraphicsEngineD3D12/src/RootSignature.cpp +++ b/Graphics/GraphicsEngineD3D12/src/RootSignature.cpp @@ -60,18 +60,6 @@ RootSignatureD3D12::RootSignatureD3D12(IReferenceCounters* } } - Finalize(pDeviceD3D12Impl); -} - -RootSignatureD3D12::~RootSignatureD3D12() -{ - m_Cache.OnDestroyRootSig(this); -} - -void RootSignatureD3D12::Finalize(RenderDeviceD3D12Impl* pDeviceD3D12Impl) -{ - VERIFY(m_pd3d12RootSignature == nullptr, "This root signature is already initialized"); - D3D12_ROOT_SIGNATURE_DESC rootSignatureDesc = {}; rootSignatureDesc.Flags = D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT; @@ -223,6 +211,10 @@ void RootSignatureD3D12::Finalize(RenderDeviceD3D12Impl* pDeviceD3D12Impl) CHECK_D3D_RESULT_THROW(hr, "Failed to create root signature"); } +RootSignatureD3D12::~RootSignatureD3D12() +{ + m_Cache.OnDestroyRootSig(this); +} LocalRootSignatureD3D12::LocalRootSignatureD3D12(const char* pCBName, Uint32 ShaderRecordSize) : m_pName{pCBName}, |
