Foundation
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
Foundation::RHI::VulkanVirtualAllocator Class Reference

#include <Device.hpp>

Inheritance diagram for Foundation::RHI::VulkanVirtualAllocator:
Foundation::RHI::RHIVirtualAllocator Foundation::RHI::RHIObject

Public Member Functions

 VulkanVirtualAllocator (const VulkanDevice &device, uint64_t size)
 
 ~VulkanVirtualAllocator () override
 
uint64_t Allocate (uint64_t size, uint64_t alignment) override
 Sub-allocates size bytes with the given alignment.
 
void Free (uint64_t offset) override
 
void Clear () override
 
uint64_t GetUsedBytes () const override
 
uint64_t GetCapacity () const override
 
uint64_t GetPeakUsage () const override
 
- Public Member Functions inherited from Foundation::RHI::RHIObject
 RHIObject ()=default
 
 RHIObject (RHIObject const &)=delete
 
RHIObjectoperator= (const RHIObject &)=delete
 
 RHIObject (RHIObject &&)=delete
 
RHIObjectoperator= (RHIObject &&)=delete
 
virtual ~RHIObject ()=default
 

Private Attributes

const VulkanDevicemDevice
 
VmaVirtualBlock mBlock {nullptr}
 
Map< uint64_t, VmaVirtualAllocationmAllocations
 
uint64_t mCapacity {0}
 
uint64_t mPeakUsage {0}
 

Additional Inherited Members

- Static Public Attributes inherited from Foundation::RHI::RHIVirtualAllocator
static constexpr uint64_t kInvalidOffset = ~0ull
 

Constructor & Destructor Documentation

◆ VulkanVirtualAllocator()

VulkanVirtualAllocator::VulkanVirtualAllocator ( const VulkanDevice device,
uint64_t  size 
)

◆ ~VulkanVirtualAllocator()

VulkanVirtualAllocator::~VulkanVirtualAllocator ( )
override

Member Function Documentation

◆ Allocate()

uint64_t VulkanVirtualAllocator::Allocate ( uint64_t  size,
uint64_t  alignment 
)
overridevirtual

Sub-allocates size bytes with the given alignment.

Returns
The byte offset, or kInvalidOffset when the space is exhausted.

Implements Foundation::RHI::RHIVirtualAllocator.

◆ Clear()

void VulkanVirtualAllocator::Clear ( )
overridevirtual

◆ Free()

void VulkanVirtualAllocator::Free ( uint64_t  offset)
overridevirtual

◆ GetCapacity()

uint64_t Foundation::RHI::VulkanVirtualAllocator::GetCapacity ( ) const
inlineoverridevirtual

◆ GetPeakUsage()

uint64_t Foundation::RHI::VulkanVirtualAllocator::GetPeakUsage ( ) const
inlineoverridevirtual

◆ GetUsedBytes()

uint64_t VulkanVirtualAllocator::GetUsedBytes ( ) const
overridevirtual

Member Data Documentation

◆ mAllocations

Map<uint64_t, VmaVirtualAllocation> Foundation::RHI::VulkanVirtualAllocator::mAllocations
private

◆ mBlock

VmaVirtualBlock Foundation::RHI::VulkanVirtualAllocator::mBlock {nullptr}
private

◆ mCapacity

uint64_t Foundation::RHI::VulkanVirtualAllocator::mCapacity {0}
private

◆ mDevice

const VulkanDevice& Foundation::RHI::VulkanVirtualAllocator::mDevice
private

◆ mPeakUsage

uint64_t Foundation::RHI::VulkanVirtualAllocator::mPeakUsage {0}
private

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