diff options
| author | assiduous <assiduous@diligentgraphics.com> | 2021-02-24 05:49:04 +0000 |
|---|---|---|
| committer | assiduous <assiduous@diligentgraphics.com> | 2021-03-19 00:38:10 +0000 |
| commit | a730e3b5baa208b7a152800b2323db6be88ad243 (patch) | |
| tree | b7aef0227512709034177105208daaedfd85c1d3 /Graphics/GraphicsEngineD3D12 | |
| parent | Reworked ShaderResourceBindingVkImpl and ShaderResourceBindingD3D12Impl: move... (diff) | |
| download | DiligentCore-a730e3b5baa208b7a152800b2323db6be88ad243.tar.gz DiligentCore-a730e3b5baa208b7a152800b2323db6be88ad243.zip | |
Replaced InitializeStaticResources and InitializeStaticResourcesWithSignature methods of IShaderResourceBinding with IPipelineState::InitializeStaticSRBResources and IPipelineResourceSignature::InitializeStaticSRBResources
Diffstat (limited to 'Graphics/GraphicsEngineD3D12')
4 files changed, 15 insertions, 15 deletions
diff --git a/Graphics/GraphicsEngineD3D12/include/PipelineResourceSignatureD3D12Impl.hpp b/Graphics/GraphicsEngineD3D12/include/PipelineResourceSignatureD3D12Impl.hpp index 87960395..eb62b2ef 100644 --- a/Graphics/GraphicsEngineD3D12/include/PipelineResourceSignatureD3D12Impl.hpp +++ b/Graphics/GraphicsEngineD3D12/include/PipelineResourceSignatureD3D12Impl.hpp @@ -226,6 +226,8 @@ public: return IsCompatibleWith(*ValidatedCast<const PipelineResourceSignatureD3D12Impl>(pPRS)); } + virtual void DILIGENT_CALL_TYPE InitializeStaticSRBResources(IShaderResourceBinding* pSRB) const override final; + bool IsCompatibleWith(const PipelineResourceSignatureD3D12Impl& Other) const; bool IsIncompatibleWith(const PipelineResourceSignatureD3D12Impl& Other) const @@ -242,7 +244,7 @@ public: IMemoryAllocator& CacheMemAllocator, const char* DbgPipelineName) const; - void InitializeStaticSRBResources(ShaderResourceCacheD3D12& ResourceCache) const; + void CopyStaticResources(ShaderResourceCacheD3D12& ResourceCache) const; // Binds object pObj to resource with index ResIndex in m_Desc.Resources and // array index ArrayIndex. diff --git a/Graphics/GraphicsEngineD3D12/include/ShaderResourceBindingD3D12Impl.hpp b/Graphics/GraphicsEngineD3D12/include/ShaderResourceBindingD3D12Impl.hpp index 9a570c54..4a24603b 100644 --- a/Graphics/GraphicsEngineD3D12/include/ShaderResourceBindingD3D12Impl.hpp +++ b/Graphics/GraphicsEngineD3D12/include/ShaderResourceBindingD3D12Impl.hpp @@ -61,8 +61,6 @@ public: virtual IShaderResourceVariable* DILIGENT_CALL_TYPE GetVariableByIndex(SHADER_TYPE ShaderType, Uint32 Index) override final; - virtual void DILIGENT_CALL_TYPE InitializeStaticResourcesWithSignature(const IPipelineResourceSignature* pResourceSignature) override final; - ShaderResourceCacheD3D12& GetResourceCache() { return m_ShaderResourceCache; } private: diff --git a/Graphics/GraphicsEngineD3D12/src/PipelineResourceSignatureD3D12Impl.cpp b/Graphics/GraphicsEngineD3D12/src/PipelineResourceSignatureD3D12Impl.cpp index 3438b4b3..a90f4103 100644 --- a/Graphics/GraphicsEngineD3D12/src/PipelineResourceSignatureD3D12Impl.cpp +++ b/Graphics/GraphicsEngineD3D12/src/PipelineResourceSignatureD3D12Impl.cpp @@ -393,7 +393,7 @@ void PipelineResourceSignatureD3D12Impl::CreateShaderResourceBinding(IShaderReso auto& SRBAllocator = m_pDevice->GetSRBAllocator(); auto* pResBindingD3D12 = NEW_RC_OBJ(SRBAllocator, "ShaderResourceBindingD3D12Impl instance", ShaderResourceBindingD3D12Impl)(this); if (InitStaticResources) - pResBindingD3D12->InitializeStaticResources(nullptr); + InitializeStaticSRBResources(pResBindingD3D12); pResBindingD3D12->QueryInterface(IID_ShaderResourceBinding, reinterpret_cast<IObject**>(ppShaderResourceBinding)); } @@ -442,7 +442,17 @@ void PipelineResourceSignatureD3D12Impl::InitSRBResourceCache(ShaderResourceCach ResourceCache.Initialize(CacheMemAllocator, m_pDevice, m_RootParams); } -void PipelineResourceSignatureD3D12Impl::InitializeStaticSRBResources(ShaderResourceCacheD3D12& DstResourceCache) const +void PipelineResourceSignatureD3D12Impl::InitializeStaticSRBResources(IShaderResourceBinding* pSRB) const +{ + InitializeStaticSRBResourcesImpl(ValidatedCast<ShaderResourceBindingD3D12Impl>(pSRB), + [&](ShaderResourceBindingD3D12Impl* pSRBD3D12) // + { + CopyStaticResources(pSRBD3D12->GetResourceCache()); + } // + ); +} + +void PipelineResourceSignatureD3D12Impl::CopyStaticResources(ShaderResourceCacheD3D12& DstResourceCache) const { if (m_pStaticResCache == nullptr) return; diff --git a/Graphics/GraphicsEngineD3D12/src/ShaderResourceBindingD3D12Impl.cpp b/Graphics/GraphicsEngineD3D12/src/ShaderResourceBindingD3D12Impl.cpp index e13e6175..d96e2b4d 100644 --- a/Graphics/GraphicsEngineD3D12/src/ShaderResourceBindingD3D12Impl.cpp +++ b/Graphics/GraphicsEngineD3D12/src/ShaderResourceBindingD3D12Impl.cpp @@ -136,14 +136,4 @@ IShaderResourceVariable* ShaderResourceBindingD3D12Impl::GetVariableByIndex(SHAD return GetVariableByIndexImpl(ShaderType, Index, m_pShaderVarMgrs); } -void ShaderResourceBindingD3D12Impl::InitializeStaticResourcesWithSignature(const IPipelineResourceSignature* pResourceSignature) -{ - if (pResourceSignature == nullptr) - pResourceSignature = GetPipelineResourceSignature(); - - auto* pPRSD3D12 = ValidatedCast<const PipelineResourceSignatureD3D12Impl>(pResourceSignature); - pPRSD3D12->InitializeStaticSRBResources(m_ShaderResourceCache); - m_bStaticResourcesInitialized = true; -} - } // namespace Diligent |
