From ad70fcb1bcbbaa2fe9f0153461230a0beed8bead Mon Sep 17 00:00:00 2001 From: sawickiap Date: Wed, 8 Oct 2025 20:17:51 +0200 Subject: [PATCH 1/3] Added VMA_VERSION macro Requested at https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/issues/507 - thanks @wbyates777 --- include/vk_mem_alloc.h | 2 ++ src/VulkanSample.cpp | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/include/vk_mem_alloc.h b/include/vk_mem_alloc.h index 77d41a79..32e60a5e 100644 --- a/include/vk_mem_alloc.h +++ b/include/vk_mem_alloc.h @@ -133,6 +133,8 @@ extern "C" { #include #endif +#define VMA_VERSION (VK_MAKE_VERSION(3, 4, 0)) + #if !defined(VMA_VULKAN_VERSION) #if defined(VK_VERSION_1_4) #define VMA_VULKAN_VERSION 1004000 diff --git a/src/VulkanSample.cpp b/src/VulkanSample.cpp index ef075110..1e36da48 100644 --- a/src/VulkanSample.cpp +++ b/src/VulkanSample.cpp @@ -2644,7 +2644,10 @@ static LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) static void PrintLogo() { - wprintf(L"%s\n", APP_TITLE_W); + wprintf(L"%s using VMA %d.%d.%d\n", APP_TITLE_W, + VK_VERSION_MAJOR(VMA_VERSION), + VK_VERSION_MINOR(VMA_VERSION), + VK_VERSION_PATCH(VMA_VERSION)); } static void PrintHelp() From c08b7afde0a816c18663a67de589aee07aae0ded Mon Sep 17 00:00:00 2001 From: sawickiap Date: Wed, 8 Oct 2025 20:27:04 +0200 Subject: [PATCH 2/3] Improvements in vmaFindMemoryTypeIndexForBufferInfo, vmaFindMemoryTypeIndexForImageInfo Based on https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/issues/506 - thanks @jmccarthy634 --- include/vk_mem_alloc.h | 66 ++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 34 deletions(-) diff --git a/include/vk_mem_alloc.h b/include/vk_mem_alloc.h index 32e60a5e..0c33f223 100644 --- a/include/vk_mem_alloc.h +++ b/include/vk_mem_alloc.h @@ -15902,7 +15902,8 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaFindMemoryTypeIndexForBufferInfo( VkResult res = VK_SUCCESS; #if VMA_KHR_MAINTENANCE4 || VMA_VULKAN_VERSION >= 1003000 - if(funcs->vkGetDeviceBufferMemoryRequirements) + if (funcs->vkGetDeviceBufferMemoryRequirements && + (allocator->m_UseKhrMaintenance4 || allocator->m_VulkanApiVersion >= VK_MAKE_VERSION(1, 3, 0))) { // Can query straight from VkBufferCreateInfo :) VkDeviceBufferMemoryRequirementsKHR devBufMemReq = {VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR}; @@ -15911,29 +15912,27 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaFindMemoryTypeIndexForBufferInfo( VkMemoryRequirements2 memReq = {VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2}; (*funcs->vkGetDeviceBufferMemoryRequirements)(hDev, &devBufMemReq, &memReq); - res = allocator->FindMemoryTypeIndex( + return allocator->FindMemoryTypeIndex( memReq.memoryRequirements.memoryTypeBits, pAllocationCreateInfo, VmaBufferImageUsage(*pBufferCreateInfo, allocator->m_UseKhrMaintenance5), pMemoryTypeIndex); } - else #endif // VMA_KHR_MAINTENANCE4 || VMA_VULKAN_VERSION >= 1003000 + + // Must create a dummy buffer to query :( + VkBuffer hBuffer = VK_NULL_HANDLE; + res = funcs->vkCreateBuffer( + hDev, pBufferCreateInfo, allocator->GetAllocationCallbacks(), &hBuffer); + if(res == VK_SUCCESS) { - // Must create a dummy buffer to query :( - VkBuffer hBuffer = VK_NULL_HANDLE; - res = funcs->vkCreateBuffer( - hDev, pBufferCreateInfo, allocator->GetAllocationCallbacks(), &hBuffer); - if(res == VK_SUCCESS) - { - VkMemoryRequirements memReq = {}; - funcs->vkGetBufferMemoryRequirements(hDev, hBuffer, &memReq); + VkMemoryRequirements memReq = {}; + funcs->vkGetBufferMemoryRequirements(hDev, hBuffer, &memReq); - res = allocator->FindMemoryTypeIndex( - memReq.memoryTypeBits, pAllocationCreateInfo, - VmaBufferImageUsage(*pBufferCreateInfo, allocator->m_UseKhrMaintenance5), pMemoryTypeIndex); + res = allocator->FindMemoryTypeIndex( + memReq.memoryTypeBits, pAllocationCreateInfo, + VmaBufferImageUsage(*pBufferCreateInfo, allocator->m_UseKhrMaintenance5), pMemoryTypeIndex); - funcs->vkDestroyBuffer( - hDev, hBuffer, allocator->GetAllocationCallbacks()); - } + funcs->vkDestroyBuffer( + hDev, hBuffer, allocator->GetAllocationCallbacks()); } return res; } @@ -15954,7 +15953,8 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaFindMemoryTypeIndexForImageInfo( VkResult res = VK_SUCCESS; #if VMA_KHR_MAINTENANCE4 || VMA_VULKAN_VERSION >= 1003000 - if(funcs->vkGetDeviceImageMemoryRequirements) + if(funcs->vkGetDeviceImageMemoryRequirements && + (allocator->m_UseKhrMaintenance4 || allocator->m_VulkanApiVersion >= VK_MAKE_VERSION(1, 3, 0))) { // Can query straight from VkImageCreateInfo :) VkDeviceImageMemoryRequirementsKHR devImgMemReq = {VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR}; @@ -15965,29 +15965,27 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaFindMemoryTypeIndexForImageInfo( VkMemoryRequirements2 memReq = {VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2}; (*funcs->vkGetDeviceImageMemoryRequirements)(hDev, &devImgMemReq, &memReq); - res = allocator->FindMemoryTypeIndex( + return allocator->FindMemoryTypeIndex( memReq.memoryRequirements.memoryTypeBits, pAllocationCreateInfo, VmaBufferImageUsage(*pImageCreateInfo), pMemoryTypeIndex); } - else #endif // VMA_KHR_MAINTENANCE4 || VMA_VULKAN_VERSION >= 1003000 + + // Must create a dummy image to query :( + VkImage hImage = VK_NULL_HANDLE; + res = funcs->vkCreateImage( + hDev, pImageCreateInfo, allocator->GetAllocationCallbacks(), &hImage); + if(res == VK_SUCCESS) { - // Must create a dummy image to query :( - VkImage hImage = VK_NULL_HANDLE; - res = funcs->vkCreateImage( - hDev, pImageCreateInfo, allocator->GetAllocationCallbacks(), &hImage); - if(res == VK_SUCCESS) - { - VkMemoryRequirements memReq = {}; - funcs->vkGetImageMemoryRequirements(hDev, hImage, &memReq); + VkMemoryRequirements memReq = {}; + funcs->vkGetImageMemoryRequirements(hDev, hImage, &memReq); - res = allocator->FindMemoryTypeIndex( - memReq.memoryTypeBits, pAllocationCreateInfo, - VmaBufferImageUsage(*pImageCreateInfo), pMemoryTypeIndex); + res = allocator->FindMemoryTypeIndex( + memReq.memoryTypeBits, pAllocationCreateInfo, + VmaBufferImageUsage(*pImageCreateInfo), pMemoryTypeIndex); - funcs->vkDestroyImage( - hDev, hImage, allocator->GetAllocationCallbacks()); - } + funcs->vkDestroyImage( + hDev, hImage, allocator->GetAllocationCallbacks()); } return res; } From f6c972f483e1d15660113b916d95791ef3e2948e Mon Sep 17 00:00:00 2001 From: sawickiap Date: Wed, 15 Oct 2025 19:31:17 +0200 Subject: [PATCH 3/3] Removed outdated information from documentation Based on https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/issues/509 - thanks @spencer-lunarg --- docs/html/allocation_annotation.html | 12 +- docs/html/choosing_memory_type.html | 20 +- docs/html/custom_memory_pools.html | 16 +- docs/html/defragmentation.html | 22 +- docs/html/doxygen_crawl.html | 2 + docs/html/general_considerations.html | 4 - docs/html/globals.html | 1 + docs/html/globals_defs.html | 84 +++++++ docs/html/group__group__init.html | 22 +- docs/html/memory_mapping.html | 16 +- docs/html/menudata.js | 3 +- docs/html/other_api_interop.html | 14 +- docs/html/quick_start.html | 22 +- docs/html/resource_aliasing.html | 4 +- docs/html/search/all_14.js | 257 +++++++++++---------- docs/html/search/defines_0.js | 4 + docs/html/search/searchdata.js | 15 +- docs/html/usage_patterns.html | 24 +- docs/html/virtual_allocator.html | 20 +- docs/html/vk__mem__alloc_8h.html | 20 ++ docs/html/vk_ext_memory_priority.html | 12 +- docs/html/vk_khr_dedicated_allocation.html | 2 +- include/vk_mem_alloc.h | 3 - 23 files changed, 354 insertions(+), 245 deletions(-) create mode 100644 docs/html/globals_defs.html create mode 100644 docs/html/search/defines_0.js diff --git a/docs/html/allocation_annotation.html b/docs/html/allocation_annotation.html index 67b42d56..73454683 100644 --- a/docs/html/allocation_annotation.html +++ b/docs/html/allocation_annotation.html @@ -93,18 +93,18 @@
VmaAllocation allocation;
vmaCreateBuffer(allocator, &bufCreateInfo, &allocCreateInfo, &buffer, &allocation, nullptr);
VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
Creates a new VkBuffer, allocates and binds memory for it.
-
@ VMA_MEMORY_USAGE_AUTO
Definition vk_mem_alloc.h:551
-
Parameters of new VmaAllocation.
Definition vk_mem_alloc.h:1292
-
void * pUserData
Custom general-purpose pointer that will be stored in VmaAllocation, can be read as VmaAllocationInfo...
Definition vk_mem_alloc.h:1331
-
VmaMemoryUsage usage
Intended usage of memory.
Definition vk_mem_alloc.h:1300
+
@ VMA_MEMORY_USAGE_AUTO
Definition vk_mem_alloc.h:553
+
Parameters of new VmaAllocation.
Definition vk_mem_alloc.h:1294
+
void * pUserData
Custom general-purpose pointer that will be stored in VmaAllocation, can be read as VmaAllocationInfo...
Definition vk_mem_alloc.h:1333
+
VmaMemoryUsage usage
Intended usage of memory.
Definition vk_mem_alloc.h:1302
Represents single memory allocation.

The pointer may be later retrieved as VmaAllocationInfo::pUserData:

vmaGetAllocationInfo(allocator, allocation, &allocInfo);
MyBufferMetadata* pMetadata = (MyBufferMetadata*)allocInfo.pUserData;
void vmaGetAllocationInfo(VmaAllocator allocator, VmaAllocation allocation, VmaAllocationInfo *pAllocationInfo)
Returns current information about specified allocation.
-
Definition vk_mem_alloc.h:1411
-
void * pUserData
Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vma...
Definition vk_mem_alloc.h:1458
+
Definition vk_mem_alloc.h:1413
+
void * pUserData
Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vma...
Definition vk_mem_alloc.h:1460

It can also be changed using function vmaSetAllocationUserData().

Values of (non-zero) allocations' pUserData are printed in JSON report created by vmaBuildStatsString() in hexadecimal form.

diff --git a/docs/html/choosing_memory_type.html b/docs/html/choosing_memory_type.html index e924f704..3e83c9b3 100644 --- a/docs/html/choosing_memory_type.html +++ b/docs/html/choosing_memory_type.html @@ -103,9 +103,9 @@

VmaAllocation allocation;
vmaCreateBuffer(allocator, &bufferInfo, &allocInfo, &buffer, &allocation, nullptr);
VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
Creates a new VkBuffer, allocates and binds memory for it.
-
@ VMA_MEMORY_USAGE_AUTO
Definition vk_mem_alloc.h:551
-
Parameters of new VmaAllocation.
Definition vk_mem_alloc.h:1292
-
VmaMemoryUsage usage
Intended usage of memory.
Definition vk_mem_alloc.h:1300
+
@ VMA_MEMORY_USAGE_AUTO
Definition vk_mem_alloc.h:553
+
Parameters of new VmaAllocation.
Definition vk_mem_alloc.h:1294
+
VmaMemoryUsage usage
Intended usage of memory.
Definition vk_mem_alloc.h:1302
Represents single memory allocation.

If you have a preference for putting the resource in GPU (device) memory or CPU (host) memory on systems with discrete graphics card that have the memories separate, you can use VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE or VMA_MEMORY_USAGE_AUTO_PREFER_HOST.

When using VMA_MEMORY_USAGE_AUTO* while you want to map the allocated memory, you also need to specify one of the host access flags: VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT or VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT. This will help the library decide about preferred memory type to ensure it has VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT so you can map it.

@@ -121,8 +121,8 @@

VkBuffer stagingBuffer;
VmaAllocation stagingAllocation;
vmaCreateBuffer(allocator, &stagingBufferInfo, &stagingAllocInfo, &stagingBuffer, &stagingAllocation, nullptr);
-
@ VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT
Definition vk_mem_alloc.h:660
-
VmaAllocationCreateFlags flags
Use VmaAllocationCreateFlagBits enum.
Definition vk_mem_alloc.h:1294
+
@ VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT
Definition vk_mem_alloc.h:662
+
VmaAllocationCreateFlags flags
Use VmaAllocationCreateFlagBits enum.
Definition vk_mem_alloc.h:1296

For more examples of creating different kinds of resources, see chapter Recommended usage patterns. See also: Memory mapping.

Usage values VMA_MEMORY_USAGE_AUTO* are legal to use only when the library knows about the resource being created by having VkBufferCreateInfo / VkImageCreateInfo passed, so they work with functions like: vmaCreateBuffer(), vmaCreateImage(), vmaFindMemoryTypeIndexForBufferInfo() etc. If you allocate raw memory using function vmaAllocateMemory(), you have to use other means of selecting memory type, as described below.

Note
Old usage values (VMA_MEMORY_USAGE_GPU_ONLY, VMA_MEMORY_USAGE_CPU_ONLY, VMA_MEMORY_USAGE_CPU_TO_GPU, VMA_MEMORY_USAGE_GPU_TO_CPU, VMA_MEMORY_USAGE_CPU_COPY) are still available and work same way as in previous versions of the library for backward compatibility, but they are deprecated.
@@ -137,10 +137,10 @@

VkBuffer buffer;
VmaAllocation allocation;
vmaCreateBuffer(allocator, &bufferInfo, &allocInfo, &buffer, &allocation, nullptr);
-
@ VMA_ALLOCATION_CREATE_MAPPED_BIT
Set this flag to use a memory that will be persistently mapped and retrieve pointer to it.
Definition vk_mem_alloc.h:611
-
@ VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT
Definition vk_mem_alloc.h:672
-
VkMemoryPropertyFlags preferredFlags
Flags that preferably should be set in a memory type chosen for an allocation.
Definition vk_mem_alloc.h:1310
-
VkMemoryPropertyFlags requiredFlags
Flags that must be set in a Memory Type chosen for an allocation.
Definition vk_mem_alloc.h:1305
+
@ VMA_ALLOCATION_CREATE_MAPPED_BIT
Set this flag to use a memory that will be persistently mapped and retrieve pointer to it.
Definition vk_mem_alloc.h:613
+
@ VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT
Definition vk_mem_alloc.h:674
+
VkMemoryPropertyFlags preferredFlags
Flags that preferably should be set in a memory type chosen for an allocation.
Definition vk_mem_alloc.h:1312
+
VkMemoryPropertyFlags requiredFlags
Flags that must be set in a Memory Type chosen for an allocation.
Definition vk_mem_alloc.h:1307

A memory type is chosen that has all the required flags and as many preferred flags set as possible.

Value passed in VmaAllocationCreateInfo::usage is internally converted to a set of required and preferred flags, plus some extra "magic" (heuristics).

@@ -155,7 +155,7 @@

VkBuffer buffer;
VmaAllocation allocation;
vmaCreateBuffer(allocator, &bufferInfo, &allocInfo, &buffer, &allocation, nullptr);
-
uint32_t memoryTypeBits
Bitmask containing one bit set for every memory type acceptable for this allocation.
Definition vk_mem_alloc.h:1318
+
uint32_t memoryTypeBits
Bitmask containing one bit set for every memory type acceptable for this allocation.
Definition vk_mem_alloc.h:1320

You can also use this parameter to exclude some memory types. If you inspect memory heaps and types available on the current physical device and you determine that for some reason you don't want to use a specific memory type for the allocation, you can enable automatic memory type selection but exclude certain memory type or types by setting all bits of memoryTypeBits to 1 except the ones you choose.

// ...
uint32_t excludedMemoryTypeIndex = 2;
diff --git a/docs/html/custom_memory_pools.html b/docs/html/custom_memory_pools.html index fb7855d5..90449392 100644 --- a/docs/html/custom_memory_pools.html +++ b/docs/html/custom_memory_pools.html @@ -133,15 +133,15 @@
VkResult vmaCreatePool(VmaAllocator allocator, const VmaPoolCreateInfo *pCreateInfo, VmaPool *pPool)
Allocates Vulkan device memory and creates VmaPool object.
VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
Creates a new VkBuffer, allocates and binds memory for it.
VkResult vmaFindMemoryTypeIndexForBufferInfo(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, uint32_t *pMemoryTypeIndex)
Helps to find memoryTypeIndex, given VkBufferCreateInfo and VmaAllocationCreateInfo.
-
@ VMA_MEMORY_USAGE_AUTO
Definition vk_mem_alloc.h:551
-
Parameters of new VmaAllocation.
Definition vk_mem_alloc.h:1292
-
VmaPool pool
Pool that this allocation should be created in.
Definition vk_mem_alloc.h:1324
-
VmaMemoryUsage usage
Intended usage of memory.
Definition vk_mem_alloc.h:1300
+
@ VMA_MEMORY_USAGE_AUTO
Definition vk_mem_alloc.h:553
+
Parameters of new VmaAllocation.
Definition vk_mem_alloc.h:1294
+
VmaPool pool
Pool that this allocation should be created in.
Definition vk_mem_alloc.h:1326
+
VmaMemoryUsage usage
Intended usage of memory.
Definition vk_mem_alloc.h:1302
Represents single memory allocation.
-
Describes parameter of created VmaPool.
Definition vk_mem_alloc.h:1343
-
uint32_t memoryTypeIndex
Vulkan memory type index to allocate this pool from.
Definition vk_mem_alloc.h:1346
-
VkDeviceSize blockSize
Size of a single VkDeviceMemory block to be allocated as part of this pool, in bytes....
Definition vk_mem_alloc.h:1359
-
size_t maxBlockCount
Maximum number of blocks that can be allocated in this pool. Optional.
Definition vk_mem_alloc.h:1372
+
Describes parameter of created VmaPool.
Definition vk_mem_alloc.h:1345
+
uint32_t memoryTypeIndex
Vulkan memory type index to allocate this pool from.
Definition vk_mem_alloc.h:1348
+
VkDeviceSize blockSize
Size of a single VkDeviceMemory block to be allocated as part of this pool, in bytes....
Definition vk_mem_alloc.h:1361
+
size_t maxBlockCount
Maximum number of blocks that can be allocated in this pool. Optional.
Definition vk_mem_alloc.h:1374
Represents custom memory pool.

You have to free all allocations made from this pool before destroying it.

vmaDestroyBuffer(allocator, buf, alloc);
diff --git a/docs/html/defragmentation.html b/docs/html/defragmentation.html index b4d9cb28..dff4b8dd 100644 --- a/docs/html/defragmentation.html +++ b/docs/html/defragmentation.html @@ -143,18 +143,18 @@
VkResult vmaBeginDefragmentationPass(VmaAllocator allocator, VmaDefragmentationContext context, VmaDefragmentationPassMoveInfo *pPassInfo)
Starts single defragmentation pass.
VkResult vmaBeginDefragmentation(VmaAllocator allocator, const VmaDefragmentationInfo *pInfo, VmaDefragmentationContext *pContext)
Begins defragmentation process.
VkResult vmaEndDefragmentationPass(VmaAllocator allocator, VmaDefragmentationContext context, VmaDefragmentationPassMoveInfo *pPassInfo)
Ends single defragmentation pass.
-
@ VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FAST_BIT
Definition vk_mem_alloc.h:768
-
Definition vk_mem_alloc.h:1411
-
void * pUserData
Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vma...
Definition vk_mem_alloc.h:1458
+
@ VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FAST_BIT
Definition vk_mem_alloc.h:770
+
Definition vk_mem_alloc.h:1413
+
void * pUserData
Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vma...
Definition vk_mem_alloc.h:1460
An opaque object that represents started defragmentation process.
-
Parameters for defragmentation.
Definition vk_mem_alloc.h:1501
-
VmaPool pool
Custom pool to be defragmented.
Definition vk_mem_alloc.h:1508
-
VmaDefragmentationFlags flags
Use combination of VmaDefragmentationFlagBits.
Definition vk_mem_alloc.h:1503
-
VmaAllocation srcAllocation
Allocation that should be moved.
Definition vk_mem_alloc.h:1534
-
VmaAllocation dstTmpAllocation
Temporary allocation pointing to destination memory that will replace srcAllocation.
Definition vk_mem_alloc.h:1541
-
Parameters for incremental defragmentation steps.
Definition vk_mem_alloc.h:1549
-
uint32_t moveCount
Number of elements in the pMoves array.
Definition vk_mem_alloc.h:1551
-
VmaDefragmentationMove * pMoves
Array of moves to be performed by the user in the current defragmentation pass.
Definition vk_mem_alloc.h:1575
+
Parameters for defragmentation.
Definition vk_mem_alloc.h:1503
+
VmaPool pool
Custom pool to be defragmented.
Definition vk_mem_alloc.h:1510
+
VmaDefragmentationFlags flags
Use combination of VmaDefragmentationFlagBits.
Definition vk_mem_alloc.h:1505
+
VmaAllocation srcAllocation
Allocation that should be moved.
Definition vk_mem_alloc.h:1536
+
VmaAllocation dstTmpAllocation
Temporary allocation pointing to destination memory that will replace srcAllocation.
Definition vk_mem_alloc.h:1543
+
Parameters for incremental defragmentation steps.
Definition vk_mem_alloc.h:1551
+
uint32_t moveCount
Number of elements in the pMoves array.
Definition vk_mem_alloc.h:1553
+
VmaDefragmentationMove * pMoves
Array of moves to be performed by the user in the current defragmentation pass.
Definition vk_mem_alloc.h:1577

Although functions like vmaCreateBuffer(), vmaCreateImage(), vmaDestroyBuffer(), vmaDestroyImage() create/destroy an allocation and a buffer/image at once, these are just a shortcut for creating the resource, allocating memory, and binding them together. Defragmentation works on memory allocations only. You must handle the rest manually. Defragmentation is an iterative process that should repreat "passes" as long as related functions return VK_INCOMPLETE not VK_SUCCESS. In each pass:

  1. vmaBeginDefragmentationPass() function call: -
  2. Mapping an image with layout VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL can result in undefined behavior if this memory is used by the device. Only GENERAL or PREINITIALIZED should be used.
    • It happens when you map a buffer or image, because the library maps entire VkDeviceMemory block, where different types of images and buffers may end up together, especially on GPUs with unified memory like Intel.
    diff --git a/docs/html/globals.html b/docs/html/globals.html index 3b564820..564913d8 100644 --- a/docs/html/globals.html +++ b/docs/html/globals.html @@ -134,6 +134,7 @@

    - v -

    • VMA_POOL_CREATE_FLAG_BITS_MAX_ENUM : vk_mem_alloc.h
    • VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT : vk_mem_alloc.h
    • VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT : vk_mem_alloc.h
    • +
    • VMA_VERSION : vk_mem_alloc.h
    • VMA_VIRTUAL_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM : vk_mem_alloc.h
    • VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MASK : vk_mem_alloc.h
    • VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT : vk_mem_alloc.h
    • diff --git a/docs/html/globals_defs.html b/docs/html/globals_defs.html new file mode 100644 index 00000000..ac84a426 --- /dev/null +++ b/docs/html/globals_defs.html @@ -0,0 +1,84 @@ + + + + + + + +Vulkan Memory Allocator: File Members + + + + + + + + + + + +
      +
      + + + + + + +
      +
      Vulkan Memory Allocator +
      +
      +
      + + + + + + + + +
      +
      + +
      +
      + + +
      +
      +
      +
      +
      +
      Loading...
      +
      Searching...
      +
      No Matches
      +
      +
      +
      +
      + +
      +
      Here is a list of all macros with links to the files they belong to:
      +
      + + +
      + + diff --git a/docs/html/group__group__init.html b/docs/html/group__group__init.html index b9baf9e2..1d83484e 100644 --- a/docs/html/group__group__init.html +++ b/docs/html/group__group__init.html @@ -566,18 +566,18 @@

      // Check res...
      VkResult vmaCreateAllocator(const VmaAllocatorCreateInfo *pCreateInfo, VmaAllocator *pAllocator)
      Creates VmaAllocator object.
      VkResult vmaImportVulkanFunctionsFromVolk(const VmaAllocatorCreateInfo *pAllocatorCreateInfo, VmaVulkanFunctions *pDstVulkanFunctions)
      Fully initializes pDstVulkanFunctions structure with Vulkan functions needed by VMA using volk librar...
      -
      @ VMA_ALLOCATOR_CREATE_KHR_EXTERNAL_MEMORY_WIN32_BIT
      Definition vk_mem_alloc.h:484
      -
      @ VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT
      Definition vk_mem_alloc.h:408
      -
      @ VMA_ALLOCATOR_CREATE_EXT_MEMORY_PRIORITY_BIT
      Definition vk_mem_alloc.h:461
      -
      Description of a Allocator to be created.
      Definition vk_mem_alloc.h:1069
      -
      VkPhysicalDevice physicalDevice
      Vulkan physical device.
      Definition vk_mem_alloc.h:1074
      -
      VmaAllocatorCreateFlags flags
      Flags for created allocator. Use VmaAllocatorCreateFlagBits enum.
      Definition vk_mem_alloc.h:1071
      -
      const VmaVulkanFunctions * pVulkanFunctions
      Pointers to Vulkan functions. Can be null.
      Definition vk_mem_alloc.h:1117
      -
      VkInstance instance
      Handle to Vulkan instance object.
      Definition vk_mem_alloc.h:1122
      -
      VkDevice device
      Vulkan device.
      Definition vk_mem_alloc.h:1077
      -
      uint32_t vulkanApiVersion
      Optional. Vulkan version that the application uses.
      Definition vk_mem_alloc.h:1133
      +
      @ VMA_ALLOCATOR_CREATE_KHR_EXTERNAL_MEMORY_WIN32_BIT
      Definition vk_mem_alloc.h:486
      +
      @ VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT
      Definition vk_mem_alloc.h:410
      +
      @ VMA_ALLOCATOR_CREATE_EXT_MEMORY_PRIORITY_BIT
      Definition vk_mem_alloc.h:463
      +
      Description of a Allocator to be created.
      Definition vk_mem_alloc.h:1071
      +
      VkPhysicalDevice physicalDevice
      Vulkan physical device.
      Definition vk_mem_alloc.h:1076
      +
      VmaAllocatorCreateFlags flags
      Flags for created allocator. Use VmaAllocatorCreateFlagBits enum.
      Definition vk_mem_alloc.h:1073
      +
      const VmaVulkanFunctions * pVulkanFunctions
      Pointers to Vulkan functions. Can be null.
      Definition vk_mem_alloc.h:1119
      +
      VkInstance instance
      Handle to Vulkan instance object.
      Definition vk_mem_alloc.h:1124
      +
      VkDevice device
      Vulkan device.
      Definition vk_mem_alloc.h:1079
      +
      uint32_t vulkanApiVersion
      Optional. Vulkan version that the application uses.
      Definition vk_mem_alloc.h:1135
      Represents main object of this library initialized.
      -
      Pointers to some Vulkan functions - a subset used by the library.
      Definition vk_mem_alloc.h:1016
      +
      Pointers to some Vulkan functions - a subset used by the library.
      Definition vk_mem_alloc.h:1018

      Internally in this function, pointers to functions related to the entire Vulkan instance are fetched using global function definitions, while pointers to functions related to the Vulkan device are fetched using volkLoadDeviceTable() for given pAllocatorCreateInfo->device.

      diff --git a/docs/html/memory_mapping.html b/docs/html/memory_mapping.html index 84edf775..bdc0de94 100644 --- a/docs/html/memory_mapping.html +++ b/docs/html/memory_mapping.html @@ -105,11 +105,11 @@

      vmaCopyMemoryToAllocation(allocator, &constantBufferData, alloc, 0, sizeof(ConstantBuffer));
      VkResult vmaCopyMemoryToAllocation(VmaAllocator allocator, const void *pSrcHostPointer, VmaAllocation dstAllocation, VkDeviceSize dstAllocationLocalOffset, VkDeviceSize size)
      Maps the allocation temporarily if needed, copies data from specified host pointer to it,...
      VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
      Creates a new VkBuffer, allocates and binds memory for it.
      -
      @ VMA_MEMORY_USAGE_AUTO
      Definition vk_mem_alloc.h:551
      -
      @ VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT
      Definition vk_mem_alloc.h:660
      -
      Parameters of new VmaAllocation.
      Definition vk_mem_alloc.h:1292
      -
      VmaMemoryUsage usage
      Intended usage of memory.
      Definition vk_mem_alloc.h:1300
      -
      VmaAllocationCreateFlags flags
      Use VmaAllocationCreateFlagBits enum.
      Definition vk_mem_alloc.h:1294
      +
      @ VMA_MEMORY_USAGE_AUTO
      Definition vk_mem_alloc.h:553
      +
      @ VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT
      Definition vk_mem_alloc.h:662
      +
      Parameters of new VmaAllocation.
      Definition vk_mem_alloc.h:1294
      +
      VmaMemoryUsage usage
      Intended usage of memory.
      Definition vk_mem_alloc.h:1302
      +
      VmaAllocationCreateFlags flags
      Use VmaAllocationCreateFlagBits enum.
      Definition vk_mem_alloc.h:1296
      Represents single memory allocation.

      Copy in the other direction - from an allocation to a host pointer can be performed the same way using function vmaCopyAllocationToMemory().

      @@ -156,9 +156,9 @@

      // Buffer is already mapped. You can access its memory.
      memcpy(allocInfo.pMappedData, &constantBufferData, sizeof(constantBufferData));
      -
      @ VMA_ALLOCATION_CREATE_MAPPED_BIT
      Set this flag to use a memory that will be persistently mapped and retrieve pointer to it.
      Definition vk_mem_alloc.h:611
      -
      Definition vk_mem_alloc.h:1411
      -
      void * pMappedData
      Pointer to the beginning of this allocation as mapped data.
      Definition vk_mem_alloc.h:1453
      +
      @ VMA_ALLOCATION_CREATE_MAPPED_BIT
      Set this flag to use a memory that will be persistently mapped and retrieve pointer to it.
      Definition vk_mem_alloc.h:613
      +
      Definition vk_mem_alloc.h:1413
      +
      void * pMappedData
      Pointer to the beginning of this allocation as mapped data.
      Definition vk_mem_alloc.h:1455
      Note
      VMA_ALLOCATION_CREATE_MAPPED_BIT by itself doesn't guarantee that the allocation will end up in a mappable memory type. For this, you need to also specify VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT or VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT. VMA_ALLOCATION_CREATE_MAPPED_BIT only guarantees that if the memory is HOST_VISIBLE, the allocation will be mapped on creation. For an example of how to make use of this fact, see section Advanced data uploading.

      Cache flush and invalidate

      diff --git a/docs/html/menudata.js b/docs/html/menudata.js index 4c345edc..9f63f953 100644 --- a/docs/html/menudata.js +++ b/docs/html/menudata.js @@ -71,4 +71,5 @@ var menudata={children:[ {text:"v",url:"globals_type.html#index_v"}]}, {text:"Enumerations",url:"globals_enum.html"}, {text:"Enumerator",url:"globals_eval.html",children:[ -{text:"v",url:"globals_eval.html#index_v"}]}]}]}]} +{text:"v",url:"globals_eval.html#index_v"}]}, +{text:"Macros",url:"globals_defs.html"}]}]}]} diff --git a/docs/html/other_api_interop.html b/docs/html/other_api_interop.html index 1d3899d4..a29afda9 100644 --- a/docs/html/other_api_interop.html +++ b/docs/html/other_api_interop.html @@ -137,12 +137,12 @@

      void vmaDestroyPool(VmaAllocator allocator, VmaPool pool)
      Destroys VmaPool object and frees Vulkan device memory.
      VkResult vmaCreatePool(VmaAllocator allocator, const VmaPoolCreateInfo *pCreateInfo, VmaPool *pPool)
      Allocates Vulkan device memory and creates VmaPool object.
      VkResult vmaFindMemoryTypeIndexForBufferInfo(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, uint32_t *pMemoryTypeIndex)
      Helps to find memoryTypeIndex, given VkBufferCreateInfo and VmaAllocationCreateInfo.
      -
      @ VMA_MEMORY_USAGE_AUTO
      Definition vk_mem_alloc.h:551
      -
      Parameters of new VmaAllocation.
      Definition vk_mem_alloc.h:1292
      -
      VmaMemoryUsage usage
      Intended usage of memory.
      Definition vk_mem_alloc.h:1300
      -
      Describes parameter of created VmaPool.
      Definition vk_mem_alloc.h:1343
      -
      uint32_t memoryTypeIndex
      Vulkan memory type index to allocate this pool from.
      Definition vk_mem_alloc.h:1346
      -
      void *VkMemoryAllocateInfo pMemoryAllocateNext
      Additional pNext chain to be attached to VkMemoryAllocateInfo used for every allocation made by this ...
      Definition vk_mem_alloc.h:1395
      +
      @ VMA_MEMORY_USAGE_AUTO
      Definition vk_mem_alloc.h:553
      +
      Parameters of new VmaAllocation.
      Definition vk_mem_alloc.h:1294
      +
      VmaMemoryUsage usage
      Intended usage of memory.
      Definition vk_mem_alloc.h:1302
      +
      Describes parameter of created VmaPool.
      Definition vk_mem_alloc.h:1345
      +
      uint32_t memoryTypeIndex
      Vulkan memory type index to allocate this pool from.
      Definition vk_mem_alloc.h:1348
      +
      void *VkMemoryAllocateInfo pMemoryAllocateNext
      Additional pNext chain to be attached to VkMemoryAllocateInfo used for every allocation made by this ...
      Definition vk_mem_alloc.h:1397
      Represents custom memory pool.

      Note that the structure passed as VmaPoolCreateInfo::pMemoryAllocateNext must remain alive and unchanged for the whole lifetime of the custom pool, because it will be used when the pool allocates a new device memory block. No copy is made internally. This is why variable exportMemAllocInfo is defined as static.

      If you want to export all memory allocated by VMA from certain memory types, also dedicated allocations or other allocations made from default pools, an alternative solution is to fill in VmaAllocatorCreateInfo::pTypeExternalMemoryHandleTypes. It should point to an array with VkExternalMemoryHandleTypeFlagsKHR to be automatically passed by the library through VkExportMemoryAllocateInfoKHR on each allocation made from a specific memory type. You should not mix these two methods in a way that allows to apply both to the same memory type. Otherwise, VkExportMemoryAllocateInfoKHR structure would be attached twice to the pNext chain of VkMemoryAllocateInfo.

      @@ -173,7 +173,7 @@

      vmaDestroyBuffer(g_Allocator, buf, alloc);
      void vmaDestroyBuffer(VmaAllocator allocator, VkBuffer buffer, VmaAllocation allocation)
      Destroys Vulkan buffer and frees allocated memory.
      VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
      Creates a new VkBuffer, allocates and binds memory for it.
      -
      VmaPool pool
      Pool that this allocation should be created in.
      Definition vk_mem_alloc.h:1324
      +
      VmaPool pool
      Pool that this allocation should be created in.
      Definition vk_mem_alloc.h:1326
      Represents single memory allocation.

      If you need each allocation to have its own device memory block and start at offset 0, you can still do by using VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT flag. It works also with custom pools.

      diff --git a/docs/html/quick_start.html b/docs/html/quick_start.html index 04fe7fb8..d4f1c90a 100644 --- a/docs/html/quick_start.html +++ b/docs/html/quick_start.html @@ -189,14 +189,14 @@

      vmaDestroyAllocator(allocator);
      VkResult vmaCreateAllocator(const VmaAllocatorCreateInfo *pCreateInfo, VmaAllocator *pAllocator)
      Creates VmaAllocator object.
      void vmaDestroyAllocator(VmaAllocator allocator)
      Destroys allocator object.
      -
      @ VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT
      Definition vk_mem_alloc.h:408
      -
      Description of a Allocator to be created.
      Definition vk_mem_alloc.h:1069
      -
      VkPhysicalDevice physicalDevice
      Vulkan physical device.
      Definition vk_mem_alloc.h:1074
      -
      VmaAllocatorCreateFlags flags
      Flags for created allocator. Use VmaAllocatorCreateFlagBits enum.
      Definition vk_mem_alloc.h:1071
      -
      const VmaVulkanFunctions * pVulkanFunctions
      Pointers to Vulkan functions. Can be null.
      Definition vk_mem_alloc.h:1117
      -
      VkInstance instance
      Handle to Vulkan instance object.
      Definition vk_mem_alloc.h:1122
      -
      VkDevice device
      Vulkan device.
      Definition vk_mem_alloc.h:1077
      -
      uint32_t vulkanApiVersion
      Optional. Vulkan version that the application uses.
      Definition vk_mem_alloc.h:1133
      +
      @ VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT
      Definition vk_mem_alloc.h:410
      +
      Description of a Allocator to be created.
      Definition vk_mem_alloc.h:1071
      +
      VkPhysicalDevice physicalDevice
      Vulkan physical device.
      Definition vk_mem_alloc.h:1076
      +
      VmaAllocatorCreateFlags flags
      Flags for created allocator. Use VmaAllocatorCreateFlagBits enum.
      Definition vk_mem_alloc.h:1073
      +
      const VmaVulkanFunctions * pVulkanFunctions
      Pointers to Vulkan functions. Can be null.
      Definition vk_mem_alloc.h:1119
      +
      VkInstance instance
      Handle to Vulkan instance object.
      Definition vk_mem_alloc.h:1124
      +
      VkDevice device
      Vulkan device.
      Definition vk_mem_alloc.h:1079
      +
      uint32_t vulkanApiVersion
      Optional. Vulkan version that the application uses.
      Definition vk_mem_alloc.h:1135
      Represents main object of this library initialized.

      Other configuration options

      @@ -220,9 +220,9 @@

      VmaAllocation allocation;
      vmaCreateBuffer(allocator, &bufferInfo, &allocInfo, &buffer, &allocation, nullptr);
      VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
      Creates a new VkBuffer, allocates and binds memory for it.
      -
      @ VMA_MEMORY_USAGE_AUTO
      Definition vk_mem_alloc.h:551
      -
      Parameters of new VmaAllocation.
      Definition vk_mem_alloc.h:1292
      -
      VmaMemoryUsage usage
      Intended usage of memory.
      Definition vk_mem_alloc.h:1300
      +
      @ VMA_MEMORY_USAGE_AUTO
      Definition vk_mem_alloc.h:553
      +
      Parameters of new VmaAllocation.
      Definition vk_mem_alloc.h:1294
      +
      VmaMemoryUsage usage
      Intended usage of memory.
      Definition vk_mem_alloc.h:1302
      Represents single memory allocation.

      Don't forget to destroy your buffer and allocation objects when no longer needed:

      vmaDestroyBuffer(allocator, buffer, allocation);
      diff --git a/docs/html/resource_aliasing.html b/docs/html/resource_aliasing.html index 2d295a5e..30e90324 100644 --- a/docs/html/resource_aliasing.html +++ b/docs/html/resource_aliasing.html @@ -149,8 +149,8 @@
      void vmaFreeMemory(VmaAllocator allocator, VmaAllocation allocation)
      Frees memory previously allocated using vmaAllocateMemory(), vmaAllocateMemoryForBuffer(),...
      VkResult vmaBindImageMemory(VmaAllocator allocator, VmaAllocation allocation, VkImage image)
      Binds image to allocation.
      VkResult vmaAllocateMemory(VmaAllocator allocator, const VkMemoryRequirements *pVkMemoryRequirements, const VmaAllocationCreateInfo *pCreateInfo, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
      General purpose memory allocation.
      -
      Parameters of new VmaAllocation.
      Definition vk_mem_alloc.h:1292
      -
      VkMemoryPropertyFlags preferredFlags
      Flags that preferably should be set in a memory type chosen for an allocation.
      Definition vk_mem_alloc.h:1310
      +
      Parameters of new VmaAllocation.
      Definition vk_mem_alloc.h:1294
      +
      VkMemoryPropertyFlags preferredFlags
      Flags that preferably should be set in a memory type chosen for an allocation.
      Definition vk_mem_alloc.h:1312
      Represents single memory allocation.

      VMA also provides convenience functions that create a buffer or image and bind it to memory represented by an existing VmaAllocation: vmaCreateAliasingBuffer(), vmaCreateAliasingBuffer2(), vmaCreateAliasingImage(), vmaCreateAliasingImage2(). Versions with "2" offer additional parameter allocationLocalOffset.

      Remember that using resources that alias in memory requires proper synchronization. You need to issue a memory barrier to make sure commands that use img1 and img2 don't overlap on GPU timeline. You also need to treat a resource after aliasing as uninitialized - containing garbage data. For example, if you use img1 and then want to use img2, you need to issue an image memory barrier for img2 with oldLayout = VK_IMAGE_LAYOUT_UNDEFINED.

      diff --git a/docs/html/search/all_14.js b/docs/html/search/all_14.js index b81674ed..c6c08bc2 100644 --- a/docs/html/search/all_14.js +++ b/docs/html/search/all_14.js @@ -90,132 +90,133 @@ var searchData= ['vma_5fpool_5fcreate_5fflag_5fbits_5fmax_5fenum_87',['VMA_POOL_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7a1c7312bea9ea246846b9054fd6bd6aec',1,'vk_mem_alloc.h']]], ['vma_5fpool_5fcreate_5fignore_5fbuffer_5fimage_5fgranularity_5fbit_88',['VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7a9f1a499508a8edb4e8ba40aa0290a3d2',1,'vk_mem_alloc.h']]], ['vma_5fpool_5fcreate_5flinear_5falgorithm_5fbit_89',['VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7a13c8a444197c67866be9cb05599fc726',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fallocation_5fcreate_5fflag_5fbits_5fmax_5fenum_90',['VMA_VIRTUAL_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ac1163c03ea837fa663462dc286d6a1a9',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmask_91',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MASK',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ac5b5e45c335368d18df59c9f27df17e3',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmin_5fmemory_5fbit_92',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ae2a9591a62b5e3b1bdcbc81c6188a1bf',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmin_5foffset_5fbit_93',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_OFFSET_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6a3bb82d2aedd587a64846a1d7778852e6',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmin_5ftime_5fbit_94',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6a562d10a46012719d33167d3dc5dbbf9b',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fallocation_5fcreate_5fupper_5faddress_5fbit_95',['VMA_VIRTUAL_ALLOCATION_CREATE_UPPER_ADDRESS_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6a9524a329a55b5ec390d57d90b67ad78e',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fblock_5fcreate_5falgorithm_5fmask_96',['VMA_VIRTUAL_BLOCK_CREATE_ALGORITHM_MASK',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaaf9487467136e1a9e371894dc3a7c4844',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fblock_5fcreate_5fflag_5fbits_5fmax_5fenum_97',['VMA_VIRTUAL_BLOCK_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaa5fc0d333c3d5687a8bbf57df9b377a87',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fblock_5fcreate_5flinear_5falgorithm_5fbit_98',['VMA_VIRTUAL_BLOCK_CREATE_LINEAR_ALGORITHM_BIT',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaae6423e2fa2f3c9211b21c819e3f10f96',1,'vk_mem_alloc.h']]], - ['vmaallocatededicatedmemory_99',['vmaAllocateDedicatedMemory',['../group__group__alloc.html#ga9a0b91c157adec03dae1e6ea78d33625',1,'vk_mem_alloc.h']]], - ['vmaallocatememory_100',['vmaAllocateMemory',['../group__group__alloc.html#gabf28077dbf82d0908b8acbe8ee8dd9b8',1,'vk_mem_alloc.h']]], - ['vmaallocatememoryforbuffer_101',['vmaAllocateMemoryForBuffer',['../group__group__alloc.html#ga7fdf64415b6c3d83c454f28d2c53df7b',1,'vk_mem_alloc.h']]], - ['vmaallocatememoryforimage_102',['vmaAllocateMemoryForImage',['../group__group__alloc.html#ga0faa3f9e5fb233d29d1e00390650febb',1,'vk_mem_alloc.h']]], - ['vmaallocatememorypages_103',['vmaAllocateMemoryPages',['../group__group__alloc.html#gad37e82e492b3de38fc3f4cffd9ad0ae1',1,'vk_mem_alloc.h']]], - ['vmaallocation_104',['VmaAllocation',['../struct_vma_allocation.html',1,'']]], - ['vmaallocationcreateflagbits_105',['VmaAllocationCreateFlagBits',['../group__group__alloc.html#gad9889c10c798b040d59c92f257cae597',1,'VmaAllocationCreateFlagBits: vk_mem_alloc.h'],['../group__group__alloc.html#ga4fceecc301f4064dc808d3cd6c038941',1,'VmaAllocationCreateFlagBits: vk_mem_alloc.h']]], - ['vmaallocationcreateflags_106',['VmaAllocationCreateFlags',['../group__group__alloc.html#ga5225e5e11f8376f6a31a1791f3d6e817',1,'vk_mem_alloc.h']]], - ['vmaallocationcreateinfo_107',['VmaAllocationCreateInfo',['../struct_vma_allocation_create_info.html',1,'VmaAllocationCreateInfo'],['../group__group__alloc.html#ga3bf110892ea2fb4649fedb68488d026a',1,'VmaAllocationCreateInfo: vk_mem_alloc.h']]], - ['vmaallocationinfo_108',['VmaAllocationInfo',['../struct_vma_allocation_info.html',1,'VmaAllocationInfo'],['../group__group__alloc.html#ga1cf7774606721026a68aabe3af2e5b50',1,'VmaAllocationInfo: vk_mem_alloc.h']]], - ['vmaallocationinfo2_109',['VmaAllocationInfo2',['../struct_vma_allocation_info2.html',1,'VmaAllocationInfo2'],['../group__group__alloc.html#ga25ede29f830f326b8572a18ce879bf64',1,'VmaAllocationInfo2: vk_mem_alloc.h']]], - ['vmaallocator_110',['VmaAllocator',['../struct_vma_allocator.html',1,'']]], - ['vmaallocatorcreateflagbits_111',['VmaAllocatorCreateFlagBits',['../group__group__init.html#ga4f87c9100d154a65a4ad495f7763cf7c',1,'VmaAllocatorCreateFlagBits: vk_mem_alloc.h'],['../group__group__init.html#gafd73b95e737ee7e76f827cb5472f559f',1,'VmaAllocatorCreateFlagBits: vk_mem_alloc.h']]], - ['vmaallocatorcreateflags_112',['VmaAllocatorCreateFlags',['../group__group__init.html#gacfe6863e160722c2c1bbcf7573fddc4d',1,'vk_mem_alloc.h']]], - ['vmaallocatorcreateinfo_113',['VmaAllocatorCreateInfo',['../struct_vma_allocator_create_info.html',1,'VmaAllocatorCreateInfo'],['../group__group__init.html#gaad9652301d33759b83e52d4f3605a14a',1,'VmaAllocatorCreateInfo: vk_mem_alloc.h']]], - ['vmaallocatorinfo_114',['VmaAllocatorInfo',['../struct_vma_allocator_info.html',1,'VmaAllocatorInfo'],['../group__group__init.html#ga1988031b0223fdbd564250fa1edd942c',1,'VmaAllocatorInfo: vk_mem_alloc.h']]], - ['vmabegindefragmentation_115',['vmaBeginDefragmentation',['../group__group__alloc.html#gac3335566858b45541fa9c0d7a6bbb57e',1,'vk_mem_alloc.h']]], - ['vmabegindefragmentationpass_116',['vmaBeginDefragmentationPass',['../group__group__alloc.html#ga980d7da2ce3b1fd5c8b8476bc362cc00',1,'vk_mem_alloc.h']]], - ['vmabindbuffermemory_117',['vmaBindBufferMemory',['../group__group__alloc.html#ga6b0929b914b60cf2d45cac4bf3547470',1,'vk_mem_alloc.h']]], - ['vmabindbuffermemory2_118',['vmaBindBufferMemory2',['../group__group__alloc.html#ga861f4f27189a7d11ab9d9eedc825cb6b',1,'vk_mem_alloc.h']]], - ['vmabindimagememory_119',['vmaBindImageMemory',['../group__group__alloc.html#ga3d3ca45799923aa5d138e9e5f9eb2da5',1,'vk_mem_alloc.h']]], - ['vmabindimagememory2_120',['vmaBindImageMemory2',['../group__group__alloc.html#ga5f3502dd7d38b53fb1533ea3921d038d',1,'vk_mem_alloc.h']]], - ['vmabudget_121',['VmaBudget',['../struct_vma_budget.html',1,'VmaBudget'],['../group__group__stats.html#gaa078667e71b1ef24e87a6a30d128381d',1,'VmaBudget: vk_mem_alloc.h']]], - ['vmabuildstatsstring_122',['vmaBuildStatsString',['../group__group__stats.html#gaa4fee7eb5253377599ef4fd38c93c2a0',1,'vk_mem_alloc.h']]], - ['vmabuildvirtualblockstatsstring_123',['vmaBuildVirtualBlockStatsString',['../group__group__stats.html#ga52d810e1222c592e5d80556ad005f1e6',1,'vk_mem_alloc.h']]], - ['vmacalculatepoolstatistics_124',['vmaCalculatePoolStatistics',['../group__group__stats.html#ga50ba0eb25d2b363b792be4645ca7a380',1,'vk_mem_alloc.h']]], - ['vmacalculatestatistics_125',['vmaCalculateStatistics',['../group__group__stats.html#ga36f3484de7aa6cd6edc4de9edfa0ff59',1,'vk_mem_alloc.h']]], - ['vmacalculatevirtualblockstatistics_126',['vmaCalculateVirtualBlockStatistics',['../group__group__virtual.html#ga93c5741bca44b43e5b849cacbd616098',1,'vk_mem_alloc.h']]], - ['vmacheckcorruption_127',['vmaCheckCorruption',['../group__group__alloc.html#ga49329a7f030dafcf82f7b73334c22e98',1,'vk_mem_alloc.h']]], - ['vmacheckpoolcorruption_128',['vmaCheckPoolCorruption',['../group__group__alloc.html#gad535935619c7a549bf837e1bb0068f89',1,'vk_mem_alloc.h']]], - ['vmaclearvirtualblock_129',['vmaClearVirtualBlock',['../group__group__virtual.html#ga5eda6f55919fb05bd2f56a112590c571',1,'vk_mem_alloc.h']]], - ['vmacopyallocationtomemory_130',['vmaCopyAllocationToMemory',['../group__group__alloc.html#gaac883dd38863944335071213b9ae8477',1,'vk_mem_alloc.h']]], - ['vmacopymemorytoallocation_131',['vmaCopyMemoryToAllocation',['../group__group__alloc.html#ga11731ec58a3a43a22bb925e0780ef405',1,'vk_mem_alloc.h']]], - ['vmacreatealiasingbuffer_132',['vmaCreateAliasingBuffer',['../group__group__alloc.html#ga60d5d4803e3c82505a2bfddb929adb03',1,'vk_mem_alloc.h']]], - ['vmacreatealiasingbuffer2_133',['vmaCreateAliasingBuffer2',['../group__group__alloc.html#gaf0cf014344213e117bd9f9cf5f928122',1,'vk_mem_alloc.h']]], - ['vmacreatealiasingimage_134',['vmaCreateAliasingImage',['../group__group__alloc.html#gaebc4db1f94b53dba2338b4c0fd80d0dc',1,'vk_mem_alloc.h']]], - ['vmacreatealiasingimage2_135',['vmaCreateAliasingImage2',['../group__group__alloc.html#ga69ac829f5bb0737449fa92c2d971f1bb',1,'vk_mem_alloc.h']]], - ['vmacreateallocator_136',['vmaCreateAllocator',['../group__group__init.html#ga200692051ddb34240248234f5f4c17bb',1,'vk_mem_alloc.h']]], - ['vmacreatebuffer_137',['vmaCreateBuffer',['../group__group__alloc.html#gac72ee55598617e8eecca384e746bab51',1,'vk_mem_alloc.h']]], - ['vmacreatebufferwithalignment_138',['vmaCreateBufferWithAlignment',['../group__group__alloc.html#gaa06a690013a0d01e60894ac378083834',1,'vk_mem_alloc.h']]], - ['vmacreatededicatedbuffer_139',['vmaCreateDedicatedBuffer',['../group__group__alloc.html#gab313b89299877ca21c196027bed9e874',1,'vk_mem_alloc.h']]], - ['vmacreatededicatedimage_140',['vmaCreateDedicatedImage',['../group__group__alloc.html#ga07c66ffa000906a599d471047a7c0324',1,'vk_mem_alloc.h']]], - ['vmacreateimage_141',['vmaCreateImage',['../group__group__alloc.html#ga02a94f25679275851a53e82eacbcfc73',1,'vk_mem_alloc.h']]], - ['vmacreatepool_142',['vmaCreatePool',['../group__group__alloc.html#ga5c8770ded7c59c8caac6de0c2cb00b50',1,'vk_mem_alloc.h']]], - ['vmacreatevirtualblock_143',['vmaCreateVirtualBlock',['../group__group__virtual.html#gab585754076877265fdae33e5c40ef13b',1,'vk_mem_alloc.h']]], - ['vmadefragmentationcontext_144',['VmaDefragmentationContext',['../struct_vma_defragmentation_context.html',1,'']]], - ['vmadefragmentationflagbits_145',['VmaDefragmentationFlagBits',['../group__group__alloc.html#ga6552a65b71d16f378c6994b3ceaef50c',1,'VmaDefragmentationFlagBits: vk_mem_alloc.h'],['../group__group__alloc.html#ga13415cc0b443353a7b5abda300b833fc',1,'VmaDefragmentationFlagBits: vk_mem_alloc.h']]], - ['vmadefragmentationflags_146',['VmaDefragmentationFlags',['../group__group__alloc.html#ga88a77cef37e5d3c4fc9eb328885d048d',1,'vk_mem_alloc.h']]], - ['vmadefragmentationinfo_147',['VmaDefragmentationInfo',['../struct_vma_defragmentation_info.html',1,'VmaDefragmentationInfo'],['../group__group__alloc.html#ga2bf47f96bf92bed2a49461bd9af3acfa',1,'VmaDefragmentationInfo: vk_mem_alloc.h']]], - ['vmadefragmentationmove_148',['VmaDefragmentationMove',['../struct_vma_defragmentation_move.html',1,'VmaDefragmentationMove'],['../group__group__alloc.html#ga563f4b43d3e31ed603d80cacc9ba8589',1,'VmaDefragmentationMove: vk_mem_alloc.h']]], - ['vmadefragmentationmoveoperation_149',['VmaDefragmentationMoveOperation',['../group__group__alloc.html#gada9e3861caf96f08894b0bcc160ec257',1,'VmaDefragmentationMoveOperation: vk_mem_alloc.h'],['../group__group__alloc.html#ga2ea666deeb3c2c74806a097e27cdb4a1',1,'VmaDefragmentationMoveOperation: vk_mem_alloc.h']]], - ['vmadefragmentationpassmoveinfo_150',['VmaDefragmentationPassMoveInfo',['../struct_vma_defragmentation_pass_move_info.html',1,'VmaDefragmentationPassMoveInfo'],['../group__group__alloc.html#gad6799e8e2b1527abfc84d33bc44aeaf5',1,'VmaDefragmentationPassMoveInfo: vk_mem_alloc.h']]], - ['vmadefragmentationstats_151',['VmaDefragmentationStats',['../struct_vma_defragmentation_stats.html',1,'VmaDefragmentationStats'],['../group__group__alloc.html#gad94034192259c2e34a4d1c5e27810403',1,'VmaDefragmentationStats: vk_mem_alloc.h']]], - ['vmadestroyallocator_152',['vmaDestroyAllocator',['../group__group__init.html#gaa8d164061c88f22fb1fd3c8f3534bc1d',1,'vk_mem_alloc.h']]], - ['vmadestroybuffer_153',['vmaDestroyBuffer',['../group__group__alloc.html#ga0d9f4e4ba5bf9aab1f1c746387753d77',1,'vk_mem_alloc.h']]], - ['vmadestroyimage_154',['vmaDestroyImage',['../group__group__alloc.html#gae50d2cb3b4a3bfd4dd40987234e50e7e',1,'vk_mem_alloc.h']]], - ['vmadestroypool_155',['vmaDestroyPool',['../group__group__alloc.html#ga5485779c8f1948238fc4e92232fa65e1',1,'vk_mem_alloc.h']]], - ['vmadestroyvirtualblock_156',['vmaDestroyVirtualBlock',['../group__group__virtual.html#ga3795f7783ae2c182cede067d656f66a5',1,'vk_mem_alloc.h']]], - ['vmadetailedstatistics_157',['VmaDetailedStatistics',['../struct_vma_detailed_statistics.html',1,'VmaDetailedStatistics'],['../group__group__stats.html#ga9ab0c535a6ca655dc63b8609ab4b8394',1,'VmaDetailedStatistics: vk_mem_alloc.h']]], - ['vmadevicememorycallbacks_158',['VmaDeviceMemoryCallbacks',['../struct_vma_device_memory_callbacks.html',1,'VmaDeviceMemoryCallbacks'],['../group__group__init.html#ga77692d3c8770ea8882d573206bd27b2b',1,'VmaDeviceMemoryCallbacks: vk_mem_alloc.h']]], - ['vmaenddefragmentation_159',['vmaEndDefragmentation',['../group__group__alloc.html#ga59f01ca3d53d50b7cca9b442b77a3e87',1,'vk_mem_alloc.h']]], - ['vmaenddefragmentationpass_160',['vmaEndDefragmentationPass',['../group__group__alloc.html#gaded05a445742a00718ee766144c5c226',1,'vk_mem_alloc.h']]], - ['vmafindmemorytypeindex_161',['vmaFindMemoryTypeIndex',['../group__group__alloc.html#gaef15a94b58fbcb0fe706d5720e84a74a',1,'vk_mem_alloc.h']]], - ['vmafindmemorytypeindexforbufferinfo_162',['vmaFindMemoryTypeIndexForBufferInfo',['../group__group__alloc.html#gae790ab9ffaf7667fb8f62523e6897888',1,'vk_mem_alloc.h']]], - ['vmafindmemorytypeindexforimageinfo_163',['vmaFindMemoryTypeIndexForImageInfo',['../group__group__alloc.html#ga088da83d8eaf3ce9056d9ea0b981d472',1,'vk_mem_alloc.h']]], - ['vmaflushallocation_164',['vmaFlushAllocation',['../group__group__alloc.html#ga30c37c1eec6025f397be41644f48490f',1,'vk_mem_alloc.h']]], - ['vmaflushallocations_165',['vmaFlushAllocations',['../group__group__alloc.html#gac3dd00da721875ed99fa8a881922bdfc',1,'vk_mem_alloc.h']]], - ['vmafreememory_166',['vmaFreeMemory',['../group__group__alloc.html#ga11f0fbc034fa81a4efedd73d61ce7568',1,'vk_mem_alloc.h']]], - ['vmafreememorypages_167',['vmaFreeMemoryPages',['../group__group__alloc.html#ga834b1e4aef395c0a1d56a28e69a4a17e',1,'vk_mem_alloc.h']]], - ['vmafreestatsstring_168',['vmaFreeStatsString',['../group__group__stats.html#ga3104eb30d8122c84dd8541063f145288',1,'vk_mem_alloc.h']]], - ['vmafreevirtualblockstatsstring_169',['vmaFreeVirtualBlockStatsString',['../group__group__stats.html#ga47fb8d8aa69df4a7c23a9719b4080623',1,'vk_mem_alloc.h']]], - ['vmagetallocationinfo_170',['vmaGetAllocationInfo',['../group__group__alloc.html#ga86dd08aba8633bfa4ad0df2e76481d8b',1,'vk_mem_alloc.h']]], - ['vmagetallocationinfo2_171',['vmaGetAllocationInfo2',['../group__group__alloc.html#ga1405cf3eae2fd1305d645879173031a0',1,'vk_mem_alloc.h']]], - ['vmagetallocationmemoryproperties_172',['vmaGetAllocationMemoryProperties',['../group__group__alloc.html#ga571e87dd38e552249b56b1b0b982fad1',1,'vk_mem_alloc.h']]], - ['vmagetallocatorinfo_173',['vmaGetAllocatorInfo',['../group__group__init.html#gafa02231a791b37255720d566a52683e7',1,'vk_mem_alloc.h']]], - ['vmagetheapbudgets_174',['vmaGetHeapBudgets',['../group__group__stats.html#ga9f88db9d46a432c0ad7278cecbc5eaa7',1,'vk_mem_alloc.h']]], - ['vmagetmemoryproperties_175',['vmaGetMemoryProperties',['../group__group__init.html#gab88db292a17974f911182543fda52d19',1,'vk_mem_alloc.h']]], - ['vmagetmemorytypeproperties_176',['vmaGetMemoryTypeProperties',['../group__group__init.html#ga8701444752eb5de4464adb5a2b514bca',1,'vk_mem_alloc.h']]], - ['vmagetmemorywin32handle_177',['vmaGetMemoryWin32Handle',['../group__group__alloc.html#ga8d327b7458d8cf426b84b5efba9bb9bf',1,'vk_mem_alloc.h']]], - ['vmagetmemorywin32handle2_178',['vmaGetMemoryWin32Handle2',['../group__group__alloc.html#ga1a8d7aba3bf5a4de66c801b9988afa58',1,'vk_mem_alloc.h']]], - ['vmagetphysicaldeviceproperties_179',['vmaGetPhysicalDeviceProperties',['../group__group__init.html#gaecabf7b6e91ea87d0316fa0a9e014fe0',1,'vk_mem_alloc.h']]], - ['vmagetpoolname_180',['vmaGetPoolName',['../group__group__alloc.html#gaf09b4e4eafdbee812e8d73ddf960f030',1,'vk_mem_alloc.h']]], - ['vmagetpoolstatistics_181',['vmaGetPoolStatistics',['../group__group__stats.html#ga34d8e7d83774eed0caee5c5ae88e217d',1,'vk_mem_alloc.h']]], - ['vmagetvirtualallocationinfo_182',['vmaGetVirtualAllocationInfo',['../group__group__virtual.html#ga8ee14ceb1fe033ec84d8aa29e1f75afa',1,'vk_mem_alloc.h']]], - ['vmagetvirtualblockstatistics_183',['vmaGetVirtualBlockStatistics',['../group__group__virtual.html#ga2902aa3130866afcc64bb5f984113db3',1,'vk_mem_alloc.h']]], - ['vmaimportvulkanfunctionsfromvolk_184',['vmaImportVulkanFunctionsFromVolk',['../group__group__init.html#gaf8d9ee01910a7af7f552145ef0065b9c',1,'vk_mem_alloc.h']]], - ['vmainvalidateallocation_185',['vmaInvalidateAllocation',['../group__group__alloc.html#gaaa8412919139ef413a4215ac6a290fae',1,'vk_mem_alloc.h']]], - ['vmainvalidateallocations_186',['vmaInvalidateAllocations',['../group__group__alloc.html#gab25b558d75f7378ec944a1522fdcc3c5',1,'vk_mem_alloc.h']]], - ['vmaisvirtualblockempty_187',['vmaIsVirtualBlockEmpty',['../group__group__virtual.html#gacd53b5b1d23f8fcbad692ccfdc1811f1',1,'vk_mem_alloc.h']]], - ['vmamapmemory_188',['vmaMapMemory',['../group__group__alloc.html#gad5bd1243512d099706de88168992f069',1,'vk_mem_alloc.h']]], - ['vmamemoryusage_189',['VmaMemoryUsage',['../group__group__alloc.html#gaa5846affa1e9da3800e3e78fae2305cc',1,'VmaMemoryUsage: vk_mem_alloc.h'],['../group__group__alloc.html#ga806e8499dde802e59eb72a1dc811c35f',1,'VmaMemoryUsage: vk_mem_alloc.h']]], - ['vmapool_190',['VmaPool',['../struct_vma_pool.html',1,'']]], - ['vmapoolcreateflagbits_191',['VmaPoolCreateFlagBits',['../group__group__alloc.html#ga9a7c45f9c863695d98c83fa5ac940fe7',1,'VmaPoolCreateFlagBits: vk_mem_alloc.h'],['../group__group__alloc.html#ga4d4f2efc2509157a9e4ecd4fd7942303',1,'VmaPoolCreateFlagBits: vk_mem_alloc.h']]], - ['vmapoolcreateflags_192',['VmaPoolCreateFlags',['../group__group__alloc.html#ga2770e325ea42e087c1b91fdf46d0292a',1,'vk_mem_alloc.h']]], - ['vmapoolcreateinfo_193',['VmaPoolCreateInfo',['../struct_vma_pool_create_info.html',1,'VmaPoolCreateInfo'],['../group__group__alloc.html#ga1017aa83489c0eee8d2163d2bf253f67',1,'VmaPoolCreateInfo: vk_mem_alloc.h']]], - ['vmasetallocationname_194',['vmaSetAllocationName',['../group__group__alloc.html#gabe02cbb0cd913b3f125958179f2020fc',1,'vk_mem_alloc.h']]], - ['vmasetallocationuserdata_195',['vmaSetAllocationUserData',['../group__group__alloc.html#gaf9147d31ffc11d62fc187bde283ed14f',1,'vk_mem_alloc.h']]], - ['vmasetcurrentframeindex_196',['vmaSetCurrentFrameIndex',['../group__group__init.html#gade56bf8dc9f5a5eaddf5f119ed525236',1,'vk_mem_alloc.h']]], - ['vmasetpoolname_197',['vmaSetPoolName',['../group__group__alloc.html#gadbae3a0b4ab078024462fc85c37f3b58',1,'vk_mem_alloc.h']]], - ['vmasetvirtualallocationuserdata_198',['vmaSetVirtualAllocationUserData',['../group__group__virtual.html#ga001ea1850458a4062b829e09c303fca2',1,'vk_mem_alloc.h']]], - ['vmastatistics_199',['VmaStatistics',['../struct_vma_statistics.html',1,'VmaStatistics'],['../group__group__stats.html#gac94bd1a382a3922ddc8de3af4d3ddd06',1,'VmaStatistics: vk_mem_alloc.h']]], - ['vmatotalstatistics_200',['VmaTotalStatistics',['../struct_vma_total_statistics.html',1,'VmaTotalStatistics'],['../group__group__stats.html#ga68916e729e55d513f88ffafbadddb770',1,'VmaTotalStatistics: vk_mem_alloc.h']]], - ['vmaunmapmemory_201',['vmaUnmapMemory',['../group__group__alloc.html#ga9bc268595cb33f6ec4d519cfce81ff45',1,'vk_mem_alloc.h']]], - ['vmavirtualallocate_202',['vmaVirtualAllocate',['../group__group__virtual.html#ga6b7cdcc1c3e5103c323fedc4e1319e01',1,'vk_mem_alloc.h']]], - ['vmavirtualallocation_203',['VmaVirtualAllocation',['../struct_vma_virtual_allocation.html',1,'']]], - ['vmavirtualallocationcreateflagbits_204',['VmaVirtualAllocationCreateFlagBits',['../group__group__virtual.html#ga2e9c64d405b14156fea7e10c4ad06cb6',1,'VmaVirtualAllocationCreateFlagBits: vk_mem_alloc.h'],['../group__group__virtual.html#ga936815e64946a6b6d812d08d10184c23',1,'VmaVirtualAllocationCreateFlagBits: vk_mem_alloc.h']]], - ['vmavirtualallocationcreateflags_205',['VmaVirtualAllocationCreateFlags',['../group__group__virtual.html#gae96ffc099bf898257fb19e9410ed08a7',1,'vk_mem_alloc.h']]], - ['vmavirtualallocationcreateinfo_206',['VmaVirtualAllocationCreateInfo',['../struct_vma_virtual_allocation_create_info.html',1,'VmaVirtualAllocationCreateInfo'],['../group__group__virtual.html#gac3c90d80bedc6847a41b82d0e2158c9e',1,'VmaVirtualAllocationCreateInfo: vk_mem_alloc.h']]], - ['vmavirtualallocationinfo_207',['VmaVirtualAllocationInfo',['../struct_vma_virtual_allocation_info.html',1,'VmaVirtualAllocationInfo'],['../group__group__virtual.html#ga75bc33ff7cf18c98e101f570dc2a5ebc',1,'VmaVirtualAllocationInfo: vk_mem_alloc.h']]], - ['vmavirtualblock_208',['VmaVirtualBlock',['../struct_vma_virtual_block.html',1,'']]], - ['vmavirtualblockcreateflagbits_209',['VmaVirtualBlockCreateFlagBits',['../group__group__virtual.html#ga88bcf8c1cd3bb1610ff7343811c65bca',1,'VmaVirtualBlockCreateFlagBits: vk_mem_alloc.h'],['../group__group__virtual.html#ga0860ba1c0a67178fae4aecb63a78573e',1,'VmaVirtualBlockCreateFlagBits: vk_mem_alloc.h']]], - ['vmavirtualblockcreateflags_210',['VmaVirtualBlockCreateFlags',['../group__group__virtual.html#ga4e49c2f0ab7f6b4868833e5bac78d91e',1,'vk_mem_alloc.h']]], - ['vmavirtualblockcreateinfo_211',['VmaVirtualBlockCreateInfo',['../struct_vma_virtual_block_create_info.html',1,'VmaVirtualBlockCreateInfo'],['../group__group__virtual.html#ga4753d42d40217a3a652a3cdf253ad773',1,'VmaVirtualBlockCreateInfo: vk_mem_alloc.h']]], - ['vmavirtualfree_212',['vmaVirtualFree',['../group__group__virtual.html#ga09fc688c0c3653ff23723b037e5d5033',1,'vk_mem_alloc.h']]], - ['vmavulkanfunctions_213',['VmaVulkanFunctions',['../struct_vma_vulkan_functions.html',1,'VmaVulkanFunctions'],['../group__group__init.html#gabb0a8e3b5040d847571cca6c7f9a8074',1,'VmaVulkanFunctions: vk_mem_alloc.h']]], - ['vulkan_20functions_214',['Vulkan functions',['../quick_start.html#quick_start_initialization_importing_vulkan_functions',1,'Importing Vulkan functions'],['../configuration.html#config_Vulkan_functions',1,'Pointers to Vulkan functions']]], - ['vulkan_20memory_20allocator_215',['Vulkan Memory Allocator',['../index.html',1,'']]], - ['vulkan_20version_216',['Selecting Vulkan version',['../quick_start.html#quick_start_initialization_selecting_vulkan_version',1,'']]], - ['vulkanapiversion_217',['vulkanApiVersion',['../struct_vma_allocator_create_info.html#ae0ffc55139b54520a6bb704b29ffc285',1,'VmaAllocatorCreateInfo']]] + ['vma_5fversion_90',['VMA_VERSION',['../vk__mem__alloc_8h.html#acb14074601291f583de581ed204fd8c1',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fflag_5fbits_5fmax_5fenum_91',['VMA_VIRTUAL_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ac1163c03ea837fa663462dc286d6a1a9',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmask_92',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MASK',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ac5b5e45c335368d18df59c9f27df17e3',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmin_5fmemory_5fbit_93',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ae2a9591a62b5e3b1bdcbc81c6188a1bf',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmin_5foffset_5fbit_94',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_OFFSET_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6a3bb82d2aedd587a64846a1d7778852e6',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmin_5ftime_5fbit_95',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6a562d10a46012719d33167d3dc5dbbf9b',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fupper_5faddress_5fbit_96',['VMA_VIRTUAL_ALLOCATION_CREATE_UPPER_ADDRESS_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6a9524a329a55b5ec390d57d90b67ad78e',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fblock_5fcreate_5falgorithm_5fmask_97',['VMA_VIRTUAL_BLOCK_CREATE_ALGORITHM_MASK',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaaf9487467136e1a9e371894dc3a7c4844',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fblock_5fcreate_5fflag_5fbits_5fmax_5fenum_98',['VMA_VIRTUAL_BLOCK_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaa5fc0d333c3d5687a8bbf57df9b377a87',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fblock_5fcreate_5flinear_5falgorithm_5fbit_99',['VMA_VIRTUAL_BLOCK_CREATE_LINEAR_ALGORITHM_BIT',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaae6423e2fa2f3c9211b21c819e3f10f96',1,'vk_mem_alloc.h']]], + ['vmaallocatededicatedmemory_100',['vmaAllocateDedicatedMemory',['../group__group__alloc.html#ga9a0b91c157adec03dae1e6ea78d33625',1,'vk_mem_alloc.h']]], + ['vmaallocatememory_101',['vmaAllocateMemory',['../group__group__alloc.html#gabf28077dbf82d0908b8acbe8ee8dd9b8',1,'vk_mem_alloc.h']]], + ['vmaallocatememoryforbuffer_102',['vmaAllocateMemoryForBuffer',['../group__group__alloc.html#ga7fdf64415b6c3d83c454f28d2c53df7b',1,'vk_mem_alloc.h']]], + ['vmaallocatememoryforimage_103',['vmaAllocateMemoryForImage',['../group__group__alloc.html#ga0faa3f9e5fb233d29d1e00390650febb',1,'vk_mem_alloc.h']]], + ['vmaallocatememorypages_104',['vmaAllocateMemoryPages',['../group__group__alloc.html#gad37e82e492b3de38fc3f4cffd9ad0ae1',1,'vk_mem_alloc.h']]], + ['vmaallocation_105',['VmaAllocation',['../struct_vma_allocation.html',1,'']]], + ['vmaallocationcreateflagbits_106',['VmaAllocationCreateFlagBits',['../group__group__alloc.html#gad9889c10c798b040d59c92f257cae597',1,'VmaAllocationCreateFlagBits: vk_mem_alloc.h'],['../group__group__alloc.html#ga4fceecc301f4064dc808d3cd6c038941',1,'VmaAllocationCreateFlagBits: vk_mem_alloc.h']]], + ['vmaallocationcreateflags_107',['VmaAllocationCreateFlags',['../group__group__alloc.html#ga5225e5e11f8376f6a31a1791f3d6e817',1,'vk_mem_alloc.h']]], + ['vmaallocationcreateinfo_108',['VmaAllocationCreateInfo',['../struct_vma_allocation_create_info.html',1,'VmaAllocationCreateInfo'],['../group__group__alloc.html#ga3bf110892ea2fb4649fedb68488d026a',1,'VmaAllocationCreateInfo: vk_mem_alloc.h']]], + ['vmaallocationinfo_109',['VmaAllocationInfo',['../struct_vma_allocation_info.html',1,'VmaAllocationInfo'],['../group__group__alloc.html#ga1cf7774606721026a68aabe3af2e5b50',1,'VmaAllocationInfo: vk_mem_alloc.h']]], + ['vmaallocationinfo2_110',['VmaAllocationInfo2',['../struct_vma_allocation_info2.html',1,'VmaAllocationInfo2'],['../group__group__alloc.html#ga25ede29f830f326b8572a18ce879bf64',1,'VmaAllocationInfo2: vk_mem_alloc.h']]], + ['vmaallocator_111',['VmaAllocator',['../struct_vma_allocator.html',1,'']]], + ['vmaallocatorcreateflagbits_112',['VmaAllocatorCreateFlagBits',['../group__group__init.html#ga4f87c9100d154a65a4ad495f7763cf7c',1,'VmaAllocatorCreateFlagBits: vk_mem_alloc.h'],['../group__group__init.html#gafd73b95e737ee7e76f827cb5472f559f',1,'VmaAllocatorCreateFlagBits: vk_mem_alloc.h']]], + ['vmaallocatorcreateflags_113',['VmaAllocatorCreateFlags',['../group__group__init.html#gacfe6863e160722c2c1bbcf7573fddc4d',1,'vk_mem_alloc.h']]], + ['vmaallocatorcreateinfo_114',['VmaAllocatorCreateInfo',['../struct_vma_allocator_create_info.html',1,'VmaAllocatorCreateInfo'],['../group__group__init.html#gaad9652301d33759b83e52d4f3605a14a',1,'VmaAllocatorCreateInfo: vk_mem_alloc.h']]], + ['vmaallocatorinfo_115',['VmaAllocatorInfo',['../struct_vma_allocator_info.html',1,'VmaAllocatorInfo'],['../group__group__init.html#ga1988031b0223fdbd564250fa1edd942c',1,'VmaAllocatorInfo: vk_mem_alloc.h']]], + ['vmabegindefragmentation_116',['vmaBeginDefragmentation',['../group__group__alloc.html#gac3335566858b45541fa9c0d7a6bbb57e',1,'vk_mem_alloc.h']]], + ['vmabegindefragmentationpass_117',['vmaBeginDefragmentationPass',['../group__group__alloc.html#ga980d7da2ce3b1fd5c8b8476bc362cc00',1,'vk_mem_alloc.h']]], + ['vmabindbuffermemory_118',['vmaBindBufferMemory',['../group__group__alloc.html#ga6b0929b914b60cf2d45cac4bf3547470',1,'vk_mem_alloc.h']]], + ['vmabindbuffermemory2_119',['vmaBindBufferMemory2',['../group__group__alloc.html#ga861f4f27189a7d11ab9d9eedc825cb6b',1,'vk_mem_alloc.h']]], + ['vmabindimagememory_120',['vmaBindImageMemory',['../group__group__alloc.html#ga3d3ca45799923aa5d138e9e5f9eb2da5',1,'vk_mem_alloc.h']]], + ['vmabindimagememory2_121',['vmaBindImageMemory2',['../group__group__alloc.html#ga5f3502dd7d38b53fb1533ea3921d038d',1,'vk_mem_alloc.h']]], + ['vmabudget_122',['VmaBudget',['../struct_vma_budget.html',1,'VmaBudget'],['../group__group__stats.html#gaa078667e71b1ef24e87a6a30d128381d',1,'VmaBudget: vk_mem_alloc.h']]], + ['vmabuildstatsstring_123',['vmaBuildStatsString',['../group__group__stats.html#gaa4fee7eb5253377599ef4fd38c93c2a0',1,'vk_mem_alloc.h']]], + ['vmabuildvirtualblockstatsstring_124',['vmaBuildVirtualBlockStatsString',['../group__group__stats.html#ga52d810e1222c592e5d80556ad005f1e6',1,'vk_mem_alloc.h']]], + ['vmacalculatepoolstatistics_125',['vmaCalculatePoolStatistics',['../group__group__stats.html#ga50ba0eb25d2b363b792be4645ca7a380',1,'vk_mem_alloc.h']]], + ['vmacalculatestatistics_126',['vmaCalculateStatistics',['../group__group__stats.html#ga36f3484de7aa6cd6edc4de9edfa0ff59',1,'vk_mem_alloc.h']]], + ['vmacalculatevirtualblockstatistics_127',['vmaCalculateVirtualBlockStatistics',['../group__group__virtual.html#ga93c5741bca44b43e5b849cacbd616098',1,'vk_mem_alloc.h']]], + ['vmacheckcorruption_128',['vmaCheckCorruption',['../group__group__alloc.html#ga49329a7f030dafcf82f7b73334c22e98',1,'vk_mem_alloc.h']]], + ['vmacheckpoolcorruption_129',['vmaCheckPoolCorruption',['../group__group__alloc.html#gad535935619c7a549bf837e1bb0068f89',1,'vk_mem_alloc.h']]], + ['vmaclearvirtualblock_130',['vmaClearVirtualBlock',['../group__group__virtual.html#ga5eda6f55919fb05bd2f56a112590c571',1,'vk_mem_alloc.h']]], + ['vmacopyallocationtomemory_131',['vmaCopyAllocationToMemory',['../group__group__alloc.html#gaac883dd38863944335071213b9ae8477',1,'vk_mem_alloc.h']]], + ['vmacopymemorytoallocation_132',['vmaCopyMemoryToAllocation',['../group__group__alloc.html#ga11731ec58a3a43a22bb925e0780ef405',1,'vk_mem_alloc.h']]], + ['vmacreatealiasingbuffer_133',['vmaCreateAliasingBuffer',['../group__group__alloc.html#ga60d5d4803e3c82505a2bfddb929adb03',1,'vk_mem_alloc.h']]], + ['vmacreatealiasingbuffer2_134',['vmaCreateAliasingBuffer2',['../group__group__alloc.html#gaf0cf014344213e117bd9f9cf5f928122',1,'vk_mem_alloc.h']]], + ['vmacreatealiasingimage_135',['vmaCreateAliasingImage',['../group__group__alloc.html#gaebc4db1f94b53dba2338b4c0fd80d0dc',1,'vk_mem_alloc.h']]], + ['vmacreatealiasingimage2_136',['vmaCreateAliasingImage2',['../group__group__alloc.html#ga69ac829f5bb0737449fa92c2d971f1bb',1,'vk_mem_alloc.h']]], + ['vmacreateallocator_137',['vmaCreateAllocator',['../group__group__init.html#ga200692051ddb34240248234f5f4c17bb',1,'vk_mem_alloc.h']]], + ['vmacreatebuffer_138',['vmaCreateBuffer',['../group__group__alloc.html#gac72ee55598617e8eecca384e746bab51',1,'vk_mem_alloc.h']]], + ['vmacreatebufferwithalignment_139',['vmaCreateBufferWithAlignment',['../group__group__alloc.html#gaa06a690013a0d01e60894ac378083834',1,'vk_mem_alloc.h']]], + ['vmacreatededicatedbuffer_140',['vmaCreateDedicatedBuffer',['../group__group__alloc.html#gab313b89299877ca21c196027bed9e874',1,'vk_mem_alloc.h']]], + ['vmacreatededicatedimage_141',['vmaCreateDedicatedImage',['../group__group__alloc.html#ga07c66ffa000906a599d471047a7c0324',1,'vk_mem_alloc.h']]], + ['vmacreateimage_142',['vmaCreateImage',['../group__group__alloc.html#ga02a94f25679275851a53e82eacbcfc73',1,'vk_mem_alloc.h']]], + ['vmacreatepool_143',['vmaCreatePool',['../group__group__alloc.html#ga5c8770ded7c59c8caac6de0c2cb00b50',1,'vk_mem_alloc.h']]], + ['vmacreatevirtualblock_144',['vmaCreateVirtualBlock',['../group__group__virtual.html#gab585754076877265fdae33e5c40ef13b',1,'vk_mem_alloc.h']]], + ['vmadefragmentationcontext_145',['VmaDefragmentationContext',['../struct_vma_defragmentation_context.html',1,'']]], + ['vmadefragmentationflagbits_146',['VmaDefragmentationFlagBits',['../group__group__alloc.html#ga6552a65b71d16f378c6994b3ceaef50c',1,'VmaDefragmentationFlagBits: vk_mem_alloc.h'],['../group__group__alloc.html#ga13415cc0b443353a7b5abda300b833fc',1,'VmaDefragmentationFlagBits: vk_mem_alloc.h']]], + ['vmadefragmentationflags_147',['VmaDefragmentationFlags',['../group__group__alloc.html#ga88a77cef37e5d3c4fc9eb328885d048d',1,'vk_mem_alloc.h']]], + ['vmadefragmentationinfo_148',['VmaDefragmentationInfo',['../struct_vma_defragmentation_info.html',1,'VmaDefragmentationInfo'],['../group__group__alloc.html#ga2bf47f96bf92bed2a49461bd9af3acfa',1,'VmaDefragmentationInfo: vk_mem_alloc.h']]], + ['vmadefragmentationmove_149',['VmaDefragmentationMove',['../struct_vma_defragmentation_move.html',1,'VmaDefragmentationMove'],['../group__group__alloc.html#ga563f4b43d3e31ed603d80cacc9ba8589',1,'VmaDefragmentationMove: vk_mem_alloc.h']]], + ['vmadefragmentationmoveoperation_150',['VmaDefragmentationMoveOperation',['../group__group__alloc.html#gada9e3861caf96f08894b0bcc160ec257',1,'VmaDefragmentationMoveOperation: vk_mem_alloc.h'],['../group__group__alloc.html#ga2ea666deeb3c2c74806a097e27cdb4a1',1,'VmaDefragmentationMoveOperation: vk_mem_alloc.h']]], + ['vmadefragmentationpassmoveinfo_151',['VmaDefragmentationPassMoveInfo',['../struct_vma_defragmentation_pass_move_info.html',1,'VmaDefragmentationPassMoveInfo'],['../group__group__alloc.html#gad6799e8e2b1527abfc84d33bc44aeaf5',1,'VmaDefragmentationPassMoveInfo: vk_mem_alloc.h']]], + ['vmadefragmentationstats_152',['VmaDefragmentationStats',['../struct_vma_defragmentation_stats.html',1,'VmaDefragmentationStats'],['../group__group__alloc.html#gad94034192259c2e34a4d1c5e27810403',1,'VmaDefragmentationStats: vk_mem_alloc.h']]], + ['vmadestroyallocator_153',['vmaDestroyAllocator',['../group__group__init.html#gaa8d164061c88f22fb1fd3c8f3534bc1d',1,'vk_mem_alloc.h']]], + ['vmadestroybuffer_154',['vmaDestroyBuffer',['../group__group__alloc.html#ga0d9f4e4ba5bf9aab1f1c746387753d77',1,'vk_mem_alloc.h']]], + ['vmadestroyimage_155',['vmaDestroyImage',['../group__group__alloc.html#gae50d2cb3b4a3bfd4dd40987234e50e7e',1,'vk_mem_alloc.h']]], + ['vmadestroypool_156',['vmaDestroyPool',['../group__group__alloc.html#ga5485779c8f1948238fc4e92232fa65e1',1,'vk_mem_alloc.h']]], + ['vmadestroyvirtualblock_157',['vmaDestroyVirtualBlock',['../group__group__virtual.html#ga3795f7783ae2c182cede067d656f66a5',1,'vk_mem_alloc.h']]], + ['vmadetailedstatistics_158',['VmaDetailedStatistics',['../struct_vma_detailed_statistics.html',1,'VmaDetailedStatistics'],['../group__group__stats.html#ga9ab0c535a6ca655dc63b8609ab4b8394',1,'VmaDetailedStatistics: vk_mem_alloc.h']]], + ['vmadevicememorycallbacks_159',['VmaDeviceMemoryCallbacks',['../struct_vma_device_memory_callbacks.html',1,'VmaDeviceMemoryCallbacks'],['../group__group__init.html#ga77692d3c8770ea8882d573206bd27b2b',1,'VmaDeviceMemoryCallbacks: vk_mem_alloc.h']]], + ['vmaenddefragmentation_160',['vmaEndDefragmentation',['../group__group__alloc.html#ga59f01ca3d53d50b7cca9b442b77a3e87',1,'vk_mem_alloc.h']]], + ['vmaenddefragmentationpass_161',['vmaEndDefragmentationPass',['../group__group__alloc.html#gaded05a445742a00718ee766144c5c226',1,'vk_mem_alloc.h']]], + ['vmafindmemorytypeindex_162',['vmaFindMemoryTypeIndex',['../group__group__alloc.html#gaef15a94b58fbcb0fe706d5720e84a74a',1,'vk_mem_alloc.h']]], + ['vmafindmemorytypeindexforbufferinfo_163',['vmaFindMemoryTypeIndexForBufferInfo',['../group__group__alloc.html#gae790ab9ffaf7667fb8f62523e6897888',1,'vk_mem_alloc.h']]], + ['vmafindmemorytypeindexforimageinfo_164',['vmaFindMemoryTypeIndexForImageInfo',['../group__group__alloc.html#ga088da83d8eaf3ce9056d9ea0b981d472',1,'vk_mem_alloc.h']]], + ['vmaflushallocation_165',['vmaFlushAllocation',['../group__group__alloc.html#ga30c37c1eec6025f397be41644f48490f',1,'vk_mem_alloc.h']]], + ['vmaflushallocations_166',['vmaFlushAllocations',['../group__group__alloc.html#gac3dd00da721875ed99fa8a881922bdfc',1,'vk_mem_alloc.h']]], + ['vmafreememory_167',['vmaFreeMemory',['../group__group__alloc.html#ga11f0fbc034fa81a4efedd73d61ce7568',1,'vk_mem_alloc.h']]], + ['vmafreememorypages_168',['vmaFreeMemoryPages',['../group__group__alloc.html#ga834b1e4aef395c0a1d56a28e69a4a17e',1,'vk_mem_alloc.h']]], + ['vmafreestatsstring_169',['vmaFreeStatsString',['../group__group__stats.html#ga3104eb30d8122c84dd8541063f145288',1,'vk_mem_alloc.h']]], + ['vmafreevirtualblockstatsstring_170',['vmaFreeVirtualBlockStatsString',['../group__group__stats.html#ga47fb8d8aa69df4a7c23a9719b4080623',1,'vk_mem_alloc.h']]], + ['vmagetallocationinfo_171',['vmaGetAllocationInfo',['../group__group__alloc.html#ga86dd08aba8633bfa4ad0df2e76481d8b',1,'vk_mem_alloc.h']]], + ['vmagetallocationinfo2_172',['vmaGetAllocationInfo2',['../group__group__alloc.html#ga1405cf3eae2fd1305d645879173031a0',1,'vk_mem_alloc.h']]], + ['vmagetallocationmemoryproperties_173',['vmaGetAllocationMemoryProperties',['../group__group__alloc.html#ga571e87dd38e552249b56b1b0b982fad1',1,'vk_mem_alloc.h']]], + ['vmagetallocatorinfo_174',['vmaGetAllocatorInfo',['../group__group__init.html#gafa02231a791b37255720d566a52683e7',1,'vk_mem_alloc.h']]], + ['vmagetheapbudgets_175',['vmaGetHeapBudgets',['../group__group__stats.html#ga9f88db9d46a432c0ad7278cecbc5eaa7',1,'vk_mem_alloc.h']]], + ['vmagetmemoryproperties_176',['vmaGetMemoryProperties',['../group__group__init.html#gab88db292a17974f911182543fda52d19',1,'vk_mem_alloc.h']]], + ['vmagetmemorytypeproperties_177',['vmaGetMemoryTypeProperties',['../group__group__init.html#ga8701444752eb5de4464adb5a2b514bca',1,'vk_mem_alloc.h']]], + ['vmagetmemorywin32handle_178',['vmaGetMemoryWin32Handle',['../group__group__alloc.html#ga8d327b7458d8cf426b84b5efba9bb9bf',1,'vk_mem_alloc.h']]], + ['vmagetmemorywin32handle2_179',['vmaGetMemoryWin32Handle2',['../group__group__alloc.html#ga1a8d7aba3bf5a4de66c801b9988afa58',1,'vk_mem_alloc.h']]], + ['vmagetphysicaldeviceproperties_180',['vmaGetPhysicalDeviceProperties',['../group__group__init.html#gaecabf7b6e91ea87d0316fa0a9e014fe0',1,'vk_mem_alloc.h']]], + ['vmagetpoolname_181',['vmaGetPoolName',['../group__group__alloc.html#gaf09b4e4eafdbee812e8d73ddf960f030',1,'vk_mem_alloc.h']]], + ['vmagetpoolstatistics_182',['vmaGetPoolStatistics',['../group__group__stats.html#ga34d8e7d83774eed0caee5c5ae88e217d',1,'vk_mem_alloc.h']]], + ['vmagetvirtualallocationinfo_183',['vmaGetVirtualAllocationInfo',['../group__group__virtual.html#ga8ee14ceb1fe033ec84d8aa29e1f75afa',1,'vk_mem_alloc.h']]], + ['vmagetvirtualblockstatistics_184',['vmaGetVirtualBlockStatistics',['../group__group__virtual.html#ga2902aa3130866afcc64bb5f984113db3',1,'vk_mem_alloc.h']]], + ['vmaimportvulkanfunctionsfromvolk_185',['vmaImportVulkanFunctionsFromVolk',['../group__group__init.html#gaf8d9ee01910a7af7f552145ef0065b9c',1,'vk_mem_alloc.h']]], + ['vmainvalidateallocation_186',['vmaInvalidateAllocation',['../group__group__alloc.html#gaaa8412919139ef413a4215ac6a290fae',1,'vk_mem_alloc.h']]], + ['vmainvalidateallocations_187',['vmaInvalidateAllocations',['../group__group__alloc.html#gab25b558d75f7378ec944a1522fdcc3c5',1,'vk_mem_alloc.h']]], + ['vmaisvirtualblockempty_188',['vmaIsVirtualBlockEmpty',['../group__group__virtual.html#gacd53b5b1d23f8fcbad692ccfdc1811f1',1,'vk_mem_alloc.h']]], + ['vmamapmemory_189',['vmaMapMemory',['../group__group__alloc.html#gad5bd1243512d099706de88168992f069',1,'vk_mem_alloc.h']]], + ['vmamemoryusage_190',['VmaMemoryUsage',['../group__group__alloc.html#gaa5846affa1e9da3800e3e78fae2305cc',1,'VmaMemoryUsage: vk_mem_alloc.h'],['../group__group__alloc.html#ga806e8499dde802e59eb72a1dc811c35f',1,'VmaMemoryUsage: vk_mem_alloc.h']]], + ['vmapool_191',['VmaPool',['../struct_vma_pool.html',1,'']]], + ['vmapoolcreateflagbits_192',['VmaPoolCreateFlagBits',['../group__group__alloc.html#ga9a7c45f9c863695d98c83fa5ac940fe7',1,'VmaPoolCreateFlagBits: vk_mem_alloc.h'],['../group__group__alloc.html#ga4d4f2efc2509157a9e4ecd4fd7942303',1,'VmaPoolCreateFlagBits: vk_mem_alloc.h']]], + ['vmapoolcreateflags_193',['VmaPoolCreateFlags',['../group__group__alloc.html#ga2770e325ea42e087c1b91fdf46d0292a',1,'vk_mem_alloc.h']]], + ['vmapoolcreateinfo_194',['VmaPoolCreateInfo',['../struct_vma_pool_create_info.html',1,'VmaPoolCreateInfo'],['../group__group__alloc.html#ga1017aa83489c0eee8d2163d2bf253f67',1,'VmaPoolCreateInfo: vk_mem_alloc.h']]], + ['vmasetallocationname_195',['vmaSetAllocationName',['../group__group__alloc.html#gabe02cbb0cd913b3f125958179f2020fc',1,'vk_mem_alloc.h']]], + ['vmasetallocationuserdata_196',['vmaSetAllocationUserData',['../group__group__alloc.html#gaf9147d31ffc11d62fc187bde283ed14f',1,'vk_mem_alloc.h']]], + ['vmasetcurrentframeindex_197',['vmaSetCurrentFrameIndex',['../group__group__init.html#gade56bf8dc9f5a5eaddf5f119ed525236',1,'vk_mem_alloc.h']]], + ['vmasetpoolname_198',['vmaSetPoolName',['../group__group__alloc.html#gadbae3a0b4ab078024462fc85c37f3b58',1,'vk_mem_alloc.h']]], + ['vmasetvirtualallocationuserdata_199',['vmaSetVirtualAllocationUserData',['../group__group__virtual.html#ga001ea1850458a4062b829e09c303fca2',1,'vk_mem_alloc.h']]], + ['vmastatistics_200',['VmaStatistics',['../struct_vma_statistics.html',1,'VmaStatistics'],['../group__group__stats.html#gac94bd1a382a3922ddc8de3af4d3ddd06',1,'VmaStatistics: vk_mem_alloc.h']]], + ['vmatotalstatistics_201',['VmaTotalStatistics',['../struct_vma_total_statistics.html',1,'VmaTotalStatistics'],['../group__group__stats.html#ga68916e729e55d513f88ffafbadddb770',1,'VmaTotalStatistics: vk_mem_alloc.h']]], + ['vmaunmapmemory_202',['vmaUnmapMemory',['../group__group__alloc.html#ga9bc268595cb33f6ec4d519cfce81ff45',1,'vk_mem_alloc.h']]], + ['vmavirtualallocate_203',['vmaVirtualAllocate',['../group__group__virtual.html#ga6b7cdcc1c3e5103c323fedc4e1319e01',1,'vk_mem_alloc.h']]], + ['vmavirtualallocation_204',['VmaVirtualAllocation',['../struct_vma_virtual_allocation.html',1,'']]], + ['vmavirtualallocationcreateflagbits_205',['VmaVirtualAllocationCreateFlagBits',['../group__group__virtual.html#ga2e9c64d405b14156fea7e10c4ad06cb6',1,'VmaVirtualAllocationCreateFlagBits: vk_mem_alloc.h'],['../group__group__virtual.html#ga936815e64946a6b6d812d08d10184c23',1,'VmaVirtualAllocationCreateFlagBits: vk_mem_alloc.h']]], + ['vmavirtualallocationcreateflags_206',['VmaVirtualAllocationCreateFlags',['../group__group__virtual.html#gae96ffc099bf898257fb19e9410ed08a7',1,'vk_mem_alloc.h']]], + ['vmavirtualallocationcreateinfo_207',['VmaVirtualAllocationCreateInfo',['../struct_vma_virtual_allocation_create_info.html',1,'VmaVirtualAllocationCreateInfo'],['../group__group__virtual.html#gac3c90d80bedc6847a41b82d0e2158c9e',1,'VmaVirtualAllocationCreateInfo: vk_mem_alloc.h']]], + ['vmavirtualallocationinfo_208',['VmaVirtualAllocationInfo',['../struct_vma_virtual_allocation_info.html',1,'VmaVirtualAllocationInfo'],['../group__group__virtual.html#ga75bc33ff7cf18c98e101f570dc2a5ebc',1,'VmaVirtualAllocationInfo: vk_mem_alloc.h']]], + ['vmavirtualblock_209',['VmaVirtualBlock',['../struct_vma_virtual_block.html',1,'']]], + ['vmavirtualblockcreateflagbits_210',['VmaVirtualBlockCreateFlagBits',['../group__group__virtual.html#ga88bcf8c1cd3bb1610ff7343811c65bca',1,'VmaVirtualBlockCreateFlagBits: vk_mem_alloc.h'],['../group__group__virtual.html#ga0860ba1c0a67178fae4aecb63a78573e',1,'VmaVirtualBlockCreateFlagBits: vk_mem_alloc.h']]], + ['vmavirtualblockcreateflags_211',['VmaVirtualBlockCreateFlags',['../group__group__virtual.html#ga4e49c2f0ab7f6b4868833e5bac78d91e',1,'vk_mem_alloc.h']]], + ['vmavirtualblockcreateinfo_212',['VmaVirtualBlockCreateInfo',['../struct_vma_virtual_block_create_info.html',1,'VmaVirtualBlockCreateInfo'],['../group__group__virtual.html#ga4753d42d40217a3a652a3cdf253ad773',1,'VmaVirtualBlockCreateInfo: vk_mem_alloc.h']]], + ['vmavirtualfree_213',['vmaVirtualFree',['../group__group__virtual.html#ga09fc688c0c3653ff23723b037e5d5033',1,'vk_mem_alloc.h']]], + ['vmavulkanfunctions_214',['VmaVulkanFunctions',['../struct_vma_vulkan_functions.html',1,'VmaVulkanFunctions'],['../group__group__init.html#gabb0a8e3b5040d847571cca6c7f9a8074',1,'VmaVulkanFunctions: vk_mem_alloc.h']]], + ['vulkan_20functions_215',['Vulkan functions',['../quick_start.html#quick_start_initialization_importing_vulkan_functions',1,'Importing Vulkan functions'],['../configuration.html#config_Vulkan_functions',1,'Pointers to Vulkan functions']]], + ['vulkan_20memory_20allocator_216',['Vulkan Memory Allocator',['../index.html',1,'']]], + ['vulkan_20version_217',['Selecting Vulkan version',['../quick_start.html#quick_start_initialization_selecting_vulkan_version',1,'']]], + ['vulkanapiversion_218',['vulkanApiVersion',['../struct_vma_allocator_create_info.html#ae0ffc55139b54520a6bb704b29ffc285',1,'VmaAllocatorCreateInfo']]] ]; diff --git a/docs/html/search/defines_0.js b/docs/html/search/defines_0.js new file mode 100644 index 00000000..bc8aed4b --- /dev/null +++ b/docs/html/search/defines_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['vma_5fversion_0',['VMA_VERSION',['../vk__mem__alloc_8h.html#acb14074601291f583de581ed204fd8c1',1,'vk_mem_alloc.h']]] +]; diff --git a/docs/html/search/searchdata.js b/docs/html/search/searchdata.js index f6c6ff00..e1c255bc 100644 --- a/docs/html/search/searchdata.js +++ b/docs/html/search/searchdata.js @@ -8,8 +8,9 @@ var indexSectionsWithContent = 5: "pv", 6: "v", 7: "v", - 8: "ailmsv", - 9: "abcdefghijlmnopqrstuvw" + 8: "v", + 9: "ailmsv", + 10: "abcdefghijlmnopqrstuvw" }; var indexSectionNames = @@ -22,8 +23,9 @@ var indexSectionNames = 5: "typedefs", 6: "enums", 7: "enumvalues", - 8: "groups", - 9: "pages" + 8: "defines", + 9: "groups", + 10: "pages" }; var indexSectionLabels = @@ -36,7 +38,8 @@ var indexSectionLabels = 5: "Typedefs", 6: "Enumerations", 7: "Enumerator", - 8: "Modules", - 9: "Pages" + 8: "Macros", + 9: "Modules", + 10: "Pages" }; diff --git a/docs/html/usage_patterns.html b/docs/html/usage_patterns.html index f33fb6ef..4317c370 100644 --- a/docs/html/usage_patterns.html +++ b/docs/html/usage_patterns.html @@ -106,12 +106,12 @@

      vmaCreateImage(allocator, &imgCreateInfo, &allocCreateInfo, &img, &alloc, nullptr);
      VkResult vmaCreateImage(VmaAllocator allocator, const VkImageCreateInfo *pImageCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkImage *pImage, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
      Function similar to vmaCreateBuffer() but for images.
      -
      @ VMA_MEMORY_USAGE_AUTO
      Definition vk_mem_alloc.h:551
      -
      @ VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT
      Set this flag if the allocation should have its own memory block.
      Definition vk_mem_alloc.h:590
      -
      Parameters of new VmaAllocation.
      Definition vk_mem_alloc.h:1292
      -
      float priority
      A floating-point value between 0 and 1, indicating the priority of the allocation relative to other m...
      Definition vk_mem_alloc.h:1338
      -
      VmaMemoryUsage usage
      Intended usage of memory.
      Definition vk_mem_alloc.h:1300
      -
      VmaAllocationCreateFlags flags
      Use VmaAllocationCreateFlagBits enum.
      Definition vk_mem_alloc.h:1294
      +
      @ VMA_MEMORY_USAGE_AUTO
      Definition vk_mem_alloc.h:553
      +
      @ VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT
      Set this flag if the allocation should have its own memory block.
      Definition vk_mem_alloc.h:592
      +
      Parameters of new VmaAllocation.
      Definition vk_mem_alloc.h:1294
      +
      float priority
      A floating-point value between 0 and 1, indicating the priority of the allocation relative to other m...
      Definition vk_mem_alloc.h:1340
      +
      VmaMemoryUsage usage
      Intended usage of memory.
      Definition vk_mem_alloc.h:1302
      +
      VmaAllocationCreateFlags flags
      Use VmaAllocationCreateFlagBits enum.
      Definition vk_mem_alloc.h:1296
      Represents single memory allocation.

      Also consider: Consider creating them as dedicated allocations using VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT, especially if they are large or if you plan to destroy and recreate them with different sizes e.g. when display resolution changes. Prefer to create such resources first and all other GPU resources (like textures and vertex buffers) later. When VK_EXT_memory_priority extension is enabled, it is also worth setting high priority to such allocation to decrease chances to be evicted to system memory by the operating system.

      @@ -136,10 +136,10 @@

      memcpy(allocInfo.pMappedData, myData, myDataSize);
      VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
      Creates a new VkBuffer, allocates and binds memory for it.
      -
      @ VMA_ALLOCATION_CREATE_MAPPED_BIT
      Set this flag to use a memory that will be persistently mapped and retrieve pointer to it.
      Definition vk_mem_alloc.h:611
      -
      @ VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT
      Definition vk_mem_alloc.h:660
      -
      Definition vk_mem_alloc.h:1411
      -
      void * pMappedData
      Pointer to the beginning of this allocation as mapped data.
      Definition vk_mem_alloc.h:1453
      +
      @ VMA_ALLOCATION_CREATE_MAPPED_BIT
      Set this flag to use a memory that will be persistently mapped and retrieve pointer to it.
      Definition vk_mem_alloc.h:613
      +
      @ VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT
      Definition vk_mem_alloc.h:662
      +
      Definition vk_mem_alloc.h:1413
      +
      void * pMappedData
      Pointer to the beginning of this allocation as mapped data.
      Definition vk_mem_alloc.h:1455

      Also consider: You can map the allocation using vmaMapMemory() or you can create it as persistenly mapped using VMA_ALLOCATION_CREATE_MAPPED_BIT, as in the example above.

      Readback

      @@ -162,7 +162,7 @@

      ...
      const float* downloadedData = (const float*)allocInfo.pMappedData;
      -
      @ VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT
      Definition vk_mem_alloc.h:672
      +
      @ VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT
      Definition vk_mem_alloc.h:674

      Advanced data uploading

      For resources that you frequently write on CPU via mapped pointer and frequently read on GPU e.g. as a uniform buffer (also called "dynamic"), multiple options are possible:

      @@ -277,7 +277,7 @@

      }
      VkResult vmaCopyMemoryToAllocation(VmaAllocator allocator, const void *pSrcHostPointer, VmaAllocation dstAllocation, VkDeviceSize dstAllocationLocalOffset, VkDeviceSize size)
      Maps the allocation temporarily if needed, copies data from specified host pointer to it,...
      void vmaGetAllocationMemoryProperties(VmaAllocator allocator, VmaAllocation allocation, VkMemoryPropertyFlags *pFlags)
      Given an allocation, returns Property Flags of its memory type.
      -
      @ VMA_ALLOCATION_CREATE_HOST_ACCESS_ALLOW_TRANSFER_INSTEAD_BIT
      Definition vk_mem_alloc.h:684
      +
      @ VMA_ALLOCATION_CREATE_HOST_ACCESS_ALLOW_TRANSFER_INSTEAD_BIT
      Definition vk_mem_alloc.h:686

      Other use cases

      Here are some other, less obvious use cases and their recommended settings:

      diff --git a/docs/html/virtual_allocator.html b/docs/html/virtual_allocator.html index 9edb409a..9459aa46 100644 --- a/docs/html/virtual_allocator.html +++ b/docs/html/virtual_allocator.html @@ -93,8 +93,8 @@

      VmaVirtualBlock block;
      VkResult res = vmaCreateVirtualBlock(&blockCreateInfo, &block);
      VkResult vmaCreateVirtualBlock(const VmaVirtualBlockCreateInfo *pCreateInfo, VmaVirtualBlock *pVirtualBlock)
      Creates new VmaVirtualBlock object.
      -
      Parameters of created VmaVirtualBlock object to be passed to vmaCreateVirtualBlock().
      Definition vk_mem_alloc.h:1600
      -
      VkDeviceSize size
      Total size of the virtual block.
      Definition vk_mem_alloc.h:1606
      +
      Parameters of created VmaVirtualBlock object to be passed to vmaCreateVirtualBlock().
      Definition vk_mem_alloc.h:1602
      +
      VkDeviceSize size
      Total size of the virtual block.
      Definition vk_mem_alloc.h:1608
      Handle to a virtual block object that allows to use core allocation algorithm without allocating any ...

      Making virtual allocations

      @@ -120,8 +120,8 @@

      // Allocation failed - no space for it could be found. Handle this error!
      }
      VkResult vmaVirtualAllocate(VmaVirtualBlock virtualBlock, const VmaVirtualAllocationCreateInfo *pCreateInfo, VmaVirtualAllocation *pAllocation, VkDeviceSize *pOffset)
      Allocates new virtual allocation inside given VmaVirtualBlock.
      -
      Parameters of created virtual allocation to be passed to vmaVirtualAllocate().
      Definition vk_mem_alloc.h:1621
      -
      VkDeviceSize size
      Size of the allocation.
      Definition vk_mem_alloc.h:1626
      +
      Parameters of created virtual allocation to be passed to vmaVirtualAllocate().
      Definition vk_mem_alloc.h:1623
      +
      VkDeviceSize size
      Size of the allocation.
      Definition vk_mem_alloc.h:1628
      Represents single memory allocation done inside VmaVirtualBlock.

      Deallocation

      @@ -149,8 +149,8 @@

      vmaVirtualFree(block, alloc);
      void vmaGetVirtualAllocationInfo(VmaVirtualBlock virtualBlock, VmaVirtualAllocation allocation, VmaVirtualAllocationInfo *pVirtualAllocInfo)
      Returns information about a specific virtual allocation within a virtual block, like its size and pUs...
      -
      Parameters of an existing virtual allocation, returned by vmaGetVirtualAllocationInfo().
      Definition vk_mem_alloc.h:1644
      -
      void * pUserData
      Custom pointer associated with the allocation.
      Definition vk_mem_alloc.h:1659
      +
      Parameters of an existing virtual allocation, returned by vmaGetVirtualAllocationInfo().
      Definition vk_mem_alloc.h:1646
      +
      void * pUserData
      Custom pointer associated with the allocation.
      Definition vk_mem_alloc.h:1661

      Alignment and units

      It feels natural to express sizes and offsets in bytes. If an offset of an allocation needs to be aligned to a multiply of some number (e.g. 4 bytes), you can fill optional member VmaVirtualAllocationCreateInfo::alignment to request it. Example:

      @@ -160,7 +160,7 @@

      res = vmaVirtualAllocate(block, &allocCreateInfo, &alloc, nullptr);
      -
      VkDeviceSize alignment
      Required alignment of the allocation. Optional.
      Definition vk_mem_alloc.h:1631
      +
      VkDeviceSize alignment
      Required alignment of the allocation. Optional.
      Definition vk_mem_alloc.h:1633

      Alignments of different allocations made from one block may vary. However, if all alignments and sizes are always multiply of some size e.g. 4 B or sizeof(MyDataStruct), you can express all sizes, alignments, and offsets in multiples of that size instead of individual bytes. It might be more convenient, but you need to make sure to use this new unit consistently in all the places:

      • VmaVirtualBlockCreateInfo::size
      • @@ -175,9 +175,9 @@

        printf("My virtual block has %llu bytes used by %u virtual allocations\n",
        void vmaGetVirtualBlockStatistics(VmaVirtualBlock virtualBlock, VmaStatistics *pStats)
        Calculates and returns statistics about virtual allocations and memory usage in given VmaVirtualBlock...
        -
        Calculated statistics of memory usage e.g. in a specific memory type, heap, custom pool,...
        Definition vk_mem_alloc.h:1181
        -
        VkDeviceSize allocationBytes
        Total number of bytes occupied by all VmaAllocation objects.
        Definition vk_mem_alloc.h:1203
        -
        uint32_t allocationCount
        Number of VmaAllocation objects allocated.
        Definition vk_mem_alloc.h:1189
        +
        Calculated statistics of memory usage e.g. in a specific memory type, heap, custom pool,...
        Definition vk_mem_alloc.h:1183
        +
        VkDeviceSize allocationBytes
        Total number of bytes occupied by all VmaAllocation objects.
        Definition vk_mem_alloc.h:1205
        +
        uint32_t allocationCount
        Number of VmaAllocation objects allocated.
        Definition vk_mem_alloc.h:1191

        You can also request a full list of allocations and free regions as a string in JSON format by calling vmaBuildVirtualBlockStatsString(). Returned string must be later freed using vmaFreeVirtualBlockStatsString(). The format of this string differs from the one returned by the main Vulkan allocator, but it is similar.

        Additional considerations

        diff --git a/docs/html/vk__mem__alloc_8h.html b/docs/html/vk__mem__alloc_8h.html index 1e66a17a..87f60335 100644 --- a/docs/html/vk__mem__alloc_8h.html +++ b/docs/html/vk__mem__alloc_8h.html @@ -77,6 +77,7 @@
        @@ -125,6 +126,10 @@ struct  VmaVirtualAllocationInfo  Parameters of an existing virtual allocation, returned by vmaGetVirtualAllocationInfo(). More...
        + + +

        +Macros

        #define VMA_VERSION   (VK_MAKE_VERSION(3, 4, 0))
        @@ -451,6 +456,21 @@

        Typedefs

        typedef enum VmaAllocatorCreateFlagBits VmaAllocatorCreateFlagBits
         Builds and returns statistics as a null-terminated string in JSON format.
        void vmaFreeStatsString (VmaAllocator allocator, char *pStatsString)
        +

        Macro Definition Documentation

        + +

        ◆ VMA_VERSION

        + +
        +
        + + + + +
        #define VMA_VERSION   (VK_MAKE_VERSION(3, 4, 0))
        +
        + +
        +