From a730e3b5baa208b7a152800b2323db6be88ad243 Mon Sep 17 00:00:00 2001 From: assiduous Date: Tue, 23 Feb 2021 21:49:04 -0800 Subject: Replaced InitializeStaticResources and InitializeStaticResourcesWithSignature methods of IShaderResourceBinding with IPipelineState::InitializeStaticSRBResources and IPipelineResourceSignature::InitializeStaticSRBResources --- .../include/PipelineResourceSignatureD3D12Impl.hpp | 4 +++- .../include/ShaderResourceBindingD3D12Impl.hpp | 2 -- .../src/PipelineResourceSignatureD3D12Impl.cpp | 14 ++++++++++++-- .../src/ShaderResourceBindingD3D12Impl.cpp | 10 ---------- 4 files changed, 15 insertions(+), 15 deletions(-) (limited to 'Graphics/GraphicsEngineD3D12') 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(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(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(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(pResourceSignature); - pPRSD3D12->InitializeStaticSRBResources(m_ShaderResourceCache); - m_bStaticResourcesInitialized = true; -} - } // namespace Diligent -- cgit v1.2.3