struct VmaBlockVector

Defined at line 7010 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

Sequence of VmaDeviceMemoryBlock. Represents memory blocks allocated for a specific

Vulkan memory type.

Synchronized internally with a mutex.

Public Methods

VmaAllocator GetAllocator ()

Defined at line 7029 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

VmaPool GetParentPool ()

Defined at line 7030 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

bool IsCustomPool ()

Defined at line 7031 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

uint32_t GetMemoryTypeIndex ()

Defined at line 7032 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

VkDeviceSize GetPreferredBlockSize ()

Defined at line 7033 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

VkDeviceSize GetBufferImageGranularity ()

Defined at line 7034 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

uint32_t GetFrameInUseCount ()

Defined at line 7035 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

uint32_t GetAlgorithm ()

Defined at line 7036 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

size_t GetBlockCount ()

/////////////////////////////////////////////////////////////////////////////

To be used only while the m_Mutex is locked. Used during defragmentation.

Defined at line 7089 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

VmaDeviceMemoryBlock * GetBlock (size_t index)

Defined at line 7090 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

void VmaBlockVector (VmaAllocator hAllocator, VmaPool hParentPool, uint32_t memoryTypeIndex, VkDeviceSize preferredBlockSize, size_t minBlockCount, size_t maxBlockCount, VkDeviceSize bufferImageGranularity, uint32_t frameInUseCount, bool explicitBlockSize, uint32_t algorithm)

Defined at line 12586 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

void ~VmaBlockVector ()

Defined at line 12613 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

VkResult CreateMinBlocks ()

Defined at line 12622 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

void GetPoolStats (VmaPoolStats * pStats)

Defined at line 12635 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

bool IsEmpty ()

Defined at line 12657 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

bool IsCorruptionDetectionEnabled ()

Defined at line 12663 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

VkResult Allocate (uint32_t currentFrameIndex, VkDeviceSize size, VkDeviceSize alignment, const VmaAllocationCreateInfo & createInfo, VmaSuballocationType suballocType, size_t allocationCount, VmaAllocation * pAllocations)

Defined at line 12674 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

void Free (const VmaAllocation hAllocation)

Defined at line 13101 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

void AddStats (VmaStats * pStats)

Adds statistics of this BlockVector to pStats.

Defined at line 13904 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

void PrintDetailedMap (class VmaJsonWriter & json)

Defined at line 13572 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

void MakePoolAllocationsLost (uint32_t currentFrameIndex, size_t * pLostAllocationCount)

Defined at line 13865 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

VkResult CheckCorruption ()

Defined at line 13883 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

void Defragment (class VmaBlockVectorDefragmentationContext * pCtx, VmaDefragmentationStats * pStats, VmaDefragmentationFlags flags, VkDeviceSize & maxCpuBytesToMove, uint32_t & maxCpuAllocationsToMove, VkDeviceSize & maxGpuBytesToMove, uint32_t & maxGpuAllocationsToMove, VkCommandBuffer commandBuffer)

Saves results in pCtx->res.

Defined at line 13644 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

void DefragmentationEnd (class VmaBlockVectorDefragmentationContext * pCtx, uint32_t flags, VmaDefragmentationStats * pStats)

Defined at line 13752 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

uint32_t ProcessDefragmentations (class VmaBlockVectorDefragmentationContext * pCtx, VmaDefragmentationPassMoveInfo * pMove, uint32_t maxMoves)

Defined at line 13793 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

void CommitDefragmentations (class VmaBlockVectorDefragmentationContext * pCtx, VmaDefragmentationStats * pStats)

Defined at line 13817 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

size_t CalcAllocationCount ()

Defined at line 13835 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

bool IsBufferImageGranularityConflictPossible ()

Defined at line 13845 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h

Friends

class VmaDefragmentationAlgorithm_Generic