From fa545a9faeaf884dc1b1bf53bedb2046025bb0a8 Mon Sep 17 00:00:00 2001 From: assiduous Date: Tue, 9 Mar 2021 21:47:39 -0800 Subject: Unified PRS hash calculation --- .../include/PipelineResourceSignatureBase.hpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'Graphics/GraphicsEngine') 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(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> m_pRawMemory; -- cgit v1.2.3