summaryrefslogtreecommitdiffstats
path: root/src/Runtime/ogl-runtime/src/system/Qt3DSMemoryStatistics.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Runtime/ogl-runtime/src/system/Qt3DSMemoryStatistics.h')
m---------src/Runtime/ogl-runtime0
-rw-r--r--src/Runtime/ogl-runtime/src/system/Qt3DSMemoryStatistics.h137
2 files changed, 0 insertions, 137 deletions
diff --git a/src/Runtime/ogl-runtime b/src/Runtime/ogl-runtime
new file mode 160000
+Subproject 2025912174c4cf99270b7439ec3b021e1d089ae
diff --git a/src/Runtime/ogl-runtime/src/system/Qt3DSMemoryStatistics.h b/src/Runtime/ogl-runtime/src/system/Qt3DSMemoryStatistics.h
deleted file mode 100644
index 81e30434..00000000
--- a/src/Runtime/ogl-runtime/src/system/Qt3DSMemoryStatistics.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 1993-2009 NVIDIA Corporation.
-** Copyright (C) 2017 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt 3D Studio.
-**
-** $QT_BEGIN_LICENSE:GPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3 or (at your option) any later version
-** approved by the KDE Free Qt Foundation. The licenses are as published by
-** the Free Software Foundation and appearing in the file LICENSE.GPL3
-** included in the packaging of this file. Please review the following
-** information to ensure the GNU General Public License requirements will
-** be met: https://www.gnu.org/licenses/gpl-3.0.html.
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#pragma once
-
-//==============================================================================
-// Includes
-//==============================================================================
-#include "Qt3DSMemoryManager.h"
-
-//==============================================================================
-// Namespace
-//==============================================================================
-namespace Q3DStudio {
-
-//==============================================================================
-/**
- * Static facade to memory statistics and allocation tracking data.
- *
- * Use this class to examine the memory state of the system at any point.
- * Heap, managers and pools are are connected to this point by registering
- * themselves on creation. Initiate the extraction of the collected data
- * using this interface.
- */
-class CMemoryStatistics
-{
- //==============================================================================
- // Constants
- //==============================================================================
-public:
- const static INT32 REPORTSIZE = 256; ///< Max size of single report string
- const static INT32 MANAGERCOUNT = 5; ///< Fixed number of managers tracked
- const static INT32 HISTOGRAMCOUNT = 10; ///< Fixed number of managers tracked
-
- //==============================================================================
- // Structs
- //==============================================================================
-public:
- /// One row of statistics on allocation
- struct SFactoid
- {
- CHAR m_Name[32]; ///< Ascii identifier - manager name or pool description
- INT32 m_Bytes; ///< Bytes used - full pool size for example - zero if factoid unused
- INT32 m_Calls; ///< Function calls, i.e number of allocations
- INT32 m_Used; ///< Discrete chunk usage in percent - 10 used of 200 gives a value 5
- INT32 m_Align; ///< Packed efficiency in percent - all 24byte structs in 32byte pool give a
- ///value 75
- INT32 m_Miss; ///< Allocation misses - due to full pools for example
- };
-
- /// Tuple describing one data point in a histogram
- struct SHistogramScore
- {
- INT32 m_Size; ///< Allocation request in bytes
- INT32 m_Count; ///< Number of allocation requests
- };
-
- /// Set of factoids describing a system memory state
- struct SFactSheet
- {
- SFactoid m_HeapState; ///< Heap facts
- SFactoid m_ManagerState; ///< Combined manager facts
- SFactoid m_Manager[MANAGERCOUNT]; ///< Individual manager facts
- SHistogramScore m_Histogram[MANAGERCOUNT][HISTOGRAMCOUNT]; ///< Top allocation requests
- ///sorted by bytes, global and
- ///never reset
- SFactoid m_Pool[MANAGERCOUNT][Q3DStudio_MEMORY_POOLCOUNT]; ///< Individual pool facts
- };
-
- //==============================================================================
- // Fields
- //==============================================================================
-protected:
- static INT32 s_Overhead; ///< Memory tracking structures report in here
- static CMemoryManager
- *s_PoolManagers[MANAGERCOUNT]; ///< Pointers to all created memory pool managers
-
- //==============================================================================
- // Methods
- //==============================================================================
-public: // Registration
- static void AddManager(CMemoryManager *inManager);
- static void RemoveManager(CMemoryManager *inManager);
- static INT32 &Overhead();
-
-public: // Access
- static void Reset();
- static void GetFacts(SFactSheet &outFacts, const BOOL inPeak = false,
- const BOOL inGlobal = false);
- static INT32 GetRequestedBytes(const BOOL inPeak = false);
- static INT32 GetHeapBytes(const BOOL inPeak = false);
-
-public: // Reporting
- static void SimpleReport(IStream *inStream = NULL);
- static void HeapReport(IStream *inStream = NULL);
- static void PoolReport(const BOOL inPeak = false, const BOOL inGlobal = false,
- IStream *inStream = NULL);
- static void LineReport(IStream *inStream = NULL);
-
- static void FullReport(IStream *inStream = NULL);
- static void Report(IStream *inStream, const CHAR *inString);
-
-protected: // Utility
- static void CullHistogram(const CMemoryProbe::SValue *inHistogram, const EMemoryValue inValue,
- SHistogramScore outResults[HISTOGRAMCOUNT]);
- static int CompareHeap(const void *arg1, const void *arg2);
- static int CompareHistogram(const void *arg1, const void *arg2);
-};
-
-} // namespace Q3DStudio