summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngine
diff options
context:
space:
mode:
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;