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

D3D12 specific implementation of the FRHIMemoryPool. More...

#include <D3D12PoolAllocator.h>

+ Inheritance diagram for FD3D12MemoryPool:

Public Member Functions

 FD3D12MemoryPool (FD3D12Device *ParentDevice, FRHIGPUMask VisibleNodes, const FD3D12ResourceInitConfig &InInitConfig, const FString &Name, EResourceAllocationStrategy InAllocationStrategy, int16 InPoolIndex, uint64 InPoolSize, uint32 InPoolAlignment, ERHIPoolResourceTypes InSupportedResourceTypes, EFreeListOrder InFreeListOrder, HeapId InTraceParentHeapId)
 
virtual ~FD3D12MemoryPool ()
 
virtual void Init () override
 
virtual void Destroy () override
 
FD3D12ResourceGetBackingResource ()
 
FD3D12HeapGetBackingHeap ()
 
uint64 GetLastUsedFrameFence () const
 
void UpdateLastUsedFrameFence (uint64 InFrameFence)
 
- Public Member Functions inherited from FRHIMemoryPool
RHICORE_API FRHIMemoryPool (int16 InPoolIndex, uint64 InPoolSize, uint32 InPoolAlignment, ERHIPoolResourceTypes InSupportedResourceTypes, EFreeListOrder InFreeListOrder)
 
virtual RHICORE_API ~FRHIMemoryPool ()
 
RHICORE_API bool TryAllocate (uint32 InSizeInBytes, uint32 InAllocationAlignment, ERHIPoolResourceTypes InAllocationResourceType, FRHIPoolAllocationData &AllocationData)
 
RHICORE_API void Deallocate (FRHIPoolAllocationData &AllocationData)
 
RHICORE_API void TryClear (FRHIContextArray const &Contexts, FRHIPoolAllocator *InAllocator, uint32 InMaxCopySize, uint32 &CopySize, const TArray< FRHIMemoryPool * > &InTargetPools)
 
int16 GetPoolIndex () const
 
uint64 GetPoolSize () const
 
uint64 GetFreeSize () const
 
uint64 GetUsedSize () const
 
uint32 GetAlignmentWaste () const
 
uint32 GetAllocatedBlocks () const
 
ERHIPoolResourceTypes GetSupportedResourceTypes () const
 
bool IsResourceTypeSupported (ERHIPoolResourceTypes InType) const
 
bool IsEmpty () const
 
bool IsFull () 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 Attributes

const FD3D12ResourceInitConfig InitConfig
 
const FString Name
 
EResourceAllocationStrategy AllocationStrategy
 
TRefCountPtr< FD3D12ResourceBackingResource
 
TRefCountPtr< FD3D12HeapBackingHeap
 
uint64 LastUsedFrameFence
 
- Protected Attributes inherited from FRHIMemoryPool
int16 PoolIndex
 
const uint64 PoolSize
 
const uint32 PoolAlignment
 
const ERHIPoolResourceTypes SupportedResourceTypes
 
const EFreeListOrder FreeListOrder
 
uint64 FreeSize
 
uint64 AligmnentWaste
 
uint32 AllocatedBlocks
 
FRHIPoolAllocationData HeadBlock
 
TArray< FRHIPoolAllocationData * > FreeBlocks
 
TArray< FRHIPoolAllocationData * > AllocationDataPool
 
- Protected Attributes inherited from FD3D12DeviceChild
FD3D12DeviceParent
 

Additional Inherited Members

- Public Types inherited from FRHIMemoryPool
enum class  EFreeListOrder { SortBySize , SortByOffset }
 
- Static Public Member Functions inherited from FRHIMemoryPool
static RHICORE_API uint32 GetAlignedSize (uint32 InSizeInBytes, uint32 InPoolAlignment, uint32 InAllocationAlignment)
 
static RHICORE_API uint32 GetAlignedOffset (uint32 InOffset, uint32 InPoolAlignment, uint32 InAllocationAlignment)
 
- Protected Member Functions inherited from FRHIMemoryPool
RHICORE_API int32 FindFreeBlock (uint32 InSizeInBytes, uint32 InAllocationAlignment) const
 
RHICORE_API FRHIPoolAllocationDataAddToFreeBlocks (FRHIPoolAllocationData *InFreeBlock)
 
RHICORE_API void RemoveFromFreeBlocks (FRHIPoolAllocationData *InFreeBlock)
 
RHICORE_API FRHIPoolAllocationDataGetNewAllocationData ()
 
RHICORE_API void ReleaseAllocationData (FRHIPoolAllocationData *InData)
 
RHICORE_API void Validate ()
 

Detailed Description

D3D12 specific implementation of the FRHIMemoryPool.

Constructor & Destructor Documentation

◆ FD3D12MemoryPool()

FD3D12MemoryPool::FD3D12MemoryPool ( FD3D12Device ParentDevice,
FRHIGPUMask  VisibleNodes,
const FD3D12ResourceInitConfig InInitConfig,
const FString &  Name,
EResourceAllocationStrategy  InAllocationStrategy,
int16  InPoolIndex,
uint64  InPoolSize,
uint32  InPoolAlignment,
ERHIPoolResourceTypes  InSupportedResourceTypes,
EFreeListOrder  InFreeListOrder,
HeapId  InTraceParentHeapId 
)

◆ ~FD3D12MemoryPool()

FD3D12MemoryPool::~FD3D12MemoryPool ( )
virtual

Member Function Documentation

◆ Destroy()

void FD3D12MemoryPool::Destroy ( )
overridevirtual

Reimplemented from FRHIMemoryPool.

◆ GetBackingHeap()

FD3D12Heap * FD3D12MemoryPool::GetBackingHeap ( )
inline

◆ GetBackingResource()

FD3D12Resource * FD3D12MemoryPool::GetBackingResource ( )
inline

◆ GetLastUsedFrameFence()

uint64 FD3D12MemoryPool::GetLastUsedFrameFence ( ) const
inline

◆ Init()

void FD3D12MemoryPool::Init ( )
overridevirtual

Reimplemented from FRHIMemoryPool.

◆ UpdateLastUsedFrameFence()

void FD3D12MemoryPool::UpdateLastUsedFrameFence ( uint64  InFrameFence)
inline

Member Data Documentation

◆ AllocationStrategy

EResourceAllocationStrategy FD3D12MemoryPool::AllocationStrategy
protected

◆ BackingHeap

TRefCountPtr<FD3D12Heap> FD3D12MemoryPool::BackingHeap
protected

◆ BackingResource

TRefCountPtr<FD3D12Resource> FD3D12MemoryPool::BackingResource
protected

◆ InitConfig

const FD3D12ResourceInitConfig FD3D12MemoryPool::InitConfig
protected

◆ LastUsedFrameFence

uint64 FD3D12MemoryPool::LastUsedFrameFence
protected

◆ Name

const FString FD3D12MemoryPool::Name
protected

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