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

#include <VulkanMemory.h>

Classes

struct  FInternalAlloc
 
struct  FTempMemoryBlock
 

Public Member Functions

 FTempBlockAllocator (FVulkanDevice &InDevice, uint32 InBlockSize, uint32 InBlockAlignment, VkBufferUsageFlags InBufferUsage)
 
virtual ~FTempBlockAllocator ()
 
uint8Alloc (uint32 InSize, FVulkanContextCommon &Context, VkDescriptorBufferBindingInfoEXT &OutBindingInfo, VkDeviceSize &OutOffset)
 
uint8Alloc (uint32 InSize, uint32 InAlignment, FVulkanContextCommon &Context, FVulkanAllocation &OutAllocation, VkDescriptorAddressInfoEXT *OutDescriptorAddressInfo=nullptr)
 
uint8Alloc (uint32 InSize, FVulkanContextCommon &Context, VkStridedDeviceAddressRegionKHR *OutStridedDeviceAddressRegion)
 
void UpdateBlocks ()
 

Protected Member Functions

FTempMemoryBlockAllocBlock ()
 
FInternalAlloc InternalAlloc (uint32 InSize, FVulkanContextCommon &Context)
 

Protected Attributes

FVulkanDeviceDevice
 
const uint32 BlockSize
 
const uint32 BlockAlignment
 
const VkBufferUsageFlags BufferUsage
 
FTempMemoryBlockCurrentBlock = nullptr
 
TArray< FTempMemoryBlock * > BusyBlocks
 
TArray< FTempMemoryBlock * > AvailableBlocks
 
FRWLock RWLock
 

Constructor & Destructor Documentation

◆ FTempBlockAllocator()

VulkanRHI::FTempBlockAllocator::FTempBlockAllocator ( FVulkanDevice InDevice,
uint32  InBlockSize,
uint32  InBlockAlignment,
VkBufferUsageFlags  InBufferUsage 
)

◆ ~FTempBlockAllocator()

VulkanRHI::FTempBlockAllocator::~FTempBlockAllocator ( )
virtual

Member Function Documentation

◆ Alloc() [1/3]

uint8 * VulkanRHI::FTempBlockAllocator::Alloc ( uint32  InSize,
FVulkanContextCommon Context,
VkDescriptorBufferBindingInfoEXT OutBindingInfo,
VkDeviceSize OutOffset 
)

◆ Alloc() [2/3]

uint8 * VulkanRHI::FTempBlockAllocator::Alloc ( uint32  InSize,
FVulkanContextCommon Context,
VkStridedDeviceAddressRegionKHR OutStridedDeviceAddressRegion 
)

◆ Alloc() [3/3]

uint8 * VulkanRHI::FTempBlockAllocator::Alloc ( uint32  InSize,
uint32  InAlignment,
FVulkanContextCommon Context,
FVulkanAllocation OutAllocation,
VkDescriptorAddressInfoEXT OutDescriptorAddressInfo = nullptr 
)

◆ AllocBlock()

FTempBlockAllocator::FTempMemoryBlock * VulkanRHI::FTempBlockAllocator::AllocBlock ( )
protected

◆ InternalAlloc()

FTempBlockAllocator::FInternalAlloc VulkanRHI::FTempBlockAllocator::InternalAlloc ( uint32  InSize,
FVulkanContextCommon Context 
)
protected

◆ UpdateBlocks()

void VulkanRHI::FTempBlockAllocator::UpdateBlocks ( )

Member Data Documentation

◆ AvailableBlocks

TArray<FTempMemoryBlock*> VulkanRHI::FTempBlockAllocator::AvailableBlocks
protected

◆ BlockAlignment

const uint32 VulkanRHI::FTempBlockAllocator::BlockAlignment
protected

◆ BlockSize

const uint32 VulkanRHI::FTempBlockAllocator::BlockSize
protected

◆ BufferUsage

const VkBufferUsageFlags VulkanRHI::FTempBlockAllocator::BufferUsage
protected

◆ BusyBlocks

TArray<FTempMemoryBlock*> VulkanRHI::FTempBlockAllocator::BusyBlocks
protected

◆ CurrentBlock

FTempMemoryBlock* VulkanRHI::FTempBlockAllocator::CurrentBlock = nullptr
protected

◆ Device

FVulkanDevice& VulkanRHI::FTempBlockAllocator::Device
protected

◆ RWLock

FRWLock VulkanRHI::FTempBlockAllocator::RWLock
protected

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