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

#include <VulkanMemory.h>

Classes

struct  FHeapInfo
 

Public Member Functions

 FDeviceMemoryManager ()
 
 ~FDeviceMemoryManager ()
 
void Init (FVulkanDevice *InDevice)
 
void Deinit ()
 
uint32 GetEvictedMemoryProperties ()
 
bool HasUnifiedMemory () const
 
bool SupportsMemoryless () const
 
uint32 GetNumMemoryTypes () const
 
bool SupportsMemoryType (VkMemoryPropertyFlags Properties) const
 
void GetPrimaryHeapStatus (uint64 &OutAllocated, uint64 &OutLimit)
 
VkResult GetMemoryTypeFromProperties (uint32 TypeBits, VkMemoryPropertyFlags Properties, uint32 *OutTypeIndex)
 
VkResult GetMemoryTypeFromPropertiesExcluding (uint32 TypeBits, VkMemoryPropertyFlags Properties, uint32 ExcludeTypeIndex, uint32 *OutTypeIndex)
 
const VkPhysicalDeviceMemoryPropertiesGetMemoryProperties () const
 
FDeviceMemoryAllocationAlloc (bool bCanFail, VkDeviceSize AllocationSize, uint32 MemoryTypeIndex, void *DedicatedAllocateInfo, float Priority, bool bExternal, const char *File, uint32 Line)
 
FDeviceMemoryAllocationAlloc (bool bCanFail, VkDeviceSize AllocationSize, uint32 MemoryTypeBits, VkMemoryPropertyFlags MemoryPropertyFlags, void *DedicatedAllocateInfo, float Priority, bool bExternal, const char *File, uint32 Line)
 
void Free (FDeviceMemoryAllocation *&Allocation)
 
uint64 GetTotalMemory (bool bGPU) const
 
VkDeviceSize GetBaseHeapSize (uint32 HeapIndex) const
 
uint32 GetHeapIndex (uint32 MemoryTypeIndex)
 

Protected Member Functions

void FreeInternal (FDeviceMemoryAllocation *Allocation)
 
void TrimMemory (bool bFullTrim)
 
void GetMemoryDump (TArray< FResourceHeapStats > &OutDeviceHeapsStats)
 
void DumpMemory ()
 
void PrintMemInfo () const
 

Protected Attributes

double MemoryUpdateTime
 
VkPhysicalDeviceMemoryBudgetPropertiesEXT MemoryBudget
 
VkPhysicalDeviceMemoryProperties MemoryProperties
 
VkDevice DeviceHandle
 
FVulkanDeviceDevice
 
uint32 NumAllocations
 
uint32 PeakNumAllocations
 
bool bHasUnifiedMemory
 
bool bSupportsMemoryless
 
TArray< FHeapInfoHeapInfos
 
int32 PrimaryHeapIndex
 
FCriticalSection DeviceMemLock
 

Friends

class FMemoryManager
 

Constructor & Destructor Documentation

◆ FDeviceMemoryManager()

VulkanRHI::FDeviceMemoryManager::FDeviceMemoryManager ( )

◆ ~FDeviceMemoryManager()

VulkanRHI::FDeviceMemoryManager::~FDeviceMemoryManager ( )

Member Function Documentation

◆ Alloc() [1/2]

FDeviceMemoryAllocation * VulkanRHI::FDeviceMemoryManager::Alloc ( bool  bCanFail,
VkDeviceSize  AllocationSize,
uint32  MemoryTypeBits,
VkMemoryPropertyFlags  MemoryPropertyFlags,
void DedicatedAllocateInfo,
float  Priority,
bool  bExternal,
const char File,
uint32  Line 
)

◆ Alloc() [2/2]

FDeviceMemoryAllocation * VulkanRHI::FDeviceMemoryManager::Alloc ( bool  bCanFail,
VkDeviceSize  AllocationSize,
uint32  MemoryTypeIndex,
void DedicatedAllocateInfo,
float  Priority,
bool  bExternal,
const char File,
uint32  Line 
)

◆ Deinit()

void VulkanRHI::FDeviceMemoryManager::Deinit ( )

◆ DumpMemory()

void VulkanRHI::FDeviceMemoryManager::DumpMemory ( )
protected

◆ Free()

void VulkanRHI::FDeviceMemoryManager::Free ( FDeviceMemoryAllocation *&  Allocation)

◆ FreeInternal()

void VulkanRHI::FDeviceMemoryManager::FreeInternal ( FDeviceMemoryAllocation Allocation)
protected

◆ GetBaseHeapSize()

VkDeviceSize VulkanRHI::FDeviceMemoryManager::GetBaseHeapSize ( uint32  HeapIndex) const

◆ GetEvictedMemoryProperties()

uint32 VulkanRHI::FDeviceMemoryManager::GetEvictedMemoryProperties ( )

◆ GetHeapIndex()

uint32 VulkanRHI::FDeviceMemoryManager::GetHeapIndex ( uint32  MemoryTypeIndex)

◆ GetMemoryDump()

void VulkanRHI::FDeviceMemoryManager::GetMemoryDump ( TArray< FResourceHeapStats > &  OutDeviceHeapsStats)
protected

◆ GetMemoryProperties()

const VkPhysicalDeviceMemoryProperties & VulkanRHI::FDeviceMemoryManager::GetMemoryProperties ( ) const

◆ GetMemoryTypeFromProperties()

VkResult VulkanRHI::FDeviceMemoryManager::GetMemoryTypeFromProperties ( uint32  TypeBits,
VkMemoryPropertyFlags  Properties,
uint32 OutTypeIndex 
)

◆ GetMemoryTypeFromPropertiesExcluding()

VkResult VulkanRHI::FDeviceMemoryManager::GetMemoryTypeFromPropertiesExcluding ( uint32  TypeBits,
VkMemoryPropertyFlags  Properties,
uint32  ExcludeTypeIndex,
uint32 OutTypeIndex 
)

◆ GetNumMemoryTypes()

uint32 VulkanRHI::FDeviceMemoryManager::GetNumMemoryTypes ( ) const
inline

◆ GetPrimaryHeapStatus()

void VulkanRHI::FDeviceMemoryManager::GetPrimaryHeapStatus ( uint64 OutAllocated,
uint64 OutLimit 
)

◆ GetTotalMemory()

uint64 VulkanRHI::FDeviceMemoryManager::GetTotalMemory ( bool  bGPU) const

◆ HasUnifiedMemory()

bool VulkanRHI::FDeviceMemoryManager::HasUnifiedMemory ( ) const
inline

◆ Init()

void VulkanRHI::FDeviceMemoryManager::Init ( FVulkanDevice InDevice)

◆ PrintMemInfo()

void VulkanRHI::FDeviceMemoryManager::PrintMemInfo ( ) const
protected

◆ SupportsMemoryless()

bool VulkanRHI::FDeviceMemoryManager::SupportsMemoryless ( ) const
inline

◆ SupportsMemoryType()

bool VulkanRHI::FDeviceMemoryManager::SupportsMemoryType ( VkMemoryPropertyFlags  Properties) const

◆ TrimMemory()

void VulkanRHI::FDeviceMemoryManager::TrimMemory ( bool  bFullTrim)
protected

Friends And Related Symbol Documentation

◆ FMemoryManager

friend class FMemoryManager
friend

Member Data Documentation

◆ bHasUnifiedMemory

bool VulkanRHI::FDeviceMemoryManager::bHasUnifiedMemory
protected

◆ bSupportsMemoryless

bool VulkanRHI::FDeviceMemoryManager::bSupportsMemoryless
protected

◆ Device

FVulkanDevice* VulkanRHI::FDeviceMemoryManager::Device
protected

◆ DeviceHandle

VkDevice VulkanRHI::FDeviceMemoryManager::DeviceHandle
protected

◆ DeviceMemLock

FCriticalSection VulkanRHI::FDeviceMemoryManager::DeviceMemLock
protected

◆ HeapInfos

TArray<FHeapInfo> VulkanRHI::FDeviceMemoryManager::HeapInfos
protected

◆ MemoryBudget

VkPhysicalDeviceMemoryBudgetPropertiesEXT VulkanRHI::FDeviceMemoryManager::MemoryBudget
protected

◆ MemoryProperties

VkPhysicalDeviceMemoryProperties VulkanRHI::FDeviceMemoryManager::MemoryProperties
protected

◆ MemoryUpdateTime

double VulkanRHI::FDeviceMemoryManager::MemoryUpdateTime
protected

◆ NumAllocations

uint32 VulkanRHI::FDeviceMemoryManager::NumAllocations
protected

◆ PeakNumAllocations

uint32 VulkanRHI::FDeviceMemoryManager::PeakNumAllocations
protected

◆ PrimaryHeapIndex

int32 VulkanRHI::FDeviceMemoryManager::PrimaryHeapIndex
protected

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