diff --git a/renderdoc/serialise/serialiser.cpp b/renderdoc/serialise/serialiser.cpp index f8f8556cb..9aaaefc51 100644 --- a/renderdoc/serialise/serialiser.cpp +++ b/renderdoc/serialise/serialiser.cpp @@ -33,7 +33,6 @@ int64_t Chunk::m_LiveChunks = 0; int64_t Chunk::m_TotalMem = 0; -int64_t Chunk::m_MaxChunks = 0; #endif diff --git a/renderdoc/serialise/serialiser.h b/renderdoc/serialise/serialiser.h index b1d751d78..2bd0a83b7 100644 --- a/renderdoc/serialise/serialiser.h +++ b/renderdoc/serialise/serialiser.h @@ -1718,7 +1718,16 @@ class ScopedChunk; class Chunk { public: - ~Chunk() { FreeAlignedBuffer(m_Data); } + ~Chunk() + { + FreeAlignedBuffer(m_Data); + +#if !defined(RELEASE) + Atomic::Dec64(&m_LiveChunks); + Atomic::ExchAdd64(&m_TotalMem, -int64_t(m_Length)); +#endif + } + template ChunkType GetChunkType() { @@ -1746,6 +1755,11 @@ public: memcpy(m_Data, ser.GetWriter()->GetData(), (size_t)m_Length); ser.GetWriter()->Rewind(); + +#if !defined(RELEASE) + Atomic::Inc64(&m_LiveChunks); + Atomic::ExchAdd64(&m_TotalMem, int64_t(m_Length)); +#endif } byte *GetData() const { return m_Data; } @@ -1759,6 +1773,11 @@ public: memcpy(ret->m_Data, m_Data, (size_t)m_Length); +#if !defined(RELEASE) + Atomic::Inc64(&m_LiveChunks); + Atomic::ExchAdd64(&m_TotalMem, int64_t(m_Length)); +#endif + return ret; } @@ -1780,7 +1799,7 @@ private: byte *m_Data; #if !defined(RELEASE) - static int64_t m_LiveChunks, m_MaxChunks, m_TotalMem; + static int64_t m_LiveChunks, m_TotalMem; #endif };