summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngineVulkan
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/GraphicsEngineVulkan
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/GraphicsEngineVulkan')
-rw-r--r--Graphics/GraphicsEngineVulkan/include/PipelineStateVkImpl.h2
-rw-r--r--Graphics/GraphicsEngineVulkan/include/ShaderResourceLayoutVk.h5
-rw-r--r--Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp10
3 files changed, 13 insertions, 4 deletions
diff --git a/Graphics/GraphicsEngineVulkan/include/PipelineStateVkImpl.h b/Graphics/GraphicsEngineVulkan/include/PipelineStateVkImpl.h
index d03066fe..e9be63a3 100644
--- a/Graphics/GraphicsEngineVulkan/include/PipelineStateVkImpl.h
+++ b/Graphics/GraphicsEngineVulkan/include/PipelineStateVkImpl.h
@@ -66,7 +66,7 @@ public:
virtual VkPipeline GetVkPipeline() const override final { return m_Pipeline; }
- 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/GraphicsEngineVulkan/include/ShaderResourceLayoutVk.h b/Graphics/GraphicsEngineVulkan/include/ShaderResourceLayoutVk.h
index 729997f9..8f7d2940 100644
--- a/Graphics/GraphicsEngineVulkan/include/ShaderResourceLayoutVk.h
+++ b/Graphics/GraphicsEngineVulkan/include/ShaderResourceLayoutVk.h
@@ -285,6 +285,11 @@ public:
return m_pResources->GetShaderName();
}
+ SHADER_TYPE GetShaderType()const
+ {
+ return m_pResources->GetShaderType();
+ }
+
const VkResource& GetResource(SHADER_RESOURCE_VARIABLE_TYPE VarType, Uint32 r)const
{
VERIFY_EXPR( r < m_NumResources[VarType] );
diff --git a/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp b/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp
index f28b2068..776db721 100644
--- a/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp
+++ b/Graphics/GraphicsEngineVulkan/src/PipelineStateVkImpl.cpp
@@ -618,12 +618,16 @@ void PipelineStateVkImpl::CommitAndTransitionShaderResources(IShaderResourceBind
}
}
-void PipelineStateVkImpl::BindStaticResources(IResourceMapping* pResourceMapping, Uint32 Flags)
+void PipelineStateVkImpl::BindStaticResources(Uint32 ShaderFlags, IResourceMapping* pResourceMapping, Uint32 Flags)
{
for (Uint32 s=0; s < m_NumShaders; ++s)
{
- auto& StaticVarMgr = GetStaticVarMgr(s);
- StaticVarMgr.BindResources(pResourceMapping, Flags);
+ auto ShaderType = GetStaticShaderResLayout(s).GetShaderType();
+ if ((ShaderType & ShaderFlags) != 0)
+ {
+ auto& StaticVarMgr = GetStaticVarMgr(s);
+ StaticVarMgr.BindResources(pResourceMapping, Flags);
+ }
}
}