summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineD3D12
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2019-03-05 07:19:07 +0000
committerEgor Yusov <egor.yusov@gmail.com>2019-03-05 07:19:07 +0000
commitbdbca67b0e03baec3b9dd803e803d267210e892b (patch)
treeaa20e56029a30178360cd1b17f0c817f9d590daf /Graphics/GraphicsEngineD3D12
parentUpdated GL engine factory headers and structures (diff)
downloadDiligentCore-bdbca67b0e03baec3b9dd803e803d267210e892b.tar.gz
DiligentCore-bdbca67b0e03baec3b9dd803e803d267210e892b.zip
Added ShaderFlags parameter to IPipelineState::BindStaticResources
Diffstat (limited to 'Graphics/GraphicsEngineD3D12')
-rw-r--r--Graphics/GraphicsEngineD3D12/include/PipelineStateD3D12Impl.h2
-rw-r--r--Graphics/GraphicsEngineD3D12/include/ShaderResourceLayoutD3D12.h2
-rw-r--r--Graphics/GraphicsEngineD3D12/src/PipelineStateD3D12Impl.cpp6
3 files changed, 7 insertions, 3 deletions
diff --git a/Graphics/GraphicsEngineD3D12/include/PipelineStateD3D12Impl.h b/Graphics/GraphicsEngineD3D12/include/PipelineStateD3D12Impl.h
index 64dfdc2b..fa51b6d0 100644
--- a/Graphics/GraphicsEngineD3D12/include/PipelineStateD3D12Impl.h
+++ b/Graphics/GraphicsEngineD3D12/include/PipelineStateD3D12Impl.h
@@ -50,7 +50,7 @@ public:
virtual void QueryInterface(const INTERFACE_ID& IID, IObject** ppInterface)override final;
- virtual void BindStaticResources(IResourceMapping* pResourceMapping, Uint32 Flags)override final;
+ virtual void BindStaticResources(Uint32 ShaderFlags, IResourceMapping* pResourceMapping, Uint32 Flags)override final;
virtual Uint32 GetStaticVariableCount(SHADER_TYPE ShaderType) const override final;
diff --git a/Graphics/GraphicsEngineD3D12/include/ShaderResourceLayoutD3D12.h b/Graphics/GraphicsEngineD3D12/include/ShaderResourceLayoutD3D12.h
index 26ed260e..35ddfbc7 100644
--- a/Graphics/GraphicsEngineD3D12/include/ShaderResourceLayoutD3D12.h
+++ b/Graphics/GraphicsEngineD3D12/include/ShaderResourceLayoutD3D12.h
@@ -252,6 +252,8 @@ public:
}
const bool IsUsingSeparateSamplers() const {return !m_pResources->IsUsingCombinedTextureSamplers();}
+
+ SHADER_TYPE GetShaderType() const {return m_pResources->GetShaderType();}
private:
const D3D12Resource& GetAssignedSampler(const D3D12Resource& TexSrv)const;
diff --git a/Graphics/GraphicsEngineD3D12/src/PipelineStateD3D12Impl.cpp b/Graphics/GraphicsEngineD3D12/src/PipelineStateD3D12Impl.cpp
index 91835158..46530860 100644
--- a/Graphics/GraphicsEngineD3D12/src/PipelineStateD3D12Impl.cpp
+++ b/Graphics/GraphicsEngineD3D12/src/PipelineStateD3D12Impl.cpp
@@ -442,11 +442,13 @@ bool PipelineStateD3D12Impl::dbgContainsShaderResources()const
return false;
}
-void PipelineStateD3D12Impl::BindStaticResources(IResourceMapping* pResourceMapping, Uint32 Flags)
+void PipelineStateD3D12Impl::BindStaticResources(Uint32 ShaderFlags, IResourceMapping* pResourceMapping, Uint32 Flags)
{
for (Uint32 s=0; s < m_NumShaders; ++s)
{
- m_pStaticVarManagers[s].BindResources(pResourceMapping, Flags);
+ auto ShaderType = GetStaticShaderResLayout(s).GetShaderType();
+ if ((ShaderFlags & ShaderType) != 0)
+ m_pStaticVarManagers[s].BindResources(pResourceMapping, Flags);
}
}