struct VmaAllocator_T
Defined at line 7839 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
Main allocator object.
Public Members
bool m_UseMutex
uint32_t m_VulkanApiVersion
bool m_UseKhrDedicatedAllocation
bool m_UseKhrBindMemory2
bool m_UseExtMemoryBudget
bool m_UseAmdDeviceCoherentMemory
bool m_UseKhrBufferDeviceAddress
VkDevice m_hDevice
VkInstance m_hInstance
bool m_AllocationCallbacksSpecified
VkAllocationCallbacks m_AllocationCallbacks
VmaDeviceMemoryCallbacks m_DeviceMemoryCallbacks
VmaAllocationObjectAllocator m_AllocationObjectAllocator
uint32_t m_HeapSizeLimitMask
VkPhysicalDeviceProperties m_PhysicalDeviceProperties
VkPhysicalDeviceMemoryProperties m_MemProps
VmaBlockVector *[32] m_pBlockVectors
AllocationVectorType *[32] m_pDedicatedAllocations
VmaRWMutex[32] m_DedicatedAllocationsMutex
VmaCurrentBudgetData m_Budget
Public Methods
const VkAllocationCallbacks * GetAllocationCallbacks ()
Defined at line 7877 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
const VmaVulkanFunctions & GetVulkanFunctions ()
Defined at line 7881 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkPhysicalDevice GetPhysicalDevice ()
Defined at line 7886 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkDeviceSize GetBufferImageGranularity ()
Defined at line 7888 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
uint32_t GetMemoryHeapCount ()
Defined at line 7895 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
uint32_t GetMemoryTypeCount ()
Defined at line 7896 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
uint32_t MemoryTypeIndexToHeapIndex (uint32_t memTypeIndex)
Defined at line 7898 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
bool IsMemoryTypeNonCoherent (uint32_t memTypeIndex)
True when specific memory type is HOST_VISIBLE but not HOST_COHERENT.
Defined at line 7904 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkDeviceSize GetMemoryTypeMinAlignment (uint32_t memTypeIndex)
Minimum alignment for all allocations in specific memory type.
Defined at line 7910 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
bool IsIntegratedGpu ()
Defined at line 7917 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
uint32_t GetGlobalMemoryTypeBits ()
Defined at line 7922 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
uint32_t GetCurrentFrameIndex ()
Defined at line 7991 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
void VmaAllocator_T (const VmaAllocatorCreateInfo * pCreateInfo)
/////////////////////////////////////////////////////////////////////////////
VmaAllocator_T
Defined at line 15653 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkResult Init (const VmaAllocatorCreateInfo * pCreateInfo)
Defined at line 15801 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
void ~VmaAllocator_T ()
Defined at line 15840 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
void GetBufferMemoryRequirements (VkBuffer hBuffer, VkMemoryRequirements & memReq, bool & requiresDedicatedAllocation, bool & prefersDedicatedAllocation)
Defined at line 16389 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
void GetImageMemoryRequirements (VkImage hImage, VkMemoryRequirements & memReq, bool & requiresDedicatedAllocation, bool & prefersDedicatedAllocation)
Defined at line 16421 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkResult AllocateMemory (const VkMemoryRequirements & vkMemReq, bool requiresDedicatedAllocation, bool prefersDedicatedAllocation, VkBuffer dedicatedBuffer, VkBufferUsageFlags dedicatedBufferUsage, VkImage dedicatedImage, const VmaAllocationCreateInfo & createInfo, VmaSuballocationType suballocType, size_t allocationCount, VmaAllocation * pAllocations)
Main allocation function.
Defined at line 16453 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
void FreeMemory (size_t allocationCount, const VmaAllocation * pAllocations)
Main deallocation function.
Defined at line 16606 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkResult ResizeAllocation (const VmaAllocation alloc, VkDeviceSize newSize)
Defined at line 16659 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
void CalculateStats (VmaStats * pStats)
Defined at line 16675 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
void GetBudget (VmaBudget * outBudget, uint32_t firstHeap, uint32_t heapCount)
Defined at line 16726 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
void PrintDetailedMap (class VmaJsonWriter & json)
Defined at line 17604 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkResult DefragmentationBegin (const VmaDefragmentationInfo2 & info, VmaDefragmentationStats * pStats, VmaDefragmentationContext * pContext)
Defined at line 16780 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkResult DefragmentationEnd (VmaDefragmentationContext context)
Defined at line 16811 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkResult DefragmentationPassBegin (VmaDefragmentationPassInfo * pInfo, VmaDefragmentationContext context)
Defined at line 16818 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkResult DefragmentationPassEnd (VmaDefragmentationContext context)
Defined at line 16824 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
void GetAllocationInfo (VmaAllocation hAllocation, VmaAllocationInfo * pAllocationInfo)
Defined at line 16831 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
bool TouchAllocation (VmaAllocation hAllocation)
Defined at line 16903 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkResult CreatePool (const VmaPoolCreateInfo * pCreateInfo, VmaPool * pPool)
Defined at line 16955 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
void DestroyPool (VmaPool pool)
Defined at line 16998 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
void GetPoolStats (VmaPool pool, VmaPoolStats * pPoolStats)
Defined at line 17010 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
void SetCurrentFrameIndex (uint32_t frameIndex)
Defined at line 17015 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
void MakePoolAllocationsLost (VmaPool hPool, size_t * pLostAllocationCount)
Defined at line 17027 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkResult CheckPoolCorruption (VmaPool hPool)
Defined at line 17036 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkResult CheckCorruption (uint32_t memoryTypeBits)
Defined at line 17041 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
void CreateLostAllocation (VmaAllocation * pAllocation)
Defined at line 17091 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkResult AllocateVulkanMemory (const VkMemoryAllocateInfo * pAllocateInfo, VkDeviceMemory * pMemory)
Call to Vulkan function vkAllocateMemory with accompanying bookkeeping.
Defined at line 17097 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
void FreeVulkanMemory (uint32_t memoryType, VkDeviceSize size, VkDeviceMemory hMemory)
Call to Vulkan function vkFreeMemory with accompanying bookkeeping.
Defined at line 17147 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkResult BindVulkanBuffer (VkDeviceMemory memory, VkDeviceSize memoryOffset, VkBuffer buffer, const void * pNext)
Call to Vulkan function vkBindBufferMemory or vkBindBufferMemory2KHR.
Defined at line 17161 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkResult BindVulkanImage (VkDeviceMemory memory, VkDeviceSize memoryOffset, VkImage image, const void * pNext)
Call to Vulkan function vkBindImageMemory or vkBindImageMemory2KHR.
Defined at line 17192 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkResult Map (VmaAllocation hAllocation, void ** ppData)
Defined at line 17223 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
void Unmap (VmaAllocation hAllocation)
Defined at line 17252 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkResult BindBufferMemory (VmaAllocation hAllocation, VkDeviceSize allocationLocalOffset, VkBuffer hBuffer, const void * pNext)
Defined at line 17271 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkResult BindImageMemory (VmaAllocation hAllocation, VkDeviceSize allocationLocalOffset, VkImage hImage, const void * pNext)
Defined at line 17296 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkResult FlushOrInvalidateAllocation (VmaAllocation hAllocation, VkDeviceSize offset, VkDeviceSize size, VMA_CACHE_OPERATION op)
Defined at line 17321 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
VkResult FlushOrInvalidateAllocations (uint32_t allocationCount, const VmaAllocation * allocations, const VkDeviceSize * offsets, const VkDeviceSize * sizes, VMA_CACHE_OPERATION op)
Defined at line 17347 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
void FillAllocation (const VmaAllocation hAllocation, uint8_t pattern)
Defined at line 17570 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h
uint32_t GetGpuDefragmentationMemoryTypeBits ()
Returns bit mask of memory types that can support defragmentation on GPU as
they support creation of required buffer for copy operations.
Defined at line 17591 of file ../../src/ui/lib/escher/third_party/VulkanMemoryAllocator/vk_mem_alloc.h