FMemoryManager

Manages heaps and their interactions.

Windows
MacOS
Linux

Inheritance Hierarchy

FDeviceChild

FMemoryManager

References

Module

VulkanRHI

Header

/Engine/Source/Runtime/VulkanRHI/Public/VulkanMemory.h

Include

#include "VulkanMemory.h"

Syntax

class FMemoryManager : public VulkanRHI::FDeviceChild

Remarks

Manages heaps and their interactions.

Variables

Name Description

Protected variable

TArray< FVulkan...

 

AllBufferAllocations

Protected variable

PTRINT

 

AllBufferAllocationsFreeListHead

Protected variable

bool

 

bIsEvicting

Protected variable

bool

 

bWantEviction

Public variable

FCriticalSectio...

 

CS

Protected variable

FDeviceMemoryMa...

 

DeviceMemoryManager

Protected variable

TArray< FVulkan...

 

FreeBufferAllocations

Public variable

void *

 

Hotfix

Public variable

uint32

 

Peak

Protected variable

uint64

 

PendingEvictBytes

Public variable

TArray< FUBPend...

 

PendingFree

Protected variable

TArray< FVulkan...

 

ResourceTypeHeaps

Protected variable

VulkanRHI::FMem...

 

UBAllocations

Protected variable

TArray< FVulkan...

 

UsedBufferAllocations

Constructors

Name Description

Public function

FMemoryManager

(
    FVulkanDevice* InDevice
)

Destructors

Name Description

Public function

~FMemoryManager()

Functions

Name Description

Public function

bool

 

AllocateBufferMemory

(
    FVulkanAllocation& Allocation,
    FVulkanEvictable* AllocationOw...,
    const VkMemoryRequirements& Memory...,
    VkMemoryPropertyFlags MemoryPropert...,
    EVulkanAllocationMetaType MetaType,
    const char* File,
    uint32 Line
)

Public function

bool

 

AllocateBufferPooled

(
    FVulkanAllocation& Allocation,
    FVulkanEvictable* AllocationOw...,
    uint32 Size,
    VkBufferUsageFlags BufferUsageFlags,
    VkMemoryPropertyFlags MemoryPropert...,
    EVulkanAllocationMetaType MetaType,
    const char* File,
    uint32 Line
)

Public function

bool

 

AllocateDedicatedImageMemory

(
    FVulkanAllocation& Allocation,
    FVulkanEvictable* AllocationOw...,
    VkImage Image,
    const VkMemoryRequirements& Memory...,
    VkMemoryPropertyFlags MemoryPropert...,
    EVulkanAllocationMetaType MetaType,
    const char* File,
    uint32 Line
)

Public function

bool

 

AllocateImageMemory

(
    FVulkanAllocation& Allocation,
    FVulkanEvictable* AllocationOw...,
    const VkMemoryRequirements& Memory...,
    VkMemoryPropertyFlags MemoryPropert...,
    EVulkanAllocationMetaType MetaType,
    const char* File,
    uint32 Line
)

Public function

void

 

AllocUniformBuffer

(
    FVulkanAllocation& OutAllocation,
    uint32 Size,
    const void* Contents
)

Public function

void

 

Deinit()

Protected function

void

 

DestroyResourceAllocations()

Public function

void

 

DumpMemory

(
    bool bFullDump
)

Public function

void

 

FreeUniformBuffer

(
    FVulkanAllocation& InAllocation
)

Public function

void

 

FreeVulkanAllocation

(
    FVulkanAllocation& Allocation,
    EVulkanFreeFlags FreeFlags
)

Public function

void

 

FreeVulkanAllocationBuffer

(
    FVulkanAllocation& Allocation
)

Public function

void

 

FreeVulkanAllocationImage

(
    FVulkanAllocation& Allocation
)

Public function

void

 

FreeVulkanAllocationImageDedicated

(
    FVulkanAllocation& Allocation
)

Public function

void

 

FreeVulkanAllocationPooledBuffer

(
    FVulkanAllocation& Allocation
)

Protected function

EPoolSizes

 

GetPoolTypeForAlloc

(
    uint32 Size,
    uint32 Alignment
)

Public function

void

 

HandleOOM

(
    bool bCanResume,
    VkResult Result,
    uint64 AllocationSize,
    uint32 MemoryTypeIndex
)

Public function

void

 

Init()

Protected function

void

 

ProcessPendingUBFrees

(
    bool bForce
)

Protected function

void

 

ProcessPendingUBFreesNoLock

(
    bool bForce
)

Public function

void

 

RegisterSubresourceAllocator

(
    FVulkanSubresourceAllocator* S...
)

Public function

void

 

ReleaseFreedPages

(
    FVulkanCommandListContext& Context
)

Protected function

void

 

ReleaseFreedResources

(
    bool bImmediately
)

Public function

void

 

ReleaseSubresourceAllocator

(
    FVulkanSubresourceAllocator* S...
)

Public function

void

 

UnregisterSubresourceAllocator

(
    FVulkanSubresourceAllocator* S...
)

Public function

bool

 

UpdateEvictThreshold

(
    bool bLog
)

Classes

Name

Description

Protected struct

FUBPendingFree

Enums

Name

Description

Protected enum

EPoolSizes

Pool sizes that we support

Constants

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss