/// <summary>Retrieves statistics from the current state of the block.</summary>
        public void CalculateStats(D3D12MA_StatInfo *pInfo)
        {
            D3D12MA_ASSERT((D3D12MA_DEBUG_LEVEL > 0) && (pInfo != null));
            using var debugGlobalMutexLock = D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK();

            D3D12MA_HEAVY_ASSERT((D3D12MA_DEBUG_LEVEL > 1) && m_Pimpl->m_Metadata.Validate());
            m_Pimpl->m_Metadata.CalcAllocationStatInfo(pInfo);
        }
        public void CalculateStats([NativeTypeName("StatInfo&")] D3D12MA_StatInfo *outStats)
        {
            ZeroMemory(outStats, (nuint)sizeof(D3D12MA_StatInfo));

            outStats->AllocationSizeMin  = ulong.MaxValue;
            outStats->UnusedRangeSizeMin = ulong.MaxValue;

            m_BlockVector->AddStats(outStats);
            PostProcessStatInfo(ref *outStats);
        }
Beispiel #3
0
        public void AddStats([NativeTypeName("StatInfo&")] D3D12MA_StatInfo *outStats)
        {
            using var @lock = new D3D12MA_MutexLockRead(ref m_Mutex, m_hAllocator->UseMutex());

            for (nuint i = 0; i < m_Blocks.size(); ++i)
            {
                D3D12MA_NormalBlock *pBlock = m_Blocks[i]->Value;

                D3D12MA_ASSERT((D3D12MA_DEBUG_LEVEL > 0) && (pBlock != null));
                D3D12MA_HEAVY_ASSERT((D3D12MA_DEBUG_LEVEL > 1) && pBlock->Validate());

                D3D12MA_StatInfo blockStatInfo;
                pBlock->m_pMetadata->CalcAllocationStatInfo(&blockStatInfo);

                AddStatInfo(ref *outStats, ref blockStatInfo);
            }
        }
Beispiel #4
0
        private void CalculateStatsPimpl([NativeTypeName("StatInfo&")] D3D12MA_StatInfo *outStats)
        {
            ZeroMemory(outStats, (nuint)sizeof(D3D12MA_StatInfo));

            outStats->AllocationSizeMin  = ulong.MaxValue;
            outStats->UnusedRangeSizeMin = ulong.MaxValue;

            m_BlockVector->AddStats(outStats);

            {
                Unsafe.SkipInit(out D3D12MA_StatInfo committedStatInfo); // Uninitialized.
                m_CommittedAllocations.CalculateStats(ref committedStatInfo);
                AddStatInfo(ref *outStats, ref committedStatInfo);
            }

            PostProcessStatInfo(ref *outStats);
        }
 /// <summary>Retrieves statistics from the current state of this pool.</summary>
 public void CalculateStats(D3D12MA_StatInfo *pStats)
 {
     D3D12MA_ASSERT((D3D12MA_DEBUG_LEVEL > 0) && (pStats != null));
     using var debugGlobalMutexLock = D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK();
     m_Pimpl->CalculateStats(pStats);
 }
 public readonly void CalcAllocationStatInfo([NativeTypeName("StatInfo&")] D3D12MA_StatInfo *outInfo)
 => Base.CalcAllocationStatInfo(outInfo);
        public readonly void CalcAllocationStatInfo([NativeTypeName("StatInfo&")] D3D12MA_StatInfo *outInfo)
        {
            D3D12MA_ASSERT((D3D12MA_DEBUG_LEVEL > 0) && (Base.lpVtbl[13] == (delegate * < in D3D12MA_BlockMetadata_Generic, D3D12MA_StatInfo *, void >) & CalcAllocationStatInfo));

            CalcAllocationStatInfo(in this, outInfo);
        }