UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FD3D12MultiBuddyAllocator Class Reference

#include <D3D12Allocation.h>

+ Inheritance diagram for FD3D12MultiBuddyAllocator:

Public Member Functions

 FD3D12MultiBuddyAllocator (FD3D12Device *ParentDevice, FRHIGPUMask VisibleNodes, const FD3D12ResourceInitConfig &InInitConfig, const FString &Name, EResourceAllocationStrategy InAllocationStrategy, uint32 InMaxAllocationSize, uint32 InDefaultPoolSize, uint32 InMinBlockSize, HeapId InTraceParentHeapId)
 
 ~FD3D12MultiBuddyAllocator ()
 
const EResourceAllocationStrategy GetAllocationStrategy () const
 
bool TryAllocate (uint32 SizeInBytes, uint32 Alignment, FD3D12ResourceLocation &ResourceLocation)
 
void Deallocate (FD3D12ResourceLocation &ResourceLocation)
 
void Initialize ()
 
void Destroy ()
 
void CleanUpAllocations (uint64 InFrameLag)
 
void DumpAllocatorStats (class FOutputDevice &Ar)
 
void UpdateMemoryStats (uint32 &IOMemoryAllocated, uint32 &IOMemoryUsed, uint32 &IOMemoryFree, uint32 &IOAlignmentWaste, uint32 &IOAllocatedPageCount, uint32 &IOFullPageCount)
 
void ReleaseAllResources ()
 
void Reset ()
 
- Public Member Functions inherited from FD3D12ResourceAllocator
 FD3D12ResourceAllocator (FD3D12Device *ParentDevice, FRHIGPUMask VisibleNodes, const FD3D12ResourceInitConfig &InInitConfig, const FString &Name, uint32 MaxSizeForPooling)
 
 ~FD3D12ResourceAllocator ()
 
const FD3D12ResourceInitConfigGetInitConfig () const
 
const uint32 GetMaximumAllocationSizeForPooling () const
 
- Public Member Functions inherited from FD3D12DeviceChild
 FD3D12DeviceChild (FD3D12Device *InParent=nullptr)
 
FORCEINLINE FD3D12DeviceGetParentDevice () const
 
FD3D12DeviceGetParentDevice_Unsafe () const
 
- Public Member Functions inherited from FD3D12MultiNodeGPUObject
 FD3D12MultiNodeGPUObject (FRHIGPUMask NodeMask, FRHIGPUMask VisibiltyMask)
 
- Public Member Functions inherited from FD3D12GPUObject
 FD3D12GPUObject (FRHIGPUMask InGPUMask, FRHIGPUMask InVisibiltyMask)
 
SGPU_CONSTEXPR FRHIGPUMask GetGPUMask () const
 
SGPU_CONSTEXPR FRHIGPUMask GetVisibilityMask () const
 

Protected Member Functions

FD3D12BuddyAllocatorCreateNewAllocator (uint32 InMinSizeInBytes)
 

Protected Attributes

const EResourceAllocationStrategy AllocationStrategy
 
const uint32 MinBlockSize
 
const uint32 DefaultPoolSize
 
TArray< FD3D12BuddyAllocator * > Allocators
 
- Protected Attributes inherited from FD3D12ResourceAllocator
const FD3D12ResourceInitConfig InitConfig
 
const FString DebugName
 
bool Initialized
 
const uint32 MaximumAllocationSizeForPooling
 
FCriticalSection CS
 
uint32 SpaceAlignedUsed
 
uint32 SpaceActualUsed
 
uint32 NumBlocksInDeferredDeletionQueue
 
uint32 PeakUsage
 
uint32 FailedAllocationSpace
 
- Protected Attributes inherited from FD3D12DeviceChild
FD3D12DeviceParent
 

Constructor & Destructor Documentation

◆ FD3D12MultiBuddyAllocator()

FD3D12MultiBuddyAllocator::FD3D12MultiBuddyAllocator ( FD3D12Device ParentDevice,
FRHIGPUMask  VisibleNodes,
const FD3D12ResourceInitConfig InInitConfig,
const FString &  Name,
EResourceAllocationStrategy  InAllocationStrategy,
uint32  InMaxAllocationSize,
uint32  InDefaultPoolSize,
uint32  InMinBlockSize,
HeapId  InTraceParentHeapId 
)

◆ ~FD3D12MultiBuddyAllocator()

FD3D12MultiBuddyAllocator::~FD3D12MultiBuddyAllocator ( )

Member Function Documentation

◆ CleanUpAllocations()

void FD3D12MultiBuddyAllocator::CleanUpAllocations ( uint64  InFrameLag)

◆ CreateNewAllocator()

FD3D12BuddyAllocator * FD3D12MultiBuddyAllocator::CreateNewAllocator ( uint32  InMinSizeInBytes)
protected

◆ Deallocate()

void FD3D12MultiBuddyAllocator::Deallocate ( FD3D12ResourceLocation ResourceLocation)

◆ Destroy()

void FD3D12MultiBuddyAllocator::Destroy ( )

◆ DumpAllocatorStats()

void FD3D12MultiBuddyAllocator::DumpAllocatorStats ( class FOutputDevice Ar)

◆ GetAllocationStrategy()

const EResourceAllocationStrategy FD3D12MultiBuddyAllocator::GetAllocationStrategy ( ) const
inline

◆ Initialize()

void FD3D12MultiBuddyAllocator::Initialize ( )

◆ ReleaseAllResources()

void FD3D12MultiBuddyAllocator::ReleaseAllResources ( )

◆ Reset()

void FD3D12MultiBuddyAllocator::Reset ( )

◆ TryAllocate()

bool FD3D12MultiBuddyAllocator::TryAllocate ( uint32  SizeInBytes,
uint32  Alignment,
FD3D12ResourceLocation ResourceLocation 
)

◆ UpdateMemoryStats()

void FD3D12MultiBuddyAllocator::UpdateMemoryStats ( uint32 IOMemoryAllocated,
uint32 IOMemoryUsed,
uint32 IOMemoryFree,
uint32 IOAlignmentWaste,
uint32 IOAllocatedPageCount,
uint32 IOFullPageCount 
)

Member Data Documentation

◆ AllocationStrategy

const EResourceAllocationStrategy FD3D12MultiBuddyAllocator::AllocationStrategy
protected

◆ Allocators

TArray<FD3D12BuddyAllocator*> FD3D12MultiBuddyAllocator::Allocators
protected

◆ DefaultPoolSize

const uint32 FD3D12MultiBuddyAllocator::DefaultPoolSize
protected

◆ MinBlockSize

const uint32 FD3D12MultiBuddyAllocator::MinBlockSize
protected

The documentation for this class was generated from the following files: