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

#include <VulkanResources.h>

+ Inheritance diagram for FVulkanBuffer:

Classes

struct  FBufferAlloc
 

Public Member Functions

 FVulkanBuffer (FVulkanDevice &InDevice, const FRHIBufferCreateDesc &CreateDesc, const FRHITransientHeapAllocation *InTransientHeapAllocation=nullptr)
 
virtual ~FVulkanBuffer ()
 
const VulkanRHI::FVulkanAllocationGetCurrentAllocation () const
 
VkBuffer GetHandle () const
 
bool IsVolatile () const
 
uint32 GetOffset () const
 
uint64 GetCurrentSize () const
 
VkDeviceAddress GetDeviceAddress () const
 
VkBufferUsageFlags GetBufferUsageFlags () const
 
VkIndexType GetIndexType () const
 
voidLock (FRHICommandListBase &RHICmdList, EResourceLockMode LockMode, uint32 Size, uint32 Offset)
 
void Unlock (FRHICommandListBase &RHICmdList)
 
void TakeOwnership (FVulkanBuffer &Other)
 
void ReleaseOwnership ()
 
template<typename T >
void DumpMemory (T Callback)
 
voidGetCurrentHostPointer ()
 
void IncrementLockCounter ()
 
TArray< VkSparseMemoryBindCommitReservedResource (uint64 RequiredCommitSizeInBytes)
 
- Public Member Functions inherited from FRHIBuffer
const FRHIBufferDescGetDesc () const
 
uint32 GetSize () const
 
uint32 GetStride () const
 
EBufferUsageFlags GetUsage () const
 
void SetName (FName InName)
 
- Public Member Functions inherited from FRHIViewableResource
ERHIAccess GetTrackedAccess_Unsafe () const
 
FName GetName () const
 
- Public Member Functions inherited from FRHIResource
RHI_API FRHIResource (ERHIResourceType InResourceType)
 
uint32 AddRef () const
 
uint32 Release () const
 
uint32 GetRefCount () const
 
bool IsValid () const
 
void DisableLifetimeExtension ()
 
ERHIResourceType GetType () const
 
FName GetOwnerName () const
 
void SetOwnerName (FName InOwnerName)
 
- Public Member Functions inherited from FVulkanViewableResource
virtual ~FVulkanViewableResource ()
 
bool HasLinkedViews () const
 
virtual void UpdateLinkedViews (const FVulkanContextArray &Contexts)
 

Static Public Member Functions

static VkBufferUsageFlags UEToVKBufferUsageFlags (FVulkanDevice &InDevice, EBufferUsageFlags InUEUsage, bool bZeroSize)
 

Protected Types

enum class  ELockStatus : uint8 { Unlocked , Locked , PersistentMapping }
 

Protected Member Functions

void AllocateMemory (FBufferAlloc &OutAlloc)
 
- Protected Member Functions inherited from FRHIBuffer
 FRHIBuffer ()=delete
 
RHI_API FRHIBuffer (const FRHIBufferCreateDesc &CreateDesc)
 
void TakeOwnership (FRHIBuffer &Other)
 
void ReleaseOwnership ()
 
- Protected Member Functions inherited from FRHIViewableResource
 FRHIViewableResource (ERHIResourceType InResourceType, ERHIAccess InAccess, const TCHAR *InName, FName InOwnerName)
 
virtual void SetTrackedAccessFromContext (FRHITrackedAccess InTrackedAccess)
 
void TakeOwnership (FRHIViewableResource &Other)
 
void ReleaseOwnership ()
 
- Protected Member Functions inherited from FRHIResource
virtual RHI_API ~FRHIResource ()
 

Protected Attributes

FVulkanDeviceDevice
 
VkBufferUsageFlags BufferUsageFlags
 
enum FVulkanBuffer::ELockStatus LockStatus = ELockStatus::Unlocked
 
FBufferAlloc CurrentBufferAlloc
 
uint32 LockCounter = 0
 
TUniquePtr< FVulkanReservedResourceDataReservedResourceData
 
- Protected Attributes inherited from FRHIViewableResource
FName Name
 

Friends

class FVulkanCommandListContext
 
struct FRHICommandMultiBufferUnlock
 

Member Enumeration Documentation

◆ ELockStatus

enum class FVulkanBuffer::ELockStatus : uint8
strongprotected
Enumerator
Unlocked 
Locked 
PersistentMapping 

Constructor & Destructor Documentation

◆ FVulkanBuffer()

FVulkanBuffer::FVulkanBuffer ( FVulkanDevice InDevice,
const FRHIBufferCreateDesc CreateDesc,
const FRHITransientHeapAllocation InTransientHeapAllocation = nullptr 
)

◆ ~FVulkanBuffer()

FVulkanBuffer::~FVulkanBuffer ( )
virtual

Member Function Documentation

◆ AllocateMemory()

void FVulkanBuffer::AllocateMemory ( FBufferAlloc OutAlloc)
protected

◆ CommitReservedResource()

TArray< VkSparseMemoryBind > FVulkanBuffer::CommitReservedResource ( uint64  RequiredCommitSizeInBytes)

◆ DumpMemory()

template<typename T >
void FVulkanBuffer::DumpMemory ( Callback)
inline

◆ GetBufferUsageFlags()

VkBufferUsageFlags FVulkanBuffer::GetBufferUsageFlags ( ) const
inline

◆ GetCurrentAllocation()

const VulkanRHI::FVulkanAllocation & FVulkanBuffer::GetCurrentAllocation ( ) const
inline

◆ GetCurrentHostPointer()

void * FVulkanBuffer::GetCurrentHostPointer ( )
inline

◆ GetCurrentSize()

uint64 FVulkanBuffer::GetCurrentSize ( ) const
inline

◆ GetDeviceAddress()

VkDeviceAddress FVulkanBuffer::GetDeviceAddress ( ) const
inline

◆ GetHandle()

VkBuffer FVulkanBuffer::GetHandle ( ) const
inline

◆ GetIndexType()

VkIndexType FVulkanBuffer::GetIndexType ( ) const
inline

◆ GetOffset()

uint32 FVulkanBuffer::GetOffset ( ) const
inline

◆ IncrementLockCounter()

void FVulkanBuffer::IncrementLockCounter ( )
inline

◆ IsVolatile()

bool FVulkanBuffer::IsVolatile ( ) const
inline

◆ Lock()

void * FVulkanBuffer::Lock ( FRHICommandListBase RHICmdList,
EResourceLockMode  LockMode,
uint32  Size,
uint32  Offset 
)

◆ ReleaseOwnership()

void FVulkanBuffer::ReleaseOwnership ( )

◆ TakeOwnership()

void FVulkanBuffer::TakeOwnership ( FVulkanBuffer Other)

◆ UEToVKBufferUsageFlags()

VkBufferUsageFlags FVulkanBuffer::UEToVKBufferUsageFlags ( FVulkanDevice InDevice,
EBufferUsageFlags  InUEUsage,
bool  bZeroSize 
)
static

◆ Unlock()

void FVulkanBuffer::Unlock ( FRHICommandListBase RHICmdList)

Friends And Related Symbol Documentation

◆ FRHICommandMultiBufferUnlock

friend struct FRHICommandMultiBufferUnlock
friend

◆ FVulkanCommandListContext

Member Data Documentation

◆ BufferUsageFlags

VkBufferUsageFlags FVulkanBuffer::BufferUsageFlags
protected

◆ CurrentBufferAlloc

FBufferAlloc FVulkanBuffer::CurrentBufferAlloc
protected

◆ Device

FVulkanDevice& FVulkanBuffer::Device
protected

◆ LockCounter

uint32 FVulkanBuffer::LockCounter = 0
protected

◆ LockStatus

enum FVulkanBuffer::ELockStatus FVulkanBuffer::LockStatus = ELockStatus::Unlocked
protected

◆ ReservedResourceData

TUniquePtr<FVulkanReservedResourceData> FVulkanBuffer::ReservedResourceData
protected

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