summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineD3D12
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2021-02-24 05:49:04 +0000
committerassiduous <assiduous@diligentgraphics.com>2021-03-19 00:38:10 +0000
commita730e3b5baa208b7a152800b2323db6be88ad243 (patch)
treeb7aef0227512709034177105208daaedfd85c1d3 /Graphics/GraphicsEngineD3D12
parentReworked ShaderResourceBindingVkImpl and ShaderResourceBindingD3D12Impl: move... (diff)
downloadDiligentCore-a730e3b5baa208b7a152800b2323db6be88ad243.tar.gz
DiligentCore-a730e3b5baa208b7a152800b2323db6be88ad243.zip
Replaced InitializeStaticResources and InitializeStaticResourcesWithSignature methods of IShaderResourceBinding with IPipelineState::InitializeStaticSRBResources and IPipelineResourceSignature::InitializeStaticSRBResources
Diffstat (limited to 'Graphics/GraphicsEngineD3D12')
-rw-r--r--Graphics/GraphicsEngineD3D12/include/PipelineResourceSignatureD3D12Impl.hpp4
-rw-r--r--Graphics/GraphicsEngineD3D12/include/ShaderResourceBindingD3D12Impl.hpp2
-rw-r--r--Graphics/GraphicsEngineD3D12/src/PipelineResourceSignatureD3D12Impl.cpp14
-rw-r--r--Graphics/GraphicsEngineD3D12/src/ShaderResourceBindingD3D12Impl.cpp10
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