Go to the documentation of this file.
44 struct StaleAllocationAttribs
50 Offset{_Offset}, Size{_Size}, FenceValue{_FenceValue}
57 m_StaleAllocations{0, StaleAllocationAttribs(0, 0, 0),
STD_ALLOCATOR_RAW_MEM(StaleAllocationAttribs, Allocator,
"Allocator for deque<StaleAllocationAttribs>")}
62 VERIFY(m_StaleAllocations.empty(),
"Not all stale allocations released");
63 VERIFY(m_StaleAllocationsSize == 0,
"Not all stale allocations released");
69 m_StaleAllocations(std::move(rhs.m_StaleAllocations)),
70 m_StaleAllocationsSize(rhs.m_StaleAllocationsSize)
72 rhs.m_StaleAllocationsSize = 0;
83 Free(allocation.UnalignedOffset, allocation.Size, FenceValue);
91 m_StaleAllocations.emplace_back(Offset, Size, FenceValue);
92 m_StaleAllocationsSize += Size;
102 while (!m_StaleAllocations.empty() && m_StaleAllocations.front().FenceValue <= LastCompletedFenceValue)
104 auto& OldestAllocation = m_StaleAllocations.front();
106 m_StaleAllocationsSize -= OldestAllocation.Size;
107 m_StaleAllocations.pop_front();
114 std::deque<StaleAllocationAttribs, STDAllocatorRawMem<StaleAllocationAttribs>> m_StaleAllocations;
115 size_t m_StaleAllocationsSize = 0;
void Free(VariableSizeAllocationsManager::Allocation &&allocation, Uint64 FenceValue)
Definition: VariableSizeGPUAllocationsManager.hpp:81
void ReleaseStaleAllocations(Uint64 LastCompletedFenceValue)
Definition: VariableSizeGPUAllocationsManager.hpp:99
Definition: VariableSizeAllocationsManager.hpp:64
uint64_t Uint64
64-bit unsigned integer
Definition: BasicTypes.h:50
Definition: VariableSizeAllocationsManager.hpp:156
VariableSizeGPUAllocationsManager(OffsetType MaxSize, IMemoryAllocator &Allocator)
Definition: VariableSizeGPUAllocationsManager.hpp:55
size_t GetStaleAllocationsSize() const
Definition: VariableSizeGPUAllocationsManager.hpp:111
void Free(OffsetType Offset, OffsetType Size, Uint64 FenceValue)
Definition: VariableSizeGPUAllocationsManager.hpp:87
VariableSizeAllocationsManager(OffsetType MaxSize, IMemoryAllocator &Allocator)
Definition: VariableSizeAllocationsManager.hpp:101
size_t OffsetType
Definition: VariableSizeAllocationsManager.hpp:67
VariableSizeGPUAllocationsManager(VariableSizeGPUAllocationsManager &&rhs) noexcept
Definition: VariableSizeGPUAllocationsManager.hpp:67
VariableSizeGPUAllocationsManager & operator=(VariableSizeGPUAllocationsManager &&rhs)=delete
Definition: VariableSizeGPUAllocationsManager.hpp:41
Base interface for a raw memory allocator.
Definition: MemoryAllocator.h:41
~VariableSizeGPUAllocationsManager()
Definition: VariableSizeGPUAllocationsManager.hpp:60
#define STD_ALLOCATOR_RAW_MEM(Type, Allocator, Description)
Definition: STDAllocator.hpp:179
#define VERIFY(...)
Definition: DebugUtilities.hpp:76
The library uses Direct3D-style math:
Definition: AdvancedMath.hpp:37
void Free(Allocation &&allocation)
Definition: VariableSizeAllocationsManager.hpp:251