/Engine/Source/Runtime/RHI/Public/GPUDefragAllocator.h
Simple best fit allocator, splitting and coalescing whenever/ wherever possible. NOT THREAD-SAFE.
class FGPUDefragAllocator
memsize_t
AllocatedMemorySize
int32
AllocationAlignment
Allocation alignment requirements.
memsize_t
AvailableMemorySize
Available memory in uint8s.
bool
bBenchmarkMode
When in benchmark mode, don't call any Platform functions.
uint32
BlockedCycles
Amount of time blocked by a platform fence since the beginning of the last call toTick(), in appCycles.
uint64
CompletedSyncIndex
Sync index that has been completed, so far.
uint64
CurrentLargestHole
int32
CurrentNumHoles
uint64
CurrentSyncIndex
Ever-increasing index to synchronize all relocations initiated byTick().
FMemoryChunk&#...
FirstChunk
Head of linked list of chunks. Sorted by memory address.
FMemoryChunk&#...
FirstFreeChunk
Head of linked list of free chunks. Unsorted.
friend
FScopedGPUDefragLock
FMemoryChunk&#...
LastChunk
Last chunk in the linked list of chunks (see FirstChunk).
int32
MaxNumHoles
Maximum number of disjoint32 free memory regions we've had.
uint8 *
MemoryBase
Base of memory pool.
uint64
MemorySize
Total size of memory pool, in uint8s.
int64
MinLargestHole
Smallest consecutive free memory region we've had.
int32
NumCanceledAsyncRequests
Total number of async requests that has been canceled so far.
int32
NumFinishedAsyncAllocations
Total number of async allocations successfully completed so far.
int32
NumFinishedAsyncReallocations
Total number of async reallocations successfully completed so far.
int32
NumLockedChunks
int32
NumRelocationsInProgress
Number of async relocations that are currently in progress.
memsize_t
PaddingWasteSize
TDoubleLinkedLi...
PendingFreeChunks
Chunks that couldn't be freed immediately because they were being relocated.
memsize_t
PendingMemoryAdjustment
Adjustment to allocated memory, pending all reallocations.
uint64
PlatformSyncFence
Platform-specific (GPU) fence, used for synchronizing the SyncIndex.
TMap< void *...
PointerToChunkMap
Mapping from Pointer to chunk for fast removal.
FSettings
Settings
Allocator settings that affect its behavior.
FCriticalSectio...
SynchronizationObject
double
TimeSpentInAllocator
Cumulative time spent in allocator.
uint64
TotalNumBytesRelocated
Total number of uint8s relocated so far.
uint64
TotalNumRelocations
Stats.