summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngine
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2021-03-10 05:47:39 +0000
committerassiduous <assiduous@diligentgraphics.com>2021-03-19 00:38:19 +0000
commitfa545a9faeaf884dc1b1bf53bedb2046025bb0a8 (patch)
tree78b9182aa90158adbcbd5d21ca7c108f4904ed7d /Graphics/GraphicsEngine
parentRenamed Texture*_OGL to Texture*_GL (diff)
downloadDiligentCore-fa545a9faeaf884dc1b1bf53bedb2046025bb0a8.tar.gz
DiligentCore-fa545a9faeaf884dc1b1bf53bedb2046025bb0a8.zip
Unified PRS hash calculation
Diffstat (limited to 'Graphics/GraphicsEngine')
-rw-r--r--Graphics/GraphicsEngine/include/PipelineResourceSignatureBase.hpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/Graphics/GraphicsEngine/include/PipelineResourceSignatureBase.hpp b/Graphics/GraphicsEngine/include/PipelineResourceSignatureBase.hpp
index c2f3e2bc..cf0870fc 100644
--- a/Graphics/GraphicsEngine/include/PipelineResourceSignatureBase.hpp
+++ b/Graphics/GraphicsEngine/include/PipelineResourceSignatureBase.hpp
@@ -45,6 +45,7 @@
#include "PlatformMisc.hpp"
#include "SRBMemoryAllocator.hpp"
#include "ShaderResourceCacheCommon.hpp"
+#include "HashUtils.hpp"
namespace Diligent
{
@@ -593,6 +594,18 @@ protected:
return SamplerInd;
}
+ void CalculateHash()
+ {
+ const auto* const pThisImpl = static_cast<const PipelineResourceSignatureImplType*>(this);
+
+ m_Hash = CalculatePipelineResourceSignatureDescHash(this->m_Desc);
+ for (Uint32 i = 0; i < this->m_Desc.NumResources; ++i)
+ {
+ const auto& Attr = pThisImpl->GetResourceAttribs(i);
+ HashCombine(m_Hash, Attr.GetHash());
+ }
+ }
+
protected:
std::unique_ptr<void, STDDeleterRawMem<void>> m_pRawMemory;