diff options
| author | Egor Yusov <egor.yusov@gmail.com> | 2019-03-05 07:19:07 +0000 |
|---|---|---|
| committer | Egor Yusov <egor.yusov@gmail.com> | 2019-03-05 07:19:07 +0000 |
| commit | bdbca67b0e03baec3b9dd803e803d267210e892b (patch) | |
| tree | aa20e56029a30178360cd1b17f0c817f9d590daf /Graphics/GraphicsEngineVulkan | |
| parent | Updated GL engine factory headers and structures (diff) | |
| download | DiligentCore-bdbca67b0e03baec3b9dd803e803d267210e892b.tar.gz DiligentCore-bdbca67b0e03baec3b9dd803e803d267210e892b.zip | |
Added ShaderFlags parameter to IPipelineState::BindStaticResources
Diffstat (limited to 'Graphics/GraphicsEngineVulkan')
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); + } } } |
