From aa1837436815a8a6331cc1817c724ff5b73e9e77 Mon Sep 17 00:00:00 2001 From: Adam Sawicki Date: Tue, 16 Feb 2021 17:28:49 +0100 Subject: [PATCH] Updated copyright header to year 2021. Rebuilt binaries, regenerated documentation. --- LICENSE.txt | 2 +- bin/VmaReplay_Release_vs2019.exe | Bin 243200 -> 243200 bytes bin/VulkanSample_Release_vs2019.exe | Bin 327680 -> 327680 bytes docs/html/allocation_annotation.html | 32 +- docs/html/annotated.html | 8 +- docs/html/choosing_memory_type.html | 28 +- docs/html/classes.html | 47 +- docs/html/configuration.html | 8 +- docs/html/custom_memory_pools.html | 38 +- docs/html/debugging_memory_usage.html | 8 +- docs/html/defragmentation.html | 40 +- docs/html/deprecated.html | 16 +- docs/html/doxygen.css | 107 ++- docs/html/enabling_buffer_device_address.html | 8 +- docs/html/files.html | 8 +- docs/html/functions.html | 8 +- docs/html/functions_vars.html | 8 +- docs/html/general_considerations.html | 8 +- docs/html/globals.html | 8 +- docs/html/globals_defs.html | 8 +- docs/html/globals_enum.html | 8 +- docs/html/globals_eval.html | 8 +- docs/html/globals_func.html | 8 +- docs/html/globals_type.html | 8 +- docs/html/index.html | 12 +- docs/html/lost_allocations.html | 28 +- docs/html/memory_mapping.html | 40 +- docs/html/pages.html | 8 +- docs/html/quick_start.html | 36 +- docs/html/record_and_replay.html | 10 +- docs/html/resource_aliasing.html | 22 +- docs/html/search/all_0.html | 13 +- docs/html/search/all_1.html | 13 +- docs/html/search/all_10.html | 13 +- docs/html/search/all_11.html | 13 +- docs/html/search/all_11.js | 310 ++++----- docs/html/search/all_2.html | 13 +- docs/html/search/all_3.html | 13 +- docs/html/search/all_4.html | 13 +- docs/html/search/all_5.html | 13 +- docs/html/search/all_6.html | 13 +- docs/html/search/all_7.html | 13 +- docs/html/search/all_8.html | 13 +- docs/html/search/all_9.html | 13 +- docs/html/search/all_a.html | 13 +- docs/html/search/all_b.html | 13 +- docs/html/search/all_c.html | 13 +- docs/html/search/all_d.html | 13 +- docs/html/search/all_d.js | 8 +- docs/html/search/all_e.html | 13 +- docs/html/search/all_f.html | 13 +- docs/html/search/classes_0.html | 13 +- docs/html/search/defines_0.html | 13 +- docs/html/search/enums_0.html | 13 +- docs/html/search/enumvalues_0.html | 13 +- docs/html/search/files_0.html | 13 +- docs/html/search/functions_0.html | 13 +- docs/html/search/nomatches.html | 3 +- docs/html/search/pages_0.html | 13 +- docs/html/search/pages_1.html | 13 +- docs/html/search/pages_2.html | 13 +- docs/html/search/pages_3.html | 13 +- docs/html/search/pages_4.html | 13 +- docs/html/search/pages_5.html | 13 +- docs/html/search/pages_6.html | 13 +- docs/html/search/pages_7.html | 13 +- docs/html/search/pages_8.html | 13 +- docs/html/search/pages_8.js | 6 +- docs/html/search/pages_9.html | 13 +- docs/html/search/pages_a.html | 13 +- docs/html/search/pages_a.js | 6 +- docs/html/search/search.css | 4 +- docs/html/search/search.js | 12 +- docs/html/search/typedefs_0.html | 13 +- docs/html/search/typedefs_1.html | 13 +- docs/html/search/variables_0.html | 13 +- docs/html/search/variables_1.html | 13 +- docs/html/search/variables_2.html | 13 +- docs/html/search/variables_3.html | 13 +- docs/html/search/variables_4.html | 13 +- docs/html/search/variables_5.html | 13 +- docs/html/search/variables_6.html | 13 +- docs/html/search/variables_7.html | 13 +- docs/html/search/variables_8.html | 13 +- docs/html/search/variables_9.html | 13 +- docs/html/search/variables_a.html | 13 +- docs/html/search/variables_b.html | 13 +- docs/html/search/variables_c.html | 13 +- docs/html/search/variables_d.html | 13 +- docs/html/statistics.html | 8 +- docs/html/staying_within_budget.html | 8 +- docs/html/struct_vma_allocation.html | 8 +- ...ct_vma_allocation_create_info-members.html | 8 +- .../struct_vma_allocation_create_info.html | 8 +- .../struct_vma_allocation_info-members.html | 8 +- docs/html/struct_vma_allocation_info.html | 8 +- docs/html/struct_vma_allocator.html | 8 +- ...uct_vma_allocator_create_info-members.html | 8 +- .../struct_vma_allocator_create_info.html | 8 +- .../struct_vma_allocator_info-members.html | 8 +- docs/html/struct_vma_allocator_info.html | 8 +- docs/html/struct_vma_budget-members.html | 8 +- docs/html/struct_vma_budget.html | 8 +- .../struct_vma_defragmentation_context.html | 8 +- ...ruct_vma_defragmentation_info-members.html | 8 +- .../html/struct_vma_defragmentation_info.html | 8 +- ...uct_vma_defragmentation_info2-members.html | 8 +- .../struct_vma_defragmentation_info2.html | 8 +- ...vma_defragmentation_pass_info-members.html | 8 +- .../struct_vma_defragmentation_pass_info.html | 8 +- ...efragmentation_pass_move_info-members.html | 8 +- ...ct_vma_defragmentation_pass_move_info.html | 8 +- ...uct_vma_defragmentation_stats-members.html | 8 +- .../struct_vma_defragmentation_stats.html | 8 +- ...t_vma_device_memory_callbacks-members.html | 8 +- .../struct_vma_device_memory_callbacks.html | 8 +- docs/html/struct_vma_pool.html | 8 +- .../struct_vma_pool_create_info-members.html | 8 +- docs/html/struct_vma_pool_create_info.html | 8 +- docs/html/struct_vma_pool_stats-members.html | 8 +- docs/html/struct_vma_pool_stats.html | 8 +- .../struct_vma_record_settings-members.html | 8 +- docs/html/struct_vma_record_settings.html | 8 +- docs/html/struct_vma_stat_info-members.html | 8 +- docs/html/struct_vma_stat_info.html | 8 +- docs/html/struct_vma_stats-members.html | 8 +- docs/html/struct_vma_stats.html | 8 +- .../struct_vma_vulkan_functions-members.html | 8 +- docs/html/struct_vma_vulkan_functions.html | 8 +- docs/html/usage_patterns.html | 8 +- docs/html/vk__mem__alloc_8h.html | 104 +-- docs/html/vk__mem__alloc_8h_source.html | 611 +++++++++--------- docs/html/vk_amd_device_coherent_memory.html | 8 +- docs/html/vk_khr_dedicated_allocation.html | 17 +- src/Common.cpp | 2 +- src/Common.h | 2 +- src/Shaders/Shader.frag | 2 +- src/Shaders/Shader.vert | 2 +- src/Shaders/SparseBindingTest.comp | 2 +- src/SparseBindingTest.cpp | 2 +- src/SparseBindingTest.h | 2 +- src/Tests.cpp | 2 +- src/Tests.h | 2 +- src/VmaReplay/Common.cpp | 2 +- src/VmaReplay/Common.h | 2 +- src/VmaReplay/Constants.cpp | 2 +- src/VmaReplay/Constants.h | 2 +- src/VmaReplay/VmaReplay.cpp | 2 +- src/VmaReplay/VmaUsage.cpp | 2 +- src/VmaReplay/VmaUsage.h | 2 +- src/VmaUsage.cpp | 2 +- src/VmaUsage.h | 2 +- src/VulkanSample.cpp | 2 +- src/vk_mem_alloc.h | 6 +- tools/VmaDumpVis/VmaDumpVis.py | 2 +- 155 files changed, 1393 insertions(+), 1311 deletions(-) diff --git a/LICENSE.txt b/LICENSE.txt index bee6af70..71e824f8 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,4 +1,4 @@ -Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/bin/VmaReplay_Release_vs2019.exe b/bin/VmaReplay_Release_vs2019.exe index fbbc49c46820201235fde1fef84bd23d1834e0cd..f8712c83f76f030f3791f97b1bf203793adb22de 100644 GIT binary patch delta 110 zcmZp8!`JYJZvzJ-lgX!MF2;5)Mi6G&&c(E(mm_b4e nFgYF|TLg$t0Od}=<)+6OGD`u?++JnK{Ev;1d3&V=b9*fS2`v|k delta 110 zcmZp8!`JYJZvzJ-li-JDF2;5)Mi6G&&c(E(mm_b4e mFgYF|TLg$t0Od}=<)+6OGD`u?++JnK{ErQ2V5J3fdo2Lr(H7AF diff --git a/bin/VulkanSample_Release_vs2019.exe b/bin/VulkanSample_Release_vs2019.exe index 246ae0a5de3d46a0debd14042362b19135384712..fa83c3adb50431afa1e648d66afc4e88fd6d8e04 100644 GIT binary patch delta 114 zcmZo@5NT)-*&x8kr2nZ|h_PLW5rmn5n0dPpBg-ReEB#N}2@F8M1jMO8d?lHM;ff~< sNQeO@#{*=G0I^L93xkapOm4cKEsGS;-0fbrEc196*|)#+WD(y60Bva)7XSbN delta 114 zcmZo@5NT)-*&x8k#Py+Bh_PLW5rmn5n0dPpBg-ReE3OaP2@F8M1jMO8d?lHM;ff~< sNQeO@#{*=G0I^L93xkapOm4cKEsGS;-0fbrEc196*|xv*WD(y607GCGQvd(} diff --git a/docs/html/allocation_annotation.html b/docs/html/allocation_annotation.html index 0d3a44bc..4329ae08 100644 --- a/docs/html/allocation_annotation.html +++ b/docs/html/allocation_annotation.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Allocation names and user data @@ -29,10 +29,10 @@ - + @@ -84,10 +84,19 @@
VkBuffer buffer;
VmaAllocation allocation;
vmaCreateBuffer(allocator, &bufferInfo, &allocCreateInfo, &buffer, &allocation, nullptr);
+
Definition: vk_mem_alloc.h:2881
+
void * pUserData
Custom general-purpose pointer that will be stored in VmaAllocation, can be read as VmaAllocationInfo...
Definition: vk_mem_alloc.h:2920
+
VmaMemoryUsage usage
Intended usage of memory.
Definition: vk_mem_alloc.h:2889
+
Represents single memory allocation.
+
@ VMA_MEMORY_USAGE_GPU_ONLY
Definition: vk_mem_alloc.h:2723
+
VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)

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

vmaGetAllocationInfo(allocator, allocation, &allocInfo);
MyBufferMetadata* pMetadata = (MyBufferMetadata*)allocInfo.pUserData;
+
Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().
Definition: vk_mem_alloc.h:3231
+
void * pUserData
Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vma...
Definition: vk_mem_alloc.h:3280
+
void vmaGetAllocationInfo(VmaAllocator allocator, VmaAllocation allocation, VmaAllocationInfo *pAllocationInfo)
Returns current information about specified allocation and atomically marks it as used in current fra...

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.

@@ -107,6 +116,9 @@

VkImage image;
VmaAllocation allocation;
vmaCreateImage(allocator, &imageInfo, &allocCreateInfo, &image, &allocation, nullptr);
+
VmaAllocationCreateFlags flags
Use VmaAllocationCreateFlagBits enum.
Definition: vk_mem_alloc.h:2883
+
VkResult vmaCreateImage(VmaAllocator allocator, const VkImageCreateInfo *pImageCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkImage *pImage, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
Function similar to vmaCreateBuffer().
+
@ VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT
Definition: vk_mem_alloc.h:2826

The value of pUserData pointer of the allocation will be different than the one you passed when setting allocation's name - pointing to a buffer managed internally that holds copy of the string.

vmaGetAllocationInfo(allocator, allocation, &allocInfo);
@@ -116,21 +128,9 @@

Note
Passing string name to VMA allocation doesn't automatically set it to the Vulkan buffer or image created with it. You must do it manually using an extension like VK_EXT_debug_utils, which is independent of this library.

-
@ VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT
Definition: vk_mem_alloc.h:2826
-
void * pUserData
Custom general-purpose pointer that will be stored in VmaAllocation, can be read as VmaAllocationInfo...
Definition: vk_mem_alloc.h:2920
-
void vmaGetAllocationInfo(VmaAllocator allocator, VmaAllocation allocation, VmaAllocationInfo *pAllocationInfo)
Returns current information about specified allocation and atomically marks it as used in current fra...
-
Represents single memory allocation.
-
@ VMA_MEMORY_USAGE_GPU_ONLY
Definition: vk_mem_alloc.h:2723
-
VkResult vmaCreateImage(VmaAllocator allocator, const VkImageCreateInfo *pImageCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkImage *pImage, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
Function similar to vmaCreateBuffer().
-
VmaMemoryUsage usage
Intended usage of memory.
Definition: vk_mem_alloc.h:2889
-
void * pUserData
Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vma...
Definition: vk_mem_alloc.h:3280
-
VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
-
VmaAllocationCreateFlags flags
Use VmaAllocationCreateFlagBits enum.
Definition: vk_mem_alloc.h:2883
-
Definition: vk_mem_alloc.h:2881
-
Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().
Definition: vk_mem_alloc.h:3231
diff --git a/docs/html/annotated.html b/docs/html/annotated.html index 47256746..5d50e519 100644 --- a/docs/html/annotated.html +++ b/docs/html/annotated.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Class List @@ -29,10 +29,10 @@ - + @@ -93,7 +93,7 @@ diff --git a/docs/html/choosing_memory_type.html b/docs/html/choosing_memory_type.html index 61303e82..f48a897d 100644 --- a/docs/html/choosing_memory_type.html +++ b/docs/html/choosing_memory_type.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Choosing memory type @@ -29,10 +29,10 @@ - + @@ -93,6 +93,11 @@

VkBuffer buffer;
VmaAllocation allocation;
vmaCreateBuffer(allocator, &bufferInfo, &allocInfo, &buffer, &allocation, nullptr);
+
Definition: vk_mem_alloc.h:2881
+
VmaMemoryUsage usage
Intended usage of memory.
Definition: vk_mem_alloc.h:2889
+
Represents single memory allocation.
+
@ VMA_MEMORY_USAGE_GPU_ONLY
Definition: vk_mem_alloc.h:2723
+
VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)

Required and preferred flags

You can specify more detailed requirements by filling members VmaAllocationCreateInfo::requiredFlags and VmaAllocationCreateInfo::preferredFlags with a combination of bits from enum VkMemoryPropertyFlags. For example, if you want to create a buffer that will be persistently mapped on host (so it must be HOST_VISIBLE) and preferably will also be HOST_COHERENT and HOST_CACHED, use following code:

@@ -104,6 +109,10 @@

VkBuffer buffer;
VmaAllocation allocation;
vmaCreateBuffer(allocator, &bufferInfo, &allocInfo, &buffer, &allocation, nullptr);
+
VkMemoryPropertyFlags preferredFlags
Flags that preferably should be set in a memory type chosen for an allocation.
Definition: vk_mem_alloc.h:2899
+
VkMemoryPropertyFlags requiredFlags
Flags that must be set in a Memory Type chosen for an allocation.
Definition: vk_mem_alloc.h:2894
+
VmaAllocationCreateFlags flags
Use VmaAllocationCreateFlagBits enum.
Definition: vk_mem_alloc.h:2883
+
@ 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:2800

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

If you use VmaAllocationCreateInfo::usage, it is just internally converted to a set of required and preferred flags.

@@ -118,6 +127,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:2907

Custom memory pools

If you allocate from custom memory pool, all the ways of specifying memory requirements described above are not applicable and the aforementioned members of VmaAllocationCreateInfo structure are ignored. Memory type is selected explicitly when creating the pool and then used to make all the allocations from that pool. For further details, see Custom memory pools.

@@ -131,19 +141,9 @@

-
Represents single memory allocation.
-
@ VMA_MEMORY_USAGE_GPU_ONLY
Definition: vk_mem_alloc.h:2723
-
VkMemoryPropertyFlags requiredFlags
Flags that must be set in a Memory Type chosen for an allocation.
Definition: vk_mem_alloc.h:2894
-
VmaMemoryUsage usage
Intended usage of memory.
Definition: vk_mem_alloc.h:2889
-
VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
-
@ 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:2800
-
VmaAllocationCreateFlags flags
Use VmaAllocationCreateFlagBits enum.
Definition: vk_mem_alloc.h:2883
-
Definition: vk_mem_alloc.h:2881
-
VkMemoryPropertyFlags preferredFlags
Flags that preferably should be set in a memory type chosen for an allocation.
Definition: vk_mem_alloc.h:2899
-
uint32_t memoryTypeBits
Bitmask containing one bit set for every memory type acceptable for this allocation.
Definition: vk_mem_alloc.h:2907
diff --git a/docs/html/classes.html b/docs/html/classes.html index 64fc825d..e63f3fa2 100644 --- a/docs/html/classes.html +++ b/docs/html/classes.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Class Index @@ -29,10 +29,10 @@ - + @@ -65,43 +65,16 @@
Class Index
diff --git a/docs/html/configuration.html b/docs/html/configuration.html index 721d7358..555858a4 100644 --- a/docs/html/configuration.html +++ b/docs/html/configuration.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Configuration @@ -29,10 +29,10 @@ - + @@ -95,7 +95,7 @@

diff --git a/docs/html/custom_memory_pools.html b/docs/html/custom_memory_pools.html index 00668c59..8e8fb8df 100644 --- a/docs/html/custom_memory_pools.html +++ b/docs/html/custom_memory_pools.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Custom memory pools @@ -29,10 +29,10 @@ - + @@ -105,9 +105,21 @@
vmaCreateBuffer(allocator, &bufCreateInfo, &allocCreateInfo, &buf, &alloc, &allocInfo);
+
Definition: vk_mem_alloc.h:2881
+
VmaPool pool
Pool that this allocation should be created in.
Definition: vk_mem_alloc.h:2913
+
Represents single memory allocation.
+
Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().
Definition: vk_mem_alloc.h:3231
+
Describes parameter of created VmaPool.
Definition: vk_mem_alloc.h:3049
+
uint32_t memoryTypeIndex
Vulkan memory type index to allocate this pool from.
Definition: vk_mem_alloc.h:3052
+
size_t maxBlockCount
Maximum number of blocks that can be allocated in this pool. Optional.
Definition: vk_mem_alloc.h:3077
+
Represents custom memory pool.
+
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)

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

vmaDestroyBuffer(allocator, buf, alloc);
vmaDestroyPool(allocator, pool);
+
void vmaDestroyBuffer(VmaAllocator allocator, VkBuffer buffer, VmaAllocation allocation)
Destroys Vulkan buffer and frees allocated memory.
+
void vmaDestroyPool(VmaAllocator allocator, VmaPool pool)
Destroys VmaPool object and frees Vulkan device memory.

Choosing memory type index

When creating a pool, you must explicitly specify memory type index. To find the one suitable for your buffers or images, you can use helper functions vmaFindMemoryTypeIndexForBufferInfo(), vmaFindMemoryTypeIndexForImageInfo(). You need to provide structures with example parameters of buffers or images that you are going to create in that pool.

@@ -124,6 +136,9 @@
VmaPoolCreateInfo poolCreateInfo = {};
poolCreateInfo.memoryTypeIndex = memTypeIndex;
// ...
+
VmaMemoryUsage usage
Intended usage of memory.
Definition: vk_mem_alloc.h:2889
+
@ VMA_MEMORY_USAGE_GPU_ONLY
Definition: vk_mem_alloc.h:2723
+
VkResult vmaFindMemoryTypeIndexForBufferInfo(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, uint32_t *pMemoryTypeIndex)
Helps to find memoryTypeIndex, given VkBufferCreateInfo and VmaAllocationCreateInfo.

When creating buffers/images allocated in that pool, provide following parameters:

  • VkBufferCreateInfo: Prefer to pass same parameters as above. Otherwise you risk creating resources in a memory type that is not suitable for them, which may result in undefined behavior. Using different VK_BUFFER_USAGE_ flags may work, but you shouldn't create images in a pool intended for buffers or the other way around.
  • @@ -180,24 +195,9 @@

-
uint32_t memoryTypeIndex
Vulkan memory type index to allocate this pool from.
Definition: vk_mem_alloc.h:3052
-
VmaPool pool
Pool that this allocation should be created in.
Definition: vk_mem_alloc.h:2913
-
void vmaDestroyPool(VmaAllocator allocator, VmaPool pool)
Destroys VmaPool object and frees Vulkan device memory.
-
Represents single memory allocation.
-
@ VMA_MEMORY_USAGE_GPU_ONLY
Definition: vk_mem_alloc.h:2723
-
VkResult vmaCreatePool(VmaAllocator allocator, const VmaPoolCreateInfo *pCreateInfo, VmaPool *pPool)
Allocates Vulkan device memory and creates VmaPool object.
-
size_t maxBlockCount
Maximum number of blocks that can be allocated in this pool. Optional.
Definition: vk_mem_alloc.h:3077
-
Describes parameter of created VmaPool.
Definition: vk_mem_alloc.h:3049
-
Represents custom memory pool.
-
VkResult vmaFindMemoryTypeIndexForBufferInfo(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, uint32_t *pMemoryTypeIndex)
Helps to find memoryTypeIndex, given VkBufferCreateInfo and VmaAllocationCreateInfo.
-
VmaMemoryUsage usage
Intended usage of memory.
Definition: vk_mem_alloc.h:2889
-
VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
-
void vmaDestroyBuffer(VmaAllocator allocator, VkBuffer buffer, VmaAllocation allocation)
Destroys Vulkan buffer and frees allocated memory.
-
Definition: vk_mem_alloc.h:2881
-
Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().
Definition: vk_mem_alloc.h:3231
diff --git a/docs/html/debugging_memory_usage.html b/docs/html/debugging_memory_usage.html index 7ab422da..ce216675 100644 --- a/docs/html/debugging_memory_usage.html +++ b/docs/html/debugging_memory_usage.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Debugging incorrect memory usage @@ -29,10 +29,10 @@ - + @@ -106,7 +106,7 @@

diff --git a/docs/html/defragmentation.html b/docs/html/defragmentation.html index efe253d7..2d15f36e 100644 --- a/docs/html/defragmentation.html +++ b/docs/html/defragmentation.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Defragmentation @@ -29,10 +29,10 @@ - + @@ -129,6 +129,19 @@

vmaBindBufferMemory(allocator, allocations[i], buffers[i]);
}
}
+
Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().
Definition: vk_mem_alloc.h:3231
+
Represents main object of this library initialized.
+
Represents Opaque object that represents started defragmentation process.
+
Parameters for defragmentation.
Definition: vk_mem_alloc.h:3642
+
uint32_t allocationCount
Number of allocations in pAllocations array.
Definition: vk_mem_alloc.h:3648
+
VkBool32 * pAllocationsChanged
Optional, output. Pointer to array that will be filled with information whether the allocation at cer...
Definition: vk_mem_alloc.h:3663
+
uint32_t maxCpuAllocationsToMove
Maximum number of allocations that can be moved to a different place using transfers on CPU side,...
Definition: vk_mem_alloc.h:3692
+
const VmaAllocation * pAllocations
Pointer to array of allocations that can be defragmented.
Definition: vk_mem_alloc.h:3657
+
VkDeviceSize maxCpuBytesToMove
Maximum total numbers of bytes that can be copied while moving allocations to different places using ...
Definition: vk_mem_alloc.h:3687
+
VkResult vmaDefragmentationBegin(VmaAllocator allocator, const VmaDefragmentationInfo2 *pInfo, VmaDefragmentationStats *pStats, VmaDefragmentationContext *pContext)
Begins defragmentation process.
+
VkResult vmaBindBufferMemory(VmaAllocator allocator, VmaAllocation allocation, VkBuffer buffer)
Binds buffer to allocation.
+
void vmaGetAllocationInfo(VmaAllocator allocator, VmaAllocation allocation, VmaAllocationInfo *pAllocationInfo)
Returns current information about specified allocation and atomically marks it as used in current fra...
+
VkResult vmaDefragmentationEnd(VmaAllocator allocator, VmaDefragmentationContext context)
Ends defragmentation process.

Setting VmaDefragmentationInfo2::pAllocationsChanged is optional. This output array tells whether particular allocation in VmaDefragmentationInfo2::pAllocations at the same index has been modified during defragmentation. You can pass null, but you then need to query every allocation passed to defragmentation for new parameters using vmaGetAllocationInfo() if you might need to recreate and rebind a buffer or image associated with it.

If you use Custom memory pools, you can fill VmaDefragmentationInfo2::poolCount and VmaDefragmentationInfo2::pPools instead of VmaDefragmentationInfo2::allocationCount and VmaDefragmentationInfo2::pAllocations to defragment all allocations in given pools. You cannot use VmaDefragmentationInfo2::pAllocationsChanged in that case. You can also combine both methods.

@@ -190,6 +203,9 @@

vmaBindBufferMemory(allocator, allocations[i], buffers[i]);
}
}
+
uint32_t maxGpuAllocationsToMove
Maximum number of allocations that can be moved to a different place using transfers on GPU side,...
Definition: vk_mem_alloc.h:3702
+
VkDeviceSize maxGpuBytesToMove
Maximum total numbers of bytes that can be copied while moving allocations to different places using ...
Definition: vk_mem_alloc.h:3697
+
VkCommandBuffer commandBuffer
Optional. Command buffer where GPU copy commands will be posted.
Definition: vk_mem_alloc.h:3711

You can combine these two methods by specifying non-zero maxGpu* as well as maxCpu* parameters. The library automatically chooses best method to defragment each memory pool.

You may try not to block your entire program to wait until defragmentation finishes, but do it in the background, as long as you carefully fullfill requirements described in function vmaDefragmentationBegin().

@@ -214,25 +230,9 @@

-
uint32_t allocationCount
Number of allocations in pAllocations array.
Definition: vk_mem_alloc.h:3648
-
Represents main object of this library initialized.
-
void vmaGetAllocationInfo(VmaAllocator allocator, VmaAllocation allocation, VmaAllocationInfo *pAllocationInfo)
Returns current information about specified allocation and atomically marks it as used in current fra...
-
VkResult vmaDefragmentationEnd(VmaAllocator allocator, VmaDefragmentationContext context)
Ends defragmentation process.
-
VkDeviceSize maxGpuBytesToMove
Maximum total numbers of bytes that can be copied while moving allocations to different places using ...
Definition: vk_mem_alloc.h:3697
-
VkCommandBuffer commandBuffer
Optional. Command buffer where GPU copy commands will be posted.
Definition: vk_mem_alloc.h:3711
-
Parameters for defragmentation.
Definition: vk_mem_alloc.h:3642
-
VkResult vmaBindBufferMemory(VmaAllocator allocator, VmaAllocation allocation, VkBuffer buffer)
Binds buffer to allocation.
-
const VmaAllocation * pAllocations
Pointer to array of allocations that can be defragmented.
Definition: vk_mem_alloc.h:3657
-
uint32_t maxGpuAllocationsToMove
Maximum number of allocations that can be moved to a different place using transfers on GPU side,...
Definition: vk_mem_alloc.h:3702
-
VkDeviceSize maxCpuBytesToMove
Maximum total numbers of bytes that can be copied while moving allocations to different places using ...
Definition: vk_mem_alloc.h:3687
-
VkResult vmaDefragmentationBegin(VmaAllocator allocator, const VmaDefragmentationInfo2 *pInfo, VmaDefragmentationStats *pStats, VmaDefragmentationContext *pContext)
Begins defragmentation process.
-
VkBool32 * pAllocationsChanged
Optional, output. Pointer to array that will be filled with information whether the allocation at cer...
Definition: vk_mem_alloc.h:3663
-
Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().
Definition: vk_mem_alloc.h:3231
-
Represents Opaque object that represents started defragmentation process.
-
uint32_t maxCpuAllocationsToMove
Maximum number of allocations that can be moved to a different place using transfers on CPU side,...
Definition: vk_mem_alloc.h:3692
diff --git a/docs/html/deprecated.html b/docs/html/deprecated.html index 0bf54e07..d997ede3 100644 --- a/docs/html/deprecated.html +++ b/docs/html/deprecated.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Deprecated List @@ -29,10 +29,10 @@ - + @@ -66,18 +66,18 @@
-
Member vmaResizeAllocation (VmaAllocator allocator, VmaAllocation allocation, VkDeviceSize newSize)
-
In version 2.2.0 it used to try to change allocation's size without moving or reallocating it. In current version it returns VK_SUCCESS only if newSize equals current allocation's size. Otherwise returns VK_ERROR_OUT_OF_POOL_MEMORY, indicating that allocation's size could not be changed.
+
Member vmaDefragment (VmaAllocator allocator, const VmaAllocation *pAllocations, size_t allocationCount, VkBool32 *pAllocationsChanged, const VmaDefragmentationInfo *pDefragmentationInfo, VmaDefragmentationStats *pDefragmentationStats)
+
This is a part of the old interface. It is recommended to use structure VmaDefragmentationInfo2 and function vmaDefragmentationBegin() instead.
Member VmaDefragmentationInfo
This is a part of the old interface. It is recommended to use structure VmaDefragmentationInfo2 and function vmaDefragmentationBegin() instead.
-
Member vmaDefragment (VmaAllocator allocator, const VmaAllocation *pAllocations, size_t allocationCount, VkBool32 *pAllocationsChanged, const VmaDefragmentationInfo *pDefragmentationInfo, VmaDefragmentationStats *pDefragmentationStats)
-
This is a part of the old interface. It is recommended to use structure VmaDefragmentationInfo2 and function vmaDefragmentationBegin() instead.
+
Member vmaResizeAllocation (VmaAllocator allocator, VmaAllocation allocation, VkDeviceSize newSize)
+
In version 2.2.0 it used to try to change allocation's size without moving or reallocating it. In current version it returns VK_SUCCESS only if newSize equals current allocation's size. Otherwise returns VK_ERROR_OUT_OF_POOL_MEMORY, indicating that allocation's size could not be changed.
diff --git a/docs/html/doxygen.css b/docs/html/doxygen.css index f640966e..ffbff022 100644 --- a/docs/html/doxygen.css +++ b/docs/html/doxygen.css @@ -1,4 +1,4 @@ -/* The standard CSS for doxygen 1.8.20 */ +/* The standard CSS for doxygen 1.9.1 */ body, table, div, p, dl { font: 400 14px/22px Roboto,sans-serif; @@ -103,30 +103,96 @@ caption { } span.legend { - font-size: 70%; - text-align: center; + font-size: 70%; + text-align: center; } h3.version { - font-size: 90%; - text-align: center; + font-size: 90%; + text-align: center; } -div.qindex, div.navtab{ - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; +div.navtab { + border-right: 1px solid #A3B4D7; + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} +td.navtabHL { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +a.navtab { + font-weight: bold; } -div.qindex, div.navpath { +div.qindex{ + text-align: center; width: 100%; line-height: 140%; + font-size: 130%; + color: #A0A0A0; } -div.navtab { - margin-right: 15px; +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: black; +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; } +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.odd { + background-color: #F8F9FC; +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + /* @group Link Styling */ a { @@ -143,17 +209,6 @@ a:hover { text-decoration: underline; } -a.qindex { - font-weight: bold; -} - -a.qindexHL { - font-weight: bold; - background-color: #9CAFD4; - color: #FFFFFF; - border: 1px double #869DCA; -} - .contents a.qindexHL:visited { color: #FFFFFF; } @@ -1426,6 +1481,12 @@ div.toc li.level4 { margin-left: 45px; } +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + .PageDocRTL-title div.toc li.level1 { margin-left: 0 !important; margin-right: 0; diff --git a/docs/html/enabling_buffer_device_address.html b/docs/html/enabling_buffer_device_address.html index 1619eb6a..d02eb88c 100644 --- a/docs/html/enabling_buffer_device_address.html +++ b/docs/html/enabling_buffer_device_address.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Enabling buffer device address @@ -29,10 +29,10 @@ - + @@ -90,7 +90,7 @@

diff --git a/docs/html/files.html b/docs/html/files.html index 3ad6e899..9c5f8bad 100644 --- a/docs/html/files.html +++ b/docs/html/files.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: File List @@ -29,10 +29,10 @@ - + @@ -73,7 +73,7 @@ diff --git a/docs/html/functions.html b/docs/html/functions.html index 4532dd99..e6facd2a 100644 --- a/docs/html/functions.html +++ b/docs/html/functions.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Class Members @@ -29,10 +29,10 @@ - + @@ -392,7 +392,7 @@

- v -

    diff --git a/docs/html/functions_vars.html b/docs/html/functions_vars.html index 8448a21b..f6a20f27 100644 --- a/docs/html/functions_vars.html +++ b/docs/html/functions_vars.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Class Members - Variables @@ -29,10 +29,10 @@ - + @@ -392,7 +392,7 @@

    - v -

      diff --git a/docs/html/general_considerations.html b/docs/html/general_considerations.html index 07c4efa9..bb58338d 100644 --- a/docs/html/general_considerations.html +++ b/docs/html/general_considerations.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: General considerations @@ -29,10 +29,10 @@ - + @@ -123,7 +123,7 @@

      diff --git a/docs/html/globals.html b/docs/html/globals.html index 5903e7fd..e5af0934 100644 --- a/docs/html/globals.html +++ b/docs/html/globals.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: File Members @@ -29,10 +29,10 @@ - + @@ -468,7 +468,7 @@

      - v -

        diff --git a/docs/html/globals_defs.html b/docs/html/globals_defs.html index 5abbe13d..26dd4e08 100644 --- a/docs/html/globals_defs.html +++ b/docs/html/globals_defs.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: File Members @@ -29,10 +29,10 @@ - + @@ -90,7 +90,7 @@ diff --git a/docs/html/globals_enum.html b/docs/html/globals_enum.html index bc7c873e..1d588086 100644 --- a/docs/html/globals_enum.html +++ b/docs/html/globals_enum.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: File Members @@ -29,10 +29,10 @@ - + @@ -84,7 +84,7 @@ diff --git a/docs/html/globals_eval.html b/docs/html/globals_eval.html index 39b2ae2f..b370fa02 100644 --- a/docs/html/globals_eval.html +++ b/docs/html/globals_eval.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: File Members @@ -29,10 +29,10 @@ - + @@ -194,7 +194,7 @@

        - v -

          diff --git a/docs/html/globals_func.html b/docs/html/globals_func.html index 1883adf8..8acec307 100644 --- a/docs/html/globals_func.html +++ b/docs/html/globals_func.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: File Members @@ -29,10 +29,10 @@ - + @@ -224,7 +224,7 @@

          - v -

            diff --git a/docs/html/globals_type.html b/docs/html/globals_type.html index 13b8c6c3..b54a1cf8 100644 --- a/docs/html/globals_type.html +++ b/docs/html/globals_type.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: File Members @@ -29,10 +29,10 @@ - + @@ -156,7 +156,7 @@ diff --git a/docs/html/index.html b/docs/html/index.html index 0532395a..81203d88 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Vulkan Memory Allocator @@ -29,10 +29,10 @@ - + @@ -65,8 +65,8 @@
            Vulkan Memory Allocator
            -

            Version 3.0.0-development (2020-11-03)

            -

            Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved.
            +

            Version 3.0.0-development (2021-02-16)

            +

            Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved.
            License: MIT

            Documentation of all members: vk_mem_alloc.h

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

            diff --git a/docs/html/lost_allocations.html b/docs/html/lost_allocations.html index 218ab60f..53a4c337 100644 --- a/docs/html/lost_allocations.html +++ b/docs/html/lost_allocations.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Lost allocations @@ -29,10 +29,10 @@
            - + @@ -117,6 +117,16 @@
            vmaCreateBuffer(allocator, &bufCreateInfo, &allocCreateInfo, &m_Buf, &m_Alloc, nullptr);
            }
            +
            Definition: vk_mem_alloc.h:2881
            +
            VmaMemoryUsage usage
            Intended usage of memory.
            Definition: vk_mem_alloc.h:2889
            +
            VmaAllocationCreateFlags flags
            Use VmaAllocationCreateFlagBits enum.
            Definition: vk_mem_alloc.h:2883
            +
            Represents single memory allocation.
            +
            void vmaDestroyBuffer(VmaAllocator allocator, VkBuffer buffer, VmaAllocation allocation)
            Destroys Vulkan buffer and frees allocated memory.
            +
            VkBool32 vmaTouchAllocation(VmaAllocator allocator, VmaAllocation allocation)
            Returns VK_TRUE if allocation is not lost and atomically marks it as used in current frame.
            +
            @ VMA_MEMORY_USAGE_GPU_ONLY
            Definition: vk_mem_alloc.h:2723
            +
            VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
            +
            @ VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT
            Definition: vk_mem_alloc.h:2813
            +
            @ VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT
            Definition: vk_mem_alloc.h:2820

            When using lost allocations, you may see some Vulkan validation layer warnings about overlapping regions of memory bound to different kinds of buffers and images. This is still valid as long as you implement proper handling of lost allocations (like in the example above) and don't use them.

            You can create an allocation that is already in lost state from the beginning using function vmaCreateLostAllocation(). It may be useful if you need a "dummy" allocation that is not null.

            You can call function vmaMakePoolAllocationsLost() to set all eligible allocations in a specified custom pool to lost state. Allocations that have been "touched" in current frame or VmaPoolCreateInfo::frameInUseCount frames back cannot become lost.

            @@ -124,19 +134,9 @@

            Yes, although it has no visible effect. Calls to vmaGetAllocationInfo() and vmaTouchAllocation() update last use frame index also for allocations that cannot become lost, but the only way to observe it is to dump internal allocator state using vmaBuildStatsString(). You can use this feature for debugging purposes to explicitly mark allocations that you use in current frame and then analyze JSON dump to see for how long each allocation stays unused.

            -
            VkBool32 vmaTouchAllocation(VmaAllocator allocator, VmaAllocation allocation)
            Returns VK_TRUE if allocation is not lost and atomically marks it as used in current frame.
            -
            @ VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT
            Definition: vk_mem_alloc.h:2813
            -
            Represents single memory allocation.
            -
            @ VMA_MEMORY_USAGE_GPU_ONLY
            Definition: vk_mem_alloc.h:2723
            -
            @ VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT
            Definition: vk_mem_alloc.h:2820
            -
            VmaMemoryUsage usage
            Intended usage of memory.
            Definition: vk_mem_alloc.h:2889
            -
            VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
            -
            void vmaDestroyBuffer(VmaAllocator allocator, VkBuffer buffer, VmaAllocation allocation)
            Destroys Vulkan buffer and frees allocated memory.
            -
            VmaAllocationCreateFlags flags
            Use VmaAllocationCreateFlagBits enum.
            Definition: vk_mem_alloc.h:2883
            -
            Definition: vk_mem_alloc.h:2881
            diff --git a/docs/html/memory_mapping.html b/docs/html/memory_mapping.html index 13721872..6a3368bb 100644 --- a/docs/html/memory_mapping.html +++ b/docs/html/memory_mapping.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Memory mapping @@ -29,10 +29,10 @@ - + @@ -91,6 +91,10 @@

            vmaMapMemory(allocator, constantBufferAllocation, &mappedData);
            memcpy(mappedData, &constantBufferData, sizeof(constantBufferData));
            vmaUnmapMemory(allocator, constantBufferAllocation);
            +
            Represents single memory allocation.
            +
            Represents main object of this library initialized.
            +
            void vmaUnmapMemory(VmaAllocator allocator, VmaAllocation allocation)
            Unmaps memory represented by given allocation, mapped previously using vmaMapMemory().
            +
            VkResult vmaMapMemory(VmaAllocator allocator, VmaAllocation allocation, void **ppData)
            Maps memory represented by given allocation and returns pointer to it.

            When mapping, you may see a warning from Vulkan validation layer similar to this one:

            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 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. You can safely ignore it if you are sure you access only memory of the intended object that you wanted to map.

            @@ -112,6 +116,14 @@

            // Buffer is already mapped. You can access its memory.
            memcpy(allocInfo.pMappedData, &constantBufferData, sizeof(constantBufferData));
            +
            Definition: vk_mem_alloc.h:2881
            +
            VmaMemoryUsage usage
            Intended usage of memory.
            Definition: vk_mem_alloc.h:2889
            +
            VmaAllocationCreateFlags flags
            Use VmaAllocationCreateFlagBits enum.
            Definition: vk_mem_alloc.h:2883
            +
            Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().
            Definition: vk_mem_alloc.h:3231
            +
            void * pMappedData
            Pointer to the beginning of this allocation as mapped data.
            Definition: vk_mem_alloc.h:3275
            +
            @ VMA_MEMORY_USAGE_CPU_ONLY
            Definition: vk_mem_alloc.h:2733
            +
            VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
            +
            @ 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:2800

            There are some exceptions though, when you should consider mapping memory only for a short period of time:

            • When operating system is Windows 7 or 8.x (Windows 10 is not affected because it uses WDDM2), device is discrete AMD GPU, and memory type is the special 256 MiB pool of DEVICE_LOCAL + HOST_VISIBLE memory (selected when you use VMA_MEMORY_USAGE_CPU_TO_GPU), then whenever a memory block allocated from this memory type stays mapped for the time of any call to vkQueueSubmit() or vkQueuePresentKHR(), this block is migrated by WDDM to system RAM, which degrades performance. It doesn't matter if that particular memory block is actually used by the command buffer being submitted.
            • @@ -156,6 +168,10 @@

              // Allocation ended up in non-mappable memory.
              // You need to create CPU-side buffer in VMA_MEMORY_USAGE_CPU_ONLY and make a transfer.
              }
              +
              VkMemoryPropertyFlags preferredFlags
              Flags that preferably should be set in a memory type chosen for an allocation.
              Definition: vk_mem_alloc.h:2899
              +
              uint32_t memoryType
              Memory type index that this allocation was allocated from.
              Definition: vk_mem_alloc.h:3236
              +
              void vmaGetMemoryTypeProperties(VmaAllocator allocator, uint32_t memoryTypeIndex, VkMemoryPropertyFlags *pFlags)
              Given Memory Type Index, returns Property Flags of this memory type.
              +
              @ VMA_MEMORY_USAGE_GPU_ONLY
              Definition: vk_mem_alloc.h:2723

              You can even use VMA_ALLOCATION_CREATE_MAPPED_BIT flag while creating allocations that are not necessarily HOST_VISIBLE (e.g. using VMA_MEMORY_USAGE_GPU_ONLY). If the allocation ends up in memory type that is HOST_VISIBLE, it will be persistently mapped and you can use it directly. If not, the flag is just ignored. Example:

              VkBufferCreateInfo bufCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO };
              bufCreateInfo.size = sizeof(ConstantBuffer);
              @@ -183,25 +199,9 @@

              }

              -
              void vmaUnmapMemory(VmaAllocator allocator, VmaAllocation allocation)
              Unmaps memory represented by given allocation, mapped previously using vmaMapMemory().
              -
              Represents main object of this library initialized.
              -
              void vmaGetMemoryTypeProperties(VmaAllocator allocator, uint32_t memoryTypeIndex, VkMemoryPropertyFlags *pFlags)
              Given Memory Type Index, returns Property Flags of this memory type.
              -
              @ VMA_MEMORY_USAGE_CPU_ONLY
              Definition: vk_mem_alloc.h:2733
              -
              Represents single memory allocation.
              -
              @ VMA_MEMORY_USAGE_GPU_ONLY
              Definition: vk_mem_alloc.h:2723
              -
              VkResult vmaMapMemory(VmaAllocator allocator, VmaAllocation allocation, void **ppData)
              Maps memory represented by given allocation and returns pointer to it.
              -
              void * pMappedData
              Pointer to the beginning of this allocation as mapped data.
              Definition: vk_mem_alloc.h:3275
              -
              VmaMemoryUsage usage
              Intended usage of memory.
              Definition: vk_mem_alloc.h:2889
              -
              VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
              -
              uint32_t memoryType
              Memory type index that this allocation was allocated from.
              Definition: vk_mem_alloc.h:3236
              -
              @ 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:2800
              -
              VmaAllocationCreateFlags flags
              Use VmaAllocationCreateFlagBits enum.
              Definition: vk_mem_alloc.h:2883
              -
              Definition: vk_mem_alloc.h:2881
              -
              VkMemoryPropertyFlags preferredFlags
              Flags that preferably should be set in a memory type chosen for an allocation.
              Definition: vk_mem_alloc.h:2899
              -
              Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().
              Definition: vk_mem_alloc.h:3231
              diff --git a/docs/html/pages.html b/docs/html/pages.html index 67f6949e..6525b8f1 100644 --- a/docs/html/pages.html +++ b/docs/html/pages.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Related Pages @@ -29,10 +29,10 @@ - + @@ -73,7 +73,7 @@ diff --git a/docs/html/quick_start.html b/docs/html/quick_start.html index bf5e1ec7..968d8ee3 100644 --- a/docs/html/quick_start.html +++ b/docs/html/quick_start.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Quick start @@ -29,10 +29,10 @@ - + @@ -104,6 +104,13 @@

              VmaAllocator allocator;
              vmaCreateAllocator(&allocatorInfo, &allocator);
              +
              Description of a Allocator to be created.
              Definition: vk_mem_alloc.h:2415
              +
              VkPhysicalDevice physicalDevice
              Vulkan physical device.
              Definition: vk_mem_alloc.h:2420
              +
              VkInstance instance
              Handle to Vulkan instance object.
              Definition: vk_mem_alloc.h:2489
              +
              VkDevice device
              Vulkan device.
              Definition: vk_mem_alloc.h:2423
              +
              uint32_t vulkanApiVersion
              Optional. The highest version of Vulkan that the application is designed to use.
              Definition: vk_mem_alloc.h:2498
              +
              Represents main object of this library initialized.
              +
              VkResult vmaCreateAllocator(const VmaAllocatorCreateInfo *pCreateInfo, VmaAllocator *pAllocator)
              Creates Allocator object.

              Only members physicalDevice, device, instance are required. However, you should inform the library which Vulkan version do you use by setting VmaAllocatorCreateInfo::vulkanApiVersion and which extensions did you enable by setting VmaAllocatorCreateInfo::flags (like VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT for VK_KHR_buffer_device_address). Otherwise, VMA would use only features of Vulkan 1.0 core with no extensions.

              Resource allocation

              @@ -123,28 +130,21 @@

              VkBuffer buffer;
              VmaAllocation allocation;
              vmaCreateBuffer(allocator, &bufferInfo, &allocInfo, &buffer, &allocation, nullptr);
              +
              Definition: vk_mem_alloc.h:2881
              +
              VmaMemoryUsage usage
              Intended usage of memory.
              Definition: vk_mem_alloc.h:2889
              +
              Represents single memory allocation.
              +
              @ VMA_MEMORY_USAGE_GPU_ONLY
              Definition: vk_mem_alloc.h:2723
              +
              VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)

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

              vmaDestroyBuffer(allocator, buffer, allocation);
              +
              void vmaDestroyBuffer(VmaAllocator allocator, VkBuffer buffer, VmaAllocation allocation)
              Destroys Vulkan buffer and frees allocated memory.
              +
              void vmaDestroyAllocator(VmaAllocator allocator)
              Destroys allocator object.
              -
              VkPhysicalDevice physicalDevice
              Vulkan physical device.
              Definition: vk_mem_alloc.h:2420
              -
              Represents main object of this library initialized.
              -
              Description of a Allocator to be created.
              Definition: vk_mem_alloc.h:2415
              -
              Represents single memory allocation.
              -
              uint32_t vulkanApiVersion
              Optional. The highest version of Vulkan that the application is designed to use.
              Definition: vk_mem_alloc.h:2498
              -
              @ VMA_MEMORY_USAGE_GPU_ONLY
              Definition: vk_mem_alloc.h:2723
              -
              void vmaDestroyAllocator(VmaAllocator allocator)
              Destroys allocator object.
              -
              VkDevice device
              Vulkan device.
              Definition: vk_mem_alloc.h:2423
              -
              VmaMemoryUsage usage
              Intended usage of memory.
              Definition: vk_mem_alloc.h:2889
              -
              VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
              -
              VkResult vmaCreateAllocator(const VmaAllocatorCreateInfo *pCreateInfo, VmaAllocator *pAllocator)
              Creates Allocator object.
              -
              VkInstance instance
              Handle to Vulkan instance object.
              Definition: vk_mem_alloc.h:2489
              -
              void vmaDestroyBuffer(VmaAllocator allocator, VkBuffer buffer, VmaAllocation allocation)
              Destroys Vulkan buffer and frees allocated memory.
              -
              Definition: vk_mem_alloc.h:2881
              diff --git a/docs/html/record_and_replay.html b/docs/html/record_and_replay.html index ecfae00c..972cb673 100644 --- a/docs/html/record_and_replay.html +++ b/docs/html/record_and_replay.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Record and replay @@ -29,10 +29,10 @@ - + @@ -83,7 +83,7 @@

              #define VMA_RECORDING_ENABLED 1

              To record sequence of calls to a file: Fill in VmaAllocatorCreateInfo::pRecordSettings member while creating VmaAllocator object. File is opened and written during whole lifetime of the allocator.

              To replay file: Use VmaReplay - standalone command-line program. Precompiled binary can be found in "bin" directory. Its source can be found in "src/VmaReplay" directory. Its project is generated by Premake. Command line syntax is printed when the program is launched without parameters. Basic usage:

              VmaReplay.exe MyRecording.csv
              -

              Documentation of file format can be found in file: "docs/Recording file format.md". It's a human-readable, text file in CSV format (Comma Separated Values).

              +

              Documentation of file format can be found in file: "docs/Recording file format.md". It's a human-readable, text file in CSV format (Comma Separated Values).

              Additional considerations

                @@ -94,7 +94,7 @@

                diff --git a/docs/html/resource_aliasing.html b/docs/html/resource_aliasing.html index dd1bf08d..dd1d7566 100644 --- a/docs/html/resource_aliasing.html +++ b/docs/html/resource_aliasing.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Resource aliasing (overlap) @@ -29,10 +29,10 @@ - + @@ -137,6 +137,13 @@
                vmaFreeMemory(allocator, alloc);
                vkDestroyImage(allocator, img2, nullptr);
                vkDestroyImage(allocator, img1, nullptr);
                +
                Definition: vk_mem_alloc.h:2881
                +
                VmaMemoryUsage usage
                Intended usage of memory.
                Definition: vk_mem_alloc.h:2889
                +
                Represents single memory allocation.
                +
                VkResult vmaBindImageMemory(VmaAllocator allocator, VmaAllocation allocation, VkImage image)
                Binds image to allocation.
                +
                void vmaFreeMemory(VmaAllocator allocator, const VmaAllocation allocation)
                Frees memory previously allocated using vmaAllocateMemory(), vmaAllocateMemoryForBuffer(),...
                +
                @ VMA_MEMORY_USAGE_GPU_ONLY
                Definition: vk_mem_alloc.h:2723
                +
                VkResult vmaAllocateMemory(VmaAllocator allocator, const VkMemoryRequirements *pVkMemoryRequirements, const VmaAllocationCreateInfo *pCreateInfo, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
                General purpose memory allocation.

                Remember that using resouces 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.

                Additional considerations:

                  @@ -146,16 +153,9 @@
                -
                Represents single memory allocation.
                -
                @ VMA_MEMORY_USAGE_GPU_ONLY
                Definition: vk_mem_alloc.h:2723
                -
                VkResult vmaAllocateMemory(VmaAllocator allocator, const VkMemoryRequirements *pVkMemoryRequirements, const VmaAllocationCreateInfo *pCreateInfo, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
                General purpose memory allocation.
                -
                VmaMemoryUsage usage
                Intended usage of memory.
                Definition: vk_mem_alloc.h:2889
                -
                VkResult vmaBindImageMemory(VmaAllocator allocator, VmaAllocation allocation, VkImage image)
                Binds image to allocation.
                -
                Definition: vk_mem_alloc.h:2881
                -
                void vmaFreeMemory(VmaAllocator allocator, const VmaAllocation allocation)
                Frees memory previously allocated using vmaAllocateMemory(), vmaAllocateMemoryForBuffer(),...
                diff --git a/docs/html/search/all_0.html b/docs/html/search/all_0.html index a34319f3..1ec5b2d5 100644 --- a/docs/html/search/all_0.html +++ b/docs/html/search/all_0.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/all_1.html b/docs/html/search/all_1.html index 51aff6f6..9f80e904 100644 --- a/docs/html/search/all_1.html +++ b/docs/html/search/all_1.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/all_10.html b/docs/html/search/all_10.html index e6ca18b4..3bf11961 100644 --- a/docs/html/search/all_10.html +++ b/docs/html/search/all_10.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/all_11.html b/docs/html/search/all_11.html index 7cf685f1..c9f79d28 100644 --- a/docs/html/search/all_11.html +++ b/docs/html/search/all_11.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/all_11.js b/docs/html/search/all_11.js index c0406350..fd011a93 100644 --- a/docs/html/search/all_11.js +++ b/docs/html/search/all_11.js @@ -1,159 +1,159 @@ var searchData= [ - ['vulkan_20memory_20allocator_85',['Vulkan Memory Allocator',['../index.html',1,'']]], - ['vk_5famd_5fdevice_5fcoherent_5fmemory_86',['VK_AMD_device_coherent_memory',['../vk_amd_device_coherent_memory.html',1,'index']]], - ['vk_5fkhr_5fdedicated_5fallocation_87',['VK_KHR_dedicated_allocation',['../vk_khr_dedicated_allocation.html',1,'index']]], - ['vk_5fmem_5falloc_2eh_88',['vk_mem_alloc.h',['../vk__mem__alloc_8h.html',1,'']]], - ['vkallocatememory_89',['vkAllocateMemory',['../struct_vma_vulkan_functions.html#a2943bf99dfd784a0e8f599d987e22e6c',1,'VmaVulkanFunctions']]], - ['vkbindbuffermemory_90',['vkBindBufferMemory',['../struct_vma_vulkan_functions.html#a94fc4f3a605d9880bb3c0ba2c2fc80b2',1,'VmaVulkanFunctions']]], - ['vkbindimagememory_91',['vkBindImageMemory',['../struct_vma_vulkan_functions.html#a1338d96a128a5ade648b8d934907c637',1,'VmaVulkanFunctions']]], - ['vkcmdcopybuffer_92',['vkCmdCopyBuffer',['../struct_vma_vulkan_functions.html#ae5c0db8c89a3b82593dc16aa6a49fa3a',1,'VmaVulkanFunctions']]], - ['vkcreatebuffer_93',['vkCreateBuffer',['../struct_vma_vulkan_functions.html#ae8084315a25006271a2edfc3a447519f',1,'VmaVulkanFunctions']]], - ['vkcreateimage_94',['vkCreateImage',['../struct_vma_vulkan_functions.html#a23ebe70be515b9b5010a1d691200e325',1,'VmaVulkanFunctions']]], - ['vkdestroybuffer_95',['vkDestroyBuffer',['../struct_vma_vulkan_functions.html#a7e054606faddb07f0e8556f3ed317d45',1,'VmaVulkanFunctions']]], - ['vkdestroyimage_96',['vkDestroyImage',['../struct_vma_vulkan_functions.html#a90b898227039b1dcb3520f6e91f09ffa',1,'VmaVulkanFunctions']]], - ['vkflushmappedmemoryranges_97',['vkFlushMappedMemoryRanges',['../struct_vma_vulkan_functions.html#a33c322f4c4ad2810f8a9c97a277572f9',1,'VmaVulkanFunctions']]], - ['vkfreememory_98',['vkFreeMemory',['../struct_vma_vulkan_functions.html#a4c658701778564d62034255b5dda91b4',1,'VmaVulkanFunctions']]], - ['vkgetbuffermemoryrequirements_99',['vkGetBufferMemoryRequirements',['../struct_vma_vulkan_functions.html#a5b92901df89a4194b0d12f6071d4d143',1,'VmaVulkanFunctions']]], - ['vkgetimagememoryrequirements_100',['vkGetImageMemoryRequirements',['../struct_vma_vulkan_functions.html#a475f6f49f8debe4d10800592606d53f4',1,'VmaVulkanFunctions']]], - ['vkgetphysicaldevicememoryproperties_101',['vkGetPhysicalDeviceMemoryProperties',['../struct_vma_vulkan_functions.html#a60d25c33bba06bb8592e6875cbaa9830',1,'VmaVulkanFunctions']]], - ['vkgetphysicaldeviceproperties_102',['vkGetPhysicalDeviceProperties',['../struct_vma_vulkan_functions.html#a77b7a74082823e865dd6546623468f96',1,'VmaVulkanFunctions']]], - ['vkinvalidatemappedmemoryranges_103',['vkInvalidateMappedMemoryRanges',['../struct_vma_vulkan_functions.html#a5c1093bc32386a8060c37c9f282078a1',1,'VmaVulkanFunctions']]], - ['vkmapmemory_104',['vkMapMemory',['../struct_vma_vulkan_functions.html#ab5c1f38dea3a2cf00dc9eb4f57218c49',1,'VmaVulkanFunctions']]], - ['vkunmapmemory_105',['vkUnmapMemory',['../struct_vma_vulkan_functions.html#acc798589736f0becb317fc2196c1d8b9',1,'VmaVulkanFunctions']]], - ['vma_5fallocation_5fcreate_5fcan_5fbecome_5flost_5fbit_106',['VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a5f436af6c8fe8540573a6d22627a6fd2',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fcan_5fmake_5fother_5flost_5fbit_107',['VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a68686d0ce9beb0d4d1b9f2b8b1389a7e',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fdedicated_5fmemory_5fbit_108',['VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a3fc311d855c2ff53f1090ef5c722b38f',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fdont_5fbind_5fbit_109',['VMA_ALLOCATION_CREATE_DONT_BIND_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a2310568c62208af432724305fe29ccea',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fflag_5fbits_5fmax_5fenum_110',['VMA_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ae5633ec569f4899cf8f29e7385b2f882',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fmapped_5fbit_111',['VMA_ALLOCATION_CREATE_MAPPED_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a11da372cc3a82931c5e5d6146cd9dd1f',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fnever_5fallocate_5fbit_112',['VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a89759603401014eb325eb22a3839f2ff',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fstrategy_5fbest_5ffit_5fbit_113',['VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a839826775c62319466441f86496f036d',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fstrategy_5ffirst_5ffit_5fbit_114',['VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a33eb2052674f3ad92386c714a65fb777',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fstrategy_5fmask_115',['VMA_ALLOCATION_CREATE_STRATEGY_MASK',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a8e16845d81ae3d27c47106d4770d5c7e',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fstrategy_5fmin_5ffragmentation_5fbit_116',['VMA_ALLOCATION_CREATE_STRATEGY_MIN_FRAGMENTATION_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a621b704103eb3360230c860acf36e706',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fstrategy_5fmin_5fmemory_5fbit_117',['VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a8af1210cf591784afa026d94998f735d',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fstrategy_5fmin_5ftime_5fbit_118',['VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a0729e932b7ea170e3a128cad96c5cf6d',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fstrategy_5fworst_5ffit_5fbit_119',['VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ad242a04f802e25fef0b880afe8bb0a62',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fupper_5faddress_5fbit_120',['VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a42ba3a2d2c7117953210b7c3ef8da0df',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fuser_5fdata_5fcopy_5fstring_5fbit_121',['VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597aa6f24f821cd6a7c5e4a443f7bf59c520',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fwithin_5fbudget_5fbit_122',['VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ab8b1764f3e9022368e440c057783b92d',1,'vk_mem_alloc.h']]], - ['vma_5fallocator_5fcreate_5famd_5fdevice_5fcoherent_5fmemory_5fbit_123',['VMA_ALLOCATOR_CREATE_AMD_DEVICE_COHERENT_MEMORY_BIT',['../vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca2acce4886d8078552efa38878413970f',1,'vk_mem_alloc.h']]], - ['vma_5fallocator_5fcreate_5fbuffer_5fdevice_5faddress_5fbit_124',['VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT',['../vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca5f1b28b0414319d1687e1f2b30ab0089',1,'vk_mem_alloc.h']]], - ['vma_5fallocator_5fcreate_5fext_5fmemory_5fbudget_5fbit_125',['VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT',['../vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca4d4687863f7bd4b418c6006dc04400b0',1,'vk_mem_alloc.h']]], - ['vma_5fallocator_5fcreate_5fext_5fmemory_5fpriority_5fbit_126',['VMA_ALLOCATOR_CREATE_EXT_MEMORY_PRIORITY_BIT',['../vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7caffdd7a5169be3dbd7cbf6b3619e4f78a',1,'vk_mem_alloc.h']]], - ['vma_5fallocator_5fcreate_5fexternally_5fsynchronized_5fbit_127',['VMA_ALLOCATOR_CREATE_EXTERNALLY_SYNCHRONIZED_BIT',['../vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca4816ddaed324ba110172ca608a20f29d',1,'vk_mem_alloc.h']]], - ['vma_5fallocator_5fcreate_5fflag_5fbits_5fmax_5fenum_128',['VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM',['../vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7cae4d5ad929caba5f23eb502b13bd5286c',1,'vk_mem_alloc.h']]], - ['vma_5fallocator_5fcreate_5fkhr_5fbind_5fmemory2_5fbit_129',['VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT',['../vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca8fb75bf07cd184ab903596295e863dee',1,'vk_mem_alloc.h']]], - ['vma_5fallocator_5fcreate_5fkhr_5fdedicated_5fallocation_5fbit_130',['VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT',['../vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7cace7da7cc6e71a625dfa763c55a597878',1,'vk_mem_alloc.h']]], - ['vma_5fbind_5fmemory2_131',['VMA_BIND_MEMORY2',['../vk__mem__alloc_8h.html#a88bef97f86d70a34a4c0746e09a2680d',1,'vk_mem_alloc.h']]], - ['vma_5fbuffer_5fdevice_5faddress_132',['VMA_BUFFER_DEVICE_ADDRESS',['../vk__mem__alloc_8h.html#a7f9d5e71b70dd1a137c303a8a8262c10',1,'vk_mem_alloc.h']]], - ['vma_5fdedicated_5fallocation_133',['VMA_DEDICATED_ALLOCATION',['../vk__mem__alloc_8h.html#af7b860e63b96d11e44ae8587ba06bbf4',1,'vk_mem_alloc.h']]], - ['vma_5fdefragmentation_5fflag_5fbits_5fmax_5fenum_134',['VMA_DEFRAGMENTATION_FLAG_BITS_MAX_ENUM',['../vk__mem__alloc_8h.html#a6552a65b71d16f378c6994b3ceaef50cab87ec33154803bfeb5ac2b379f1d6a97',1,'vk_mem_alloc.h']]], - ['vma_5fdefragmentation_5fflag_5fincremental_135',['VMA_DEFRAGMENTATION_FLAG_INCREMENTAL',['../vk__mem__alloc_8h.html#a6552a65b71d16f378c6994b3ceaef50ca31af49446af2459284a568ce2f3fdd33',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fbudget_136',['VMA_MEMORY_BUDGET',['../vk__mem__alloc_8h.html#a05decf1cf4ebf767beba7acca6c1ec3a',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fpriority_137',['VMA_MEMORY_PRIORITY',['../vk__mem__alloc_8h.html#a81af8a3a87e34bbb493848143cde43e4',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fcpu_5fcopy_138',['VMA_MEMORY_USAGE_CPU_COPY',['../vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca416a444d4d0fc20067c3f76f32ff2500',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fcpu_5fonly_139',['VMA_MEMORY_USAGE_CPU_ONLY',['../vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca40bdf4cddeffeb12f43d45ca1286e0a5',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fcpu_5fto_5fgpu_140',['VMA_MEMORY_USAGE_CPU_TO_GPU',['../vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca9066b52c5a7079bb74a69aaf8b92ff67',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fgpu_5flazily_5fallocated_141',['VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED',['../vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca835333d9072db63a653818030e17614d',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fgpu_5fonly_142',['VMA_MEMORY_USAGE_GPU_ONLY',['../vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fgpu_5fto_5fcpu_143',['VMA_MEMORY_USAGE_GPU_TO_CPU',['../vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca7b586d2fdaf82a463b58f581ed72be27',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fmax_5fenum_144',['VMA_MEMORY_USAGE_MAX_ENUM',['../vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca091e69437ef693e8d0d287f1c719ba6e',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5funknown_145',['VMA_MEMORY_USAGE_UNKNOWN',['../vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccaf50d27e34e0925cf3a63db8c839121dd',1,'vk_mem_alloc.h']]], - ['vma_5fpool_5fcreate_5falgorithm_5fmask_146',['VMA_POOL_CREATE_ALGORITHM_MASK',['../vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7af4d270f8f42517a0f70037ceb6ac1d9c',1,'vk_mem_alloc.h']]], - ['vma_5fpool_5fcreate_5fbuddy_5falgorithm_5fbit_147',['VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT',['../vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a97a0dc38e5161b780594d998d313d35e',1,'vk_mem_alloc.h']]], - ['vma_5fpool_5fcreate_5fflag_5fbits_5fmax_5fenum_148',['VMA_POOL_CREATE_FLAG_BITS_MAX_ENUM',['../vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a1c7312bea9ea246846b9054fd6bd6aec',1,'vk_mem_alloc.h']]], - ['vma_5fpool_5fcreate_5fignore_5fbuffer_5fimage_5fgranularity_5fbit_149',['VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT',['../vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a9f1a499508a8edb4e8ba40aa0290a3d2',1,'vk_mem_alloc.h']]], - ['vma_5fpool_5fcreate_5flinear_5falgorithm_5fbit_150',['VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT',['../vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a13c8a444197c67866be9cb05599fc726',1,'vk_mem_alloc.h']]], - ['vma_5frecord_5fflag_5fbits_5fmax_5fenum_151',['VMA_RECORD_FLAG_BITS_MAX_ENUM',['../vk__mem__alloc_8h.html#a4dd2c44642312a147a4e93373a6e64d2a20dd17d69966dbffa054739d6090b85e',1,'vk_mem_alloc.h']]], - ['vma_5frecord_5fflush_5fafter_5fcall_5fbit_152',['VMA_RECORD_FLUSH_AFTER_CALL_BIT',['../vk__mem__alloc_8h.html#a4dd2c44642312a147a4e93373a6e64d2a8e7ab322e8732654be627c4ea8f36cc7',1,'vk_mem_alloc.h']]], - ['vma_5frecording_5fenabled_153',['VMA_RECORDING_ENABLED',['../vk__mem__alloc_8h.html#a1f0c126759fc96ccb6e2d23c101d770c',1,'vk_mem_alloc.h']]], - ['vma_5fstats_5fstring_5fenabled_154',['VMA_STATS_STRING_ENABLED',['../vk__mem__alloc_8h.html#ae25f0d55fd91cb166f002b63244800e1',1,'vk_mem_alloc.h']]], - ['vma_5fvulkan_5fversion_155',['VMA_VULKAN_VERSION',['../vk__mem__alloc_8h.html#a1a2407c283893638cc039bb31fcd74b6',1,'vk_mem_alloc.h']]], - ['vmaallocatememory_156',['vmaAllocateMemory',['../vk__mem__alloc_8h.html#abf28077dbf82d0908b8acbe8ee8dd9b8',1,'vk_mem_alloc.h']]], - ['vmaallocatememoryforbuffer_157',['vmaAllocateMemoryForBuffer',['../vk__mem__alloc_8h.html#a7fdf64415b6c3d83c454f28d2c53df7b',1,'vk_mem_alloc.h']]], - ['vmaallocatememoryforimage_158',['vmaAllocateMemoryForImage',['../vk__mem__alloc_8h.html#a0faa3f9e5fb233d29d1e00390650febb',1,'vk_mem_alloc.h']]], - ['vmaallocatememorypages_159',['vmaAllocateMemoryPages',['../vk__mem__alloc_8h.html#ad37e82e492b3de38fc3f4cffd9ad0ae1',1,'vk_mem_alloc.h']]], - ['vmaallocation_160',['VmaAllocation',['../struct_vma_allocation.html',1,'']]], - ['vmaallocationcreateflagbits_161',['VmaAllocationCreateFlagBits',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597',1,'VmaAllocationCreateFlagBits(): vk_mem_alloc.h'],['../vk__mem__alloc_8h.html#a4fceecc301f4064dc808d3cd6c038941',1,'VmaAllocationCreateFlagBits(): vk_mem_alloc.h']]], - ['vmaallocationcreateflags_162',['VmaAllocationCreateFlags',['../vk__mem__alloc_8h.html#a5225e5e11f8376f6a31a1791f3d6e817',1,'vk_mem_alloc.h']]], - ['vmaallocationcreateinfo_163',['VmaAllocationCreateInfo',['../struct_vma_allocation_create_info.html',1,'VmaAllocationCreateInfo'],['../vk__mem__alloc_8h.html#a3bf110892ea2fb4649fedb68488d026a',1,'VmaAllocationCreateInfo(): vk_mem_alloc.h']]], - ['vmaallocationinfo_164',['VmaAllocationInfo',['../struct_vma_allocation_info.html',1,'VmaAllocationInfo'],['../vk__mem__alloc_8h.html#a1cf7774606721026a68aabe3af2e5b50',1,'VmaAllocationInfo(): vk_mem_alloc.h']]], - ['vmaallocator_165',['VmaAllocator',['../struct_vma_allocator.html',1,'']]], - ['vmaallocatorcreateflagbits_166',['VmaAllocatorCreateFlagBits',['../vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7c',1,'VmaAllocatorCreateFlagBits(): vk_mem_alloc.h'],['../vk__mem__alloc_8h.html#afd73b95e737ee7e76f827cb5472f559f',1,'VmaAllocatorCreateFlagBits(): vk_mem_alloc.h']]], - ['vmaallocatorcreateflags_167',['VmaAllocatorCreateFlags',['../vk__mem__alloc_8h.html#acfe6863e160722c2c1bbcf7573fddc4d',1,'vk_mem_alloc.h']]], - ['vmaallocatorcreateinfo_168',['VmaAllocatorCreateInfo',['../struct_vma_allocator_create_info.html',1,'VmaAllocatorCreateInfo'],['../vk__mem__alloc_8h.html#aad9652301d33759b83e52d4f3605a14a',1,'VmaAllocatorCreateInfo(): vk_mem_alloc.h']]], - ['vmaallocatorinfo_169',['VmaAllocatorInfo',['../struct_vma_allocator_info.html',1,'VmaAllocatorInfo'],['../vk__mem__alloc_8h.html#a1988031b0223fdbd564250fa1edd942c',1,'VmaAllocatorInfo(): vk_mem_alloc.h']]], - ['vmabegindefragmentationpass_170',['vmaBeginDefragmentationPass',['../vk__mem__alloc_8h.html#ac0f01545b6262f7d4d128fc8f8e5c77b',1,'vk_mem_alloc.h']]], - ['vmabindbuffermemory_171',['vmaBindBufferMemory',['../vk__mem__alloc_8h.html#a6b0929b914b60cf2d45cac4bf3547470',1,'vk_mem_alloc.h']]], - ['vmabindbuffermemory2_172',['vmaBindBufferMemory2',['../vk__mem__alloc_8h.html#a927c944f45e0f2941182abb6f608e64a',1,'vk_mem_alloc.h']]], - ['vmabindimagememory_173',['vmaBindImageMemory',['../vk__mem__alloc_8h.html#a3d3ca45799923aa5d138e9e5f9eb2da5',1,'vk_mem_alloc.h']]], - ['vmabindimagememory2_174',['vmaBindImageMemory2',['../vk__mem__alloc_8h.html#aa8251ee81b0045a443e35b8e8aa021bc',1,'vk_mem_alloc.h']]], - ['vmabudget_175',['VmaBudget',['../struct_vma_budget.html',1,'VmaBudget'],['../vk__mem__alloc_8h.html#aa078667e71b1ef24e87a6a30d128381d',1,'VmaBudget(): vk_mem_alloc.h']]], - ['vmabuildstatsstring_176',['vmaBuildStatsString',['../vk__mem__alloc_8h.html#aa4fee7eb5253377599ef4fd38c93c2a0',1,'vk_mem_alloc.h']]], - ['vmacalculatestats_177',['vmaCalculateStats',['../vk__mem__alloc_8h.html#a333b61c1788cb23559177531e6a93ca3',1,'vk_mem_alloc.h']]], - ['vmacheckcorruption_178',['vmaCheckCorruption',['../vk__mem__alloc_8h.html#a49329a7f030dafcf82f7b73334c22e98',1,'vk_mem_alloc.h']]], - ['vmacheckpoolcorruption_179',['vmaCheckPoolCorruption',['../vk__mem__alloc_8h.html#ad535935619c7a549bf837e1bb0068f89',1,'vk_mem_alloc.h']]], - ['vmacreateallocator_180',['vmaCreateAllocator',['../vk__mem__alloc_8h.html#a200692051ddb34240248234f5f4c17bb',1,'vk_mem_alloc.h']]], - ['vmacreatebuffer_181',['vmaCreateBuffer',['../vk__mem__alloc_8h.html#ac72ee55598617e8eecca384e746bab51',1,'vk_mem_alloc.h']]], - ['vmacreateimage_182',['vmaCreateImage',['../vk__mem__alloc_8h.html#a02a94f25679275851a53e82eacbcfc73',1,'vk_mem_alloc.h']]], - ['vmacreatelostallocation_183',['vmaCreateLostAllocation',['../vk__mem__alloc_8h.html#ae5c9657d9e94756269145b01c05d16f1',1,'vk_mem_alloc.h']]], - ['vmacreatepool_184',['vmaCreatePool',['../vk__mem__alloc_8h.html#a5c8770ded7c59c8caac6de0c2cb00b50',1,'vk_mem_alloc.h']]], - ['vmadefragment_185',['vmaDefragment',['../vk__mem__alloc_8h.html#a9f0f8f56db5f7f57fe4454f465142dac',1,'vk_mem_alloc.h']]], - ['vmadefragmentationbegin_186',['vmaDefragmentationBegin',['../vk__mem__alloc_8h.html#a36ba776fd7fd5cb1e9359fdc0d8e6e8a',1,'vk_mem_alloc.h']]], - ['vmadefragmentationcontext_187',['VmaDefragmentationContext',['../struct_vma_defragmentation_context.html',1,'']]], - ['vmadefragmentationend_188',['vmaDefragmentationEnd',['../vk__mem__alloc_8h.html#a8774e20e91e245aae959ba63efa15dd2',1,'vk_mem_alloc.h']]], - ['vmadefragmentationflagbits_189',['VmaDefragmentationFlagBits',['../vk__mem__alloc_8h.html#a6552a65b71d16f378c6994b3ceaef50c',1,'VmaDefragmentationFlagBits(): vk_mem_alloc.h'],['../vk__mem__alloc_8h.html#a13415cc0b443353a7b5abda300b833fc',1,'VmaDefragmentationFlagBits(): vk_mem_alloc.h']]], - ['vmadefragmentationflags_190',['VmaDefragmentationFlags',['../vk__mem__alloc_8h.html#a88a77cef37e5d3c4fc9eb328885d048d',1,'vk_mem_alloc.h']]], - ['vmadefragmentationinfo_191',['VmaDefragmentationInfo',['../struct_vma_defragmentation_info.html',1,'VmaDefragmentationInfo'],['../vk__mem__alloc_8h.html#a2bf47f96bf92bed2a49461bd9af3acfa',1,'VmaDefragmentationInfo(): vk_mem_alloc.h']]], - ['vmadefragmentationinfo2_192',['VmaDefragmentationInfo2',['../struct_vma_defragmentation_info2.html',1,'VmaDefragmentationInfo2'],['../vk__mem__alloc_8h.html#ad6daeffaa670ce6d11a203a6224c9937',1,'VmaDefragmentationInfo2(): vk_mem_alloc.h']]], - ['vmadefragmentationpassinfo_193',['VmaDefragmentationPassInfo',['../struct_vma_defragmentation_pass_info.html',1,'VmaDefragmentationPassInfo'],['../vk__mem__alloc_8h.html#a72aebd522242d56abea67b4f47f6549e',1,'VmaDefragmentationPassInfo(): vk_mem_alloc.h']]], - ['vmadefragmentationpassmoveinfo_194',['VmaDefragmentationPassMoveInfo',['../struct_vma_defragmentation_pass_move_info.html',1,'VmaDefragmentationPassMoveInfo'],['../vk__mem__alloc_8h.html#ad6799e8e2b1527abfc84d33bc44aeaf5',1,'VmaDefragmentationPassMoveInfo(): vk_mem_alloc.h']]], - ['vmadefragmentationstats_195',['VmaDefragmentationStats',['../struct_vma_defragmentation_stats.html',1,'VmaDefragmentationStats'],['../vk__mem__alloc_8h.html#ad94034192259c2e34a4d1c5e27810403',1,'VmaDefragmentationStats(): vk_mem_alloc.h']]], - ['vmadestroyallocator_196',['vmaDestroyAllocator',['../vk__mem__alloc_8h.html#aa8d164061c88f22fb1fd3c8f3534bc1d',1,'vk_mem_alloc.h']]], - ['vmadestroybuffer_197',['vmaDestroyBuffer',['../vk__mem__alloc_8h.html#a0d9f4e4ba5bf9aab1f1c746387753d77',1,'vk_mem_alloc.h']]], - ['vmadestroyimage_198',['vmaDestroyImage',['../vk__mem__alloc_8h.html#ae50d2cb3b4a3bfd4dd40987234e50e7e',1,'vk_mem_alloc.h']]], - ['vmadestroypool_199',['vmaDestroyPool',['../vk__mem__alloc_8h.html#a5485779c8f1948238fc4e92232fa65e1',1,'vk_mem_alloc.h']]], - ['vmadevicememorycallbacks_200',['VmaDeviceMemoryCallbacks',['../struct_vma_device_memory_callbacks.html',1,'VmaDeviceMemoryCallbacks'],['../vk__mem__alloc_8h.html#a77692d3c8770ea8882d573206bd27b2b',1,'VmaDeviceMemoryCallbacks(): vk_mem_alloc.h']]], - ['vmaenddefragmentationpass_201',['vmaEndDefragmentationPass',['../vk__mem__alloc_8h.html#a1b9ffa538bed905af55c747cc48963bd',1,'vk_mem_alloc.h']]], - ['vmafindmemorytypeindex_202',['vmaFindMemoryTypeIndex',['../vk__mem__alloc_8h.html#aef15a94b58fbcb0fe706d5720e84a74a',1,'vk_mem_alloc.h']]], - ['vmafindmemorytypeindexforbufferinfo_203',['vmaFindMemoryTypeIndexForBufferInfo',['../vk__mem__alloc_8h.html#ae790ab9ffaf7667fb8f62523e6897888',1,'vk_mem_alloc.h']]], - ['vmafindmemorytypeindexforimageinfo_204',['vmaFindMemoryTypeIndexForImageInfo',['../vk__mem__alloc_8h.html#a088da83d8eaf3ce9056d9ea0b981d472',1,'vk_mem_alloc.h']]], - ['vmaflushallocation_205',['vmaFlushAllocation',['../vk__mem__alloc_8h.html#a30c37c1eec6025f397be41644f48490f',1,'vk_mem_alloc.h']]], - ['vmaflushallocations_206',['vmaFlushAllocations',['../vk__mem__alloc_8h.html#ac3dd00da721875ed99fa8a881922bdfc',1,'vk_mem_alloc.h']]], - ['vmafreememory_207',['vmaFreeMemory',['../vk__mem__alloc_8h.html#a5fea5518972ae9094b1526cbcb19b05f',1,'vk_mem_alloc.h']]], - ['vmafreememorypages_208',['vmaFreeMemoryPages',['../vk__mem__alloc_8h.html#a834b1e4aef395c0a1d56a28e69a4a17e',1,'vk_mem_alloc.h']]], - ['vmafreestatsstring_209',['vmaFreeStatsString',['../vk__mem__alloc_8h.html#a3104eb30d8122c84dd8541063f145288',1,'vk_mem_alloc.h']]], - ['vmagetallocationinfo_210',['vmaGetAllocationInfo',['../vk__mem__alloc_8h.html#a86dd08aba8633bfa4ad0df2e76481d8b',1,'vk_mem_alloc.h']]], - ['vmagetallocatorinfo_211',['vmaGetAllocatorInfo',['../vk__mem__alloc_8h.html#afa02231a791b37255720d566a52683e7',1,'vk_mem_alloc.h']]], - ['vmagetbudget_212',['vmaGetBudget',['../vk__mem__alloc_8h.html#aec0ed24ebea2d0099eed5f801daaefba',1,'vk_mem_alloc.h']]], - ['vmagetmemoryproperties_213',['vmaGetMemoryProperties',['../vk__mem__alloc_8h.html#ab88db292a17974f911182543fda52d19',1,'vk_mem_alloc.h']]], - ['vmagetmemorytypeproperties_214',['vmaGetMemoryTypeProperties',['../vk__mem__alloc_8h.html#a8701444752eb5de4464adb5a2b514bca',1,'vk_mem_alloc.h']]], - ['vmagetphysicaldeviceproperties_215',['vmaGetPhysicalDeviceProperties',['../vk__mem__alloc_8h.html#aecabf7b6e91ea87d0316fa0a9e014fe0',1,'vk_mem_alloc.h']]], - ['vmagetpoolname_216',['vmaGetPoolName',['../vk__mem__alloc_8h.html#af09b4e4eafdbee812e8d73ddf960f030',1,'vk_mem_alloc.h']]], - ['vmagetpoolstats_217',['vmaGetPoolStats',['../vk__mem__alloc_8h.html#ae8bf76997b234ef68aad922616df4153',1,'vk_mem_alloc.h']]], - ['vmainvalidateallocation_218',['vmaInvalidateAllocation',['../vk__mem__alloc_8h.html#aaa8412919139ef413a4215ac6a290fae',1,'vk_mem_alloc.h']]], - ['vmainvalidateallocations_219',['vmaInvalidateAllocations',['../vk__mem__alloc_8h.html#ab25b558d75f7378ec944a1522fdcc3c5',1,'vk_mem_alloc.h']]], - ['vmamakepoolallocationslost_220',['vmaMakePoolAllocationsLost',['../vk__mem__alloc_8h.html#a736bd6cbda886f36c891727e73bd4024',1,'vk_mem_alloc.h']]], - ['vmamapmemory_221',['vmaMapMemory',['../vk__mem__alloc_8h.html#ad5bd1243512d099706de88168992f069',1,'vk_mem_alloc.h']]], - ['vmamemoryusage_222',['VmaMemoryUsage',['../vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cc',1,'VmaMemoryUsage(): vk_mem_alloc.h'],['../vk__mem__alloc_8h.html#a806e8499dde802e59eb72a1dc811c35f',1,'VmaMemoryUsage(): vk_mem_alloc.h']]], - ['vmapool_223',['VmaPool',['../struct_vma_pool.html',1,'']]], - ['vmapoolcreateflagbits_224',['VmaPoolCreateFlagBits',['../vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7',1,'VmaPoolCreateFlagBits(): vk_mem_alloc.h'],['../vk__mem__alloc_8h.html#a4d4f2efc2509157a9e4ecd4fd7942303',1,'VmaPoolCreateFlagBits(): vk_mem_alloc.h']]], - ['vmapoolcreateflags_225',['VmaPoolCreateFlags',['../vk__mem__alloc_8h.html#a2770e325ea42e087c1b91fdf46d0292a',1,'vk_mem_alloc.h']]], - ['vmapoolcreateinfo_226',['VmaPoolCreateInfo',['../struct_vma_pool_create_info.html',1,'VmaPoolCreateInfo'],['../vk__mem__alloc_8h.html#a1017aa83489c0eee8d2163d2bf253f67',1,'VmaPoolCreateInfo(): vk_mem_alloc.h']]], - ['vmapoolstats_227',['VmaPoolStats',['../struct_vma_pool_stats.html',1,'VmaPoolStats'],['../vk__mem__alloc_8h.html#a4759a2d9f99c19ba7627553c847132f1',1,'VmaPoolStats(): vk_mem_alloc.h']]], - ['vmarecordflagbits_228',['VmaRecordFlagBits',['../vk__mem__alloc_8h.html#a4dd2c44642312a147a4e93373a6e64d2',1,'VmaRecordFlagBits(): vk_mem_alloc.h'],['../vk__mem__alloc_8h.html#acd24d5eb58abff7e1f43cb32a1ba1413',1,'VmaRecordFlagBits(): vk_mem_alloc.h']]], - ['vmarecordflags_229',['VmaRecordFlags',['../vk__mem__alloc_8h.html#af3929a1a4547c592fc0b0e55ef452828',1,'vk_mem_alloc.h']]], - ['vmarecordsettings_230',['VmaRecordSettings',['../struct_vma_record_settings.html',1,'VmaRecordSettings'],['../vk__mem__alloc_8h.html#a16e21c877101493fce582664cd8754fc',1,'VmaRecordSettings(): vk_mem_alloc.h']]], - ['vmaresizeallocation_231',['vmaResizeAllocation',['../vk__mem__alloc_8h.html#a0ff488958ca72b28e545880463cb8696',1,'vk_mem_alloc.h']]], - ['vmasetallocationuserdata_232',['vmaSetAllocationUserData',['../vk__mem__alloc_8h.html#af9147d31ffc11d62fc187bde283ed14f',1,'vk_mem_alloc.h']]], - ['vmasetcurrentframeindex_233',['vmaSetCurrentFrameIndex',['../vk__mem__alloc_8h.html#ade56bf8dc9f5a5eaddf5f119ed525236',1,'vk_mem_alloc.h']]], - ['vmasetpoolname_234',['vmaSetPoolName',['../vk__mem__alloc_8h.html#adbae3a0b4ab078024462fc85c37f3b58',1,'vk_mem_alloc.h']]], - ['vmastatinfo_235',['VmaStatInfo',['../struct_vma_stat_info.html',1,'VmaStatInfo'],['../vk__mem__alloc_8h.html#aec5b57e29c97b5d69c6d5654d60df878',1,'VmaStatInfo(): vk_mem_alloc.h']]], - ['vmastats_236',['VmaStats',['../struct_vma_stats.html',1,'VmaStats'],['../vk__mem__alloc_8h.html#a21813b2efdf3836767a9058cd8a94034',1,'VmaStats(): vk_mem_alloc.h']]], - ['vmatouchallocation_237',['vmaTouchAllocation',['../vk__mem__alloc_8h.html#a43d8ba9673c846f049089a5029d5c73a',1,'vk_mem_alloc.h']]], - ['vmaunmapmemory_238',['vmaUnmapMemory',['../vk__mem__alloc_8h.html#a9bc268595cb33f6ec4d519cfce81ff45',1,'vk_mem_alloc.h']]], - ['vmavulkanfunctions_239',['VmaVulkanFunctions',['../struct_vma_vulkan_functions.html',1,'VmaVulkanFunctions'],['../vk__mem__alloc_8h.html#abb0a8e3b5040d847571cca6c7f9a8074',1,'VmaVulkanFunctions(): vk_mem_alloc.h']]], + ['vk_5famd_5fdevice_5fcoherent_5fmemory_85',['VK_AMD_device_coherent_memory',['../vk_amd_device_coherent_memory.html',1,'index']]], + ['vk_5fkhr_5fdedicated_5fallocation_86',['VK_KHR_dedicated_allocation',['../vk_khr_dedicated_allocation.html',1,'index']]], + ['vk_5fmem_5falloc_2eh_87',['vk_mem_alloc.h',['../vk__mem__alloc_8h.html',1,'']]], + ['vkallocatememory_88',['vkAllocateMemory',['../struct_vma_vulkan_functions.html#a2943bf99dfd784a0e8f599d987e22e6c',1,'VmaVulkanFunctions']]], + ['vkbindbuffermemory_89',['vkBindBufferMemory',['../struct_vma_vulkan_functions.html#a94fc4f3a605d9880bb3c0ba2c2fc80b2',1,'VmaVulkanFunctions']]], + ['vkbindimagememory_90',['vkBindImageMemory',['../struct_vma_vulkan_functions.html#a1338d96a128a5ade648b8d934907c637',1,'VmaVulkanFunctions']]], + ['vkcmdcopybuffer_91',['vkCmdCopyBuffer',['../struct_vma_vulkan_functions.html#ae5c0db8c89a3b82593dc16aa6a49fa3a',1,'VmaVulkanFunctions']]], + ['vkcreatebuffer_92',['vkCreateBuffer',['../struct_vma_vulkan_functions.html#ae8084315a25006271a2edfc3a447519f',1,'VmaVulkanFunctions']]], + ['vkcreateimage_93',['vkCreateImage',['../struct_vma_vulkan_functions.html#a23ebe70be515b9b5010a1d691200e325',1,'VmaVulkanFunctions']]], + ['vkdestroybuffer_94',['vkDestroyBuffer',['../struct_vma_vulkan_functions.html#a7e054606faddb07f0e8556f3ed317d45',1,'VmaVulkanFunctions']]], + ['vkdestroyimage_95',['vkDestroyImage',['../struct_vma_vulkan_functions.html#a90b898227039b1dcb3520f6e91f09ffa',1,'VmaVulkanFunctions']]], + ['vkflushmappedmemoryranges_96',['vkFlushMappedMemoryRanges',['../struct_vma_vulkan_functions.html#a33c322f4c4ad2810f8a9c97a277572f9',1,'VmaVulkanFunctions']]], + ['vkfreememory_97',['vkFreeMemory',['../struct_vma_vulkan_functions.html#a4c658701778564d62034255b5dda91b4',1,'VmaVulkanFunctions']]], + ['vkgetbuffermemoryrequirements_98',['vkGetBufferMemoryRequirements',['../struct_vma_vulkan_functions.html#a5b92901df89a4194b0d12f6071d4d143',1,'VmaVulkanFunctions']]], + ['vkgetimagememoryrequirements_99',['vkGetImageMemoryRequirements',['../struct_vma_vulkan_functions.html#a475f6f49f8debe4d10800592606d53f4',1,'VmaVulkanFunctions']]], + ['vkgetphysicaldevicememoryproperties_100',['vkGetPhysicalDeviceMemoryProperties',['../struct_vma_vulkan_functions.html#a60d25c33bba06bb8592e6875cbaa9830',1,'VmaVulkanFunctions']]], + ['vkgetphysicaldeviceproperties_101',['vkGetPhysicalDeviceProperties',['../struct_vma_vulkan_functions.html#a77b7a74082823e865dd6546623468f96',1,'VmaVulkanFunctions']]], + ['vkinvalidatemappedmemoryranges_102',['vkInvalidateMappedMemoryRanges',['../struct_vma_vulkan_functions.html#a5c1093bc32386a8060c37c9f282078a1',1,'VmaVulkanFunctions']]], + ['vkmapmemory_103',['vkMapMemory',['../struct_vma_vulkan_functions.html#ab5c1f38dea3a2cf00dc9eb4f57218c49',1,'VmaVulkanFunctions']]], + ['vkunmapmemory_104',['vkUnmapMemory',['../struct_vma_vulkan_functions.html#acc798589736f0becb317fc2196c1d8b9',1,'VmaVulkanFunctions']]], + ['vma_5fallocation_5fcreate_5fcan_5fbecome_5flost_5fbit_105',['VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a5f436af6c8fe8540573a6d22627a6fd2',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fcan_5fmake_5fother_5flost_5fbit_106',['VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a68686d0ce9beb0d4d1b9f2b8b1389a7e',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fdedicated_5fmemory_5fbit_107',['VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a3fc311d855c2ff53f1090ef5c722b38f',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fdont_5fbind_5fbit_108',['VMA_ALLOCATION_CREATE_DONT_BIND_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a2310568c62208af432724305fe29ccea',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fflag_5fbits_5fmax_5fenum_109',['VMA_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ae5633ec569f4899cf8f29e7385b2f882',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fmapped_5fbit_110',['VMA_ALLOCATION_CREATE_MAPPED_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a11da372cc3a82931c5e5d6146cd9dd1f',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fnever_5fallocate_5fbit_111',['VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a89759603401014eb325eb22a3839f2ff',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fstrategy_5fbest_5ffit_5fbit_112',['VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a839826775c62319466441f86496f036d',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fstrategy_5ffirst_5ffit_5fbit_113',['VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a33eb2052674f3ad92386c714a65fb777',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fstrategy_5fmask_114',['VMA_ALLOCATION_CREATE_STRATEGY_MASK',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a8e16845d81ae3d27c47106d4770d5c7e',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fstrategy_5fmin_5ffragmentation_5fbit_115',['VMA_ALLOCATION_CREATE_STRATEGY_MIN_FRAGMENTATION_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a621b704103eb3360230c860acf36e706',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fstrategy_5fmin_5fmemory_5fbit_116',['VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a8af1210cf591784afa026d94998f735d',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fstrategy_5fmin_5ftime_5fbit_117',['VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a0729e932b7ea170e3a128cad96c5cf6d',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fstrategy_5fworst_5ffit_5fbit_118',['VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ad242a04f802e25fef0b880afe8bb0a62',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fupper_5faddress_5fbit_119',['VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a42ba3a2d2c7117953210b7c3ef8da0df',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fuser_5fdata_5fcopy_5fstring_5fbit_120',['VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597aa6f24f821cd6a7c5e4a443f7bf59c520',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fwithin_5fbudget_5fbit_121',['VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT',['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ab8b1764f3e9022368e440c057783b92d',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5famd_5fdevice_5fcoherent_5fmemory_5fbit_122',['VMA_ALLOCATOR_CREATE_AMD_DEVICE_COHERENT_MEMORY_BIT',['../vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca2acce4886d8078552efa38878413970f',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5fbuffer_5fdevice_5faddress_5fbit_123',['VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT',['../vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca5f1b28b0414319d1687e1f2b30ab0089',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5fext_5fmemory_5fbudget_5fbit_124',['VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT',['../vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca4d4687863f7bd4b418c6006dc04400b0',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5fext_5fmemory_5fpriority_5fbit_125',['VMA_ALLOCATOR_CREATE_EXT_MEMORY_PRIORITY_BIT',['../vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7caffdd7a5169be3dbd7cbf6b3619e4f78a',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5fexternally_5fsynchronized_5fbit_126',['VMA_ALLOCATOR_CREATE_EXTERNALLY_SYNCHRONIZED_BIT',['../vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca4816ddaed324ba110172ca608a20f29d',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5fflag_5fbits_5fmax_5fenum_127',['VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM',['../vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7cae4d5ad929caba5f23eb502b13bd5286c',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5fkhr_5fbind_5fmemory2_5fbit_128',['VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT',['../vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca8fb75bf07cd184ab903596295e863dee',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5fkhr_5fdedicated_5fallocation_5fbit_129',['VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT',['../vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7cace7da7cc6e71a625dfa763c55a597878',1,'vk_mem_alloc.h']]], + ['vma_5fbind_5fmemory2_130',['VMA_BIND_MEMORY2',['../vk__mem__alloc_8h.html#a88bef97f86d70a34a4c0746e09a2680d',1,'vk_mem_alloc.h']]], + ['vma_5fbuffer_5fdevice_5faddress_131',['VMA_BUFFER_DEVICE_ADDRESS',['../vk__mem__alloc_8h.html#a7f9d5e71b70dd1a137c303a8a8262c10',1,'vk_mem_alloc.h']]], + ['vma_5fdedicated_5fallocation_132',['VMA_DEDICATED_ALLOCATION',['../vk__mem__alloc_8h.html#af7b860e63b96d11e44ae8587ba06bbf4',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5fbits_5fmax_5fenum_133',['VMA_DEFRAGMENTATION_FLAG_BITS_MAX_ENUM',['../vk__mem__alloc_8h.html#a6552a65b71d16f378c6994b3ceaef50cab87ec33154803bfeb5ac2b379f1d6a97',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5fincremental_134',['VMA_DEFRAGMENTATION_FLAG_INCREMENTAL',['../vk__mem__alloc_8h.html#a6552a65b71d16f378c6994b3ceaef50ca31af49446af2459284a568ce2f3fdd33',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fbudget_135',['VMA_MEMORY_BUDGET',['../vk__mem__alloc_8h.html#a05decf1cf4ebf767beba7acca6c1ec3a',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fpriority_136',['VMA_MEMORY_PRIORITY',['../vk__mem__alloc_8h.html#a81af8a3a87e34bbb493848143cde43e4',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fcpu_5fcopy_137',['VMA_MEMORY_USAGE_CPU_COPY',['../vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca416a444d4d0fc20067c3f76f32ff2500',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fcpu_5fonly_138',['VMA_MEMORY_USAGE_CPU_ONLY',['../vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca40bdf4cddeffeb12f43d45ca1286e0a5',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fcpu_5fto_5fgpu_139',['VMA_MEMORY_USAGE_CPU_TO_GPU',['../vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca9066b52c5a7079bb74a69aaf8b92ff67',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fgpu_5flazily_5fallocated_140',['VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED',['../vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca835333d9072db63a653818030e17614d',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fgpu_5fonly_141',['VMA_MEMORY_USAGE_GPU_ONLY',['../vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fgpu_5fto_5fcpu_142',['VMA_MEMORY_USAGE_GPU_TO_CPU',['../vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca7b586d2fdaf82a463b58f581ed72be27',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fmax_5fenum_143',['VMA_MEMORY_USAGE_MAX_ENUM',['../vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca091e69437ef693e8d0d287f1c719ba6e',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5funknown_144',['VMA_MEMORY_USAGE_UNKNOWN',['../vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccaf50d27e34e0925cf3a63db8c839121dd',1,'vk_mem_alloc.h']]], + ['vma_5fpool_5fcreate_5falgorithm_5fmask_145',['VMA_POOL_CREATE_ALGORITHM_MASK',['../vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7af4d270f8f42517a0f70037ceb6ac1d9c',1,'vk_mem_alloc.h']]], + ['vma_5fpool_5fcreate_5fbuddy_5falgorithm_5fbit_146',['VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT',['../vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a97a0dc38e5161b780594d998d313d35e',1,'vk_mem_alloc.h']]], + ['vma_5fpool_5fcreate_5fflag_5fbits_5fmax_5fenum_147',['VMA_POOL_CREATE_FLAG_BITS_MAX_ENUM',['../vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a1c7312bea9ea246846b9054fd6bd6aec',1,'vk_mem_alloc.h']]], + ['vma_5fpool_5fcreate_5fignore_5fbuffer_5fimage_5fgranularity_5fbit_148',['VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT',['../vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a9f1a499508a8edb4e8ba40aa0290a3d2',1,'vk_mem_alloc.h']]], + ['vma_5fpool_5fcreate_5flinear_5falgorithm_5fbit_149',['VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT',['../vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a13c8a444197c67866be9cb05599fc726',1,'vk_mem_alloc.h']]], + ['vma_5frecord_5fflag_5fbits_5fmax_5fenum_150',['VMA_RECORD_FLAG_BITS_MAX_ENUM',['../vk__mem__alloc_8h.html#a4dd2c44642312a147a4e93373a6e64d2a20dd17d69966dbffa054739d6090b85e',1,'vk_mem_alloc.h']]], + ['vma_5frecord_5fflush_5fafter_5fcall_5fbit_151',['VMA_RECORD_FLUSH_AFTER_CALL_BIT',['../vk__mem__alloc_8h.html#a4dd2c44642312a147a4e93373a6e64d2a8e7ab322e8732654be627c4ea8f36cc7',1,'vk_mem_alloc.h']]], + ['vma_5frecording_5fenabled_152',['VMA_RECORDING_ENABLED',['../vk__mem__alloc_8h.html#a1f0c126759fc96ccb6e2d23c101d770c',1,'vk_mem_alloc.h']]], + ['vma_5fstats_5fstring_5fenabled_153',['VMA_STATS_STRING_ENABLED',['../vk__mem__alloc_8h.html#ae25f0d55fd91cb166f002b63244800e1',1,'vk_mem_alloc.h']]], + ['vma_5fvulkan_5fversion_154',['VMA_VULKAN_VERSION',['../vk__mem__alloc_8h.html#a1a2407c283893638cc039bb31fcd74b6',1,'vk_mem_alloc.h']]], + ['vmaallocatememory_155',['vmaAllocateMemory',['../vk__mem__alloc_8h.html#abf28077dbf82d0908b8acbe8ee8dd9b8',1,'vk_mem_alloc.h']]], + ['vmaallocatememoryforbuffer_156',['vmaAllocateMemoryForBuffer',['../vk__mem__alloc_8h.html#a7fdf64415b6c3d83c454f28d2c53df7b',1,'vk_mem_alloc.h']]], + ['vmaallocatememoryforimage_157',['vmaAllocateMemoryForImage',['../vk__mem__alloc_8h.html#a0faa3f9e5fb233d29d1e00390650febb',1,'vk_mem_alloc.h']]], + ['vmaallocatememorypages_158',['vmaAllocateMemoryPages',['../vk__mem__alloc_8h.html#ad37e82e492b3de38fc3f4cffd9ad0ae1',1,'vk_mem_alloc.h']]], + ['vmaallocation_159',['VmaAllocation',['../struct_vma_allocation.html',1,'']]], + ['vmaallocationcreateflagbits_160',['VmaAllocationCreateFlagBits',['../vk__mem__alloc_8h.html#a4fceecc301f4064dc808d3cd6c038941',1,'VmaAllocationCreateFlagBits(): vk_mem_alloc.h'],['../vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597',1,'VmaAllocationCreateFlagBits(): vk_mem_alloc.h']]], + ['vmaallocationcreateflags_161',['VmaAllocationCreateFlags',['../vk__mem__alloc_8h.html#a5225e5e11f8376f6a31a1791f3d6e817',1,'vk_mem_alloc.h']]], + ['vmaallocationcreateinfo_162',['VmaAllocationCreateInfo',['../struct_vma_allocation_create_info.html',1,'VmaAllocationCreateInfo'],['../vk__mem__alloc_8h.html#a3bf110892ea2fb4649fedb68488d026a',1,'VmaAllocationCreateInfo(): vk_mem_alloc.h']]], + ['vmaallocationinfo_163',['VmaAllocationInfo',['../struct_vma_allocation_info.html',1,'VmaAllocationInfo'],['../vk__mem__alloc_8h.html#a1cf7774606721026a68aabe3af2e5b50',1,'VmaAllocationInfo(): vk_mem_alloc.h']]], + ['vmaallocator_164',['VmaAllocator',['../struct_vma_allocator.html',1,'']]], + ['vmaallocatorcreateflagbits_165',['VmaAllocatorCreateFlagBits',['../vk__mem__alloc_8h.html#afd73b95e737ee7e76f827cb5472f559f',1,'VmaAllocatorCreateFlagBits(): vk_mem_alloc.h'],['../vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7c',1,'VmaAllocatorCreateFlagBits(): vk_mem_alloc.h']]], + ['vmaallocatorcreateflags_166',['VmaAllocatorCreateFlags',['../vk__mem__alloc_8h.html#acfe6863e160722c2c1bbcf7573fddc4d',1,'vk_mem_alloc.h']]], + ['vmaallocatorcreateinfo_167',['VmaAllocatorCreateInfo',['../struct_vma_allocator_create_info.html',1,'VmaAllocatorCreateInfo'],['../vk__mem__alloc_8h.html#aad9652301d33759b83e52d4f3605a14a',1,'VmaAllocatorCreateInfo(): vk_mem_alloc.h']]], + ['vmaallocatorinfo_168',['VmaAllocatorInfo',['../struct_vma_allocator_info.html',1,'VmaAllocatorInfo'],['../vk__mem__alloc_8h.html#a1988031b0223fdbd564250fa1edd942c',1,'VmaAllocatorInfo(): vk_mem_alloc.h']]], + ['vmabegindefragmentationpass_169',['vmaBeginDefragmentationPass',['../vk__mem__alloc_8h.html#ac0f01545b6262f7d4d128fc8f8e5c77b',1,'vk_mem_alloc.h']]], + ['vmabindbuffermemory_170',['vmaBindBufferMemory',['../vk__mem__alloc_8h.html#a6b0929b914b60cf2d45cac4bf3547470',1,'vk_mem_alloc.h']]], + ['vmabindbuffermemory2_171',['vmaBindBufferMemory2',['../vk__mem__alloc_8h.html#a927c944f45e0f2941182abb6f608e64a',1,'vk_mem_alloc.h']]], + ['vmabindimagememory_172',['vmaBindImageMemory',['../vk__mem__alloc_8h.html#a3d3ca45799923aa5d138e9e5f9eb2da5',1,'vk_mem_alloc.h']]], + ['vmabindimagememory2_173',['vmaBindImageMemory2',['../vk__mem__alloc_8h.html#aa8251ee81b0045a443e35b8e8aa021bc',1,'vk_mem_alloc.h']]], + ['vmabudget_174',['VmaBudget',['../struct_vma_budget.html',1,'VmaBudget'],['../vk__mem__alloc_8h.html#aa078667e71b1ef24e87a6a30d128381d',1,'VmaBudget(): vk_mem_alloc.h']]], + ['vmabuildstatsstring_175',['vmaBuildStatsString',['../vk__mem__alloc_8h.html#aa4fee7eb5253377599ef4fd38c93c2a0',1,'vk_mem_alloc.h']]], + ['vmacalculatestats_176',['vmaCalculateStats',['../vk__mem__alloc_8h.html#a333b61c1788cb23559177531e6a93ca3',1,'vk_mem_alloc.h']]], + ['vmacheckcorruption_177',['vmaCheckCorruption',['../vk__mem__alloc_8h.html#a49329a7f030dafcf82f7b73334c22e98',1,'vk_mem_alloc.h']]], + ['vmacheckpoolcorruption_178',['vmaCheckPoolCorruption',['../vk__mem__alloc_8h.html#ad535935619c7a549bf837e1bb0068f89',1,'vk_mem_alloc.h']]], + ['vmacreateallocator_179',['vmaCreateAllocator',['../vk__mem__alloc_8h.html#a200692051ddb34240248234f5f4c17bb',1,'vk_mem_alloc.h']]], + ['vmacreatebuffer_180',['vmaCreateBuffer',['../vk__mem__alloc_8h.html#ac72ee55598617e8eecca384e746bab51',1,'vk_mem_alloc.h']]], + ['vmacreateimage_181',['vmaCreateImage',['../vk__mem__alloc_8h.html#a02a94f25679275851a53e82eacbcfc73',1,'vk_mem_alloc.h']]], + ['vmacreatelostallocation_182',['vmaCreateLostAllocation',['../vk__mem__alloc_8h.html#ae5c9657d9e94756269145b01c05d16f1',1,'vk_mem_alloc.h']]], + ['vmacreatepool_183',['vmaCreatePool',['../vk__mem__alloc_8h.html#a5c8770ded7c59c8caac6de0c2cb00b50',1,'vk_mem_alloc.h']]], + ['vmadefragment_184',['vmaDefragment',['../vk__mem__alloc_8h.html#a9f0f8f56db5f7f57fe4454f465142dac',1,'vk_mem_alloc.h']]], + ['vmadefragmentationbegin_185',['vmaDefragmentationBegin',['../vk__mem__alloc_8h.html#a36ba776fd7fd5cb1e9359fdc0d8e6e8a',1,'vk_mem_alloc.h']]], + ['vmadefragmentationcontext_186',['VmaDefragmentationContext',['../struct_vma_defragmentation_context.html',1,'']]], + ['vmadefragmentationend_187',['vmaDefragmentationEnd',['../vk__mem__alloc_8h.html#a8774e20e91e245aae959ba63efa15dd2',1,'vk_mem_alloc.h']]], + ['vmadefragmentationflagbits_188',['VmaDefragmentationFlagBits',['../vk__mem__alloc_8h.html#a6552a65b71d16f378c6994b3ceaef50c',1,'VmaDefragmentationFlagBits(): vk_mem_alloc.h'],['../vk__mem__alloc_8h.html#a13415cc0b443353a7b5abda300b833fc',1,'VmaDefragmentationFlagBits(): vk_mem_alloc.h']]], + ['vmadefragmentationflags_189',['VmaDefragmentationFlags',['../vk__mem__alloc_8h.html#a88a77cef37e5d3c4fc9eb328885d048d',1,'vk_mem_alloc.h']]], + ['vmadefragmentationinfo_190',['VmaDefragmentationInfo',['../struct_vma_defragmentation_info.html',1,'VmaDefragmentationInfo'],['../vk__mem__alloc_8h.html#a2bf47f96bf92bed2a49461bd9af3acfa',1,'VmaDefragmentationInfo(): vk_mem_alloc.h']]], + ['vmadefragmentationinfo2_191',['VmaDefragmentationInfo2',['../struct_vma_defragmentation_info2.html',1,'VmaDefragmentationInfo2'],['../vk__mem__alloc_8h.html#ad6daeffaa670ce6d11a203a6224c9937',1,'VmaDefragmentationInfo2(): vk_mem_alloc.h']]], + ['vmadefragmentationpassinfo_192',['VmaDefragmentationPassInfo',['../struct_vma_defragmentation_pass_info.html',1,'VmaDefragmentationPassInfo'],['../vk__mem__alloc_8h.html#a72aebd522242d56abea67b4f47f6549e',1,'VmaDefragmentationPassInfo(): vk_mem_alloc.h']]], + ['vmadefragmentationpassmoveinfo_193',['VmaDefragmentationPassMoveInfo',['../struct_vma_defragmentation_pass_move_info.html',1,'VmaDefragmentationPassMoveInfo'],['../vk__mem__alloc_8h.html#ad6799e8e2b1527abfc84d33bc44aeaf5',1,'VmaDefragmentationPassMoveInfo(): vk_mem_alloc.h']]], + ['vmadefragmentationstats_194',['VmaDefragmentationStats',['../struct_vma_defragmentation_stats.html',1,'VmaDefragmentationStats'],['../vk__mem__alloc_8h.html#ad94034192259c2e34a4d1c5e27810403',1,'VmaDefragmentationStats(): vk_mem_alloc.h']]], + ['vmadestroyallocator_195',['vmaDestroyAllocator',['../vk__mem__alloc_8h.html#aa8d164061c88f22fb1fd3c8f3534bc1d',1,'vk_mem_alloc.h']]], + ['vmadestroybuffer_196',['vmaDestroyBuffer',['../vk__mem__alloc_8h.html#a0d9f4e4ba5bf9aab1f1c746387753d77',1,'vk_mem_alloc.h']]], + ['vmadestroyimage_197',['vmaDestroyImage',['../vk__mem__alloc_8h.html#ae50d2cb3b4a3bfd4dd40987234e50e7e',1,'vk_mem_alloc.h']]], + ['vmadestroypool_198',['vmaDestroyPool',['../vk__mem__alloc_8h.html#a5485779c8f1948238fc4e92232fa65e1',1,'vk_mem_alloc.h']]], + ['vmadevicememorycallbacks_199',['VmaDeviceMemoryCallbacks',['../struct_vma_device_memory_callbacks.html',1,'VmaDeviceMemoryCallbacks'],['../vk__mem__alloc_8h.html#a77692d3c8770ea8882d573206bd27b2b',1,'VmaDeviceMemoryCallbacks(): vk_mem_alloc.h']]], + ['vmaenddefragmentationpass_200',['vmaEndDefragmentationPass',['../vk__mem__alloc_8h.html#a1b9ffa538bed905af55c747cc48963bd',1,'vk_mem_alloc.h']]], + ['vmafindmemorytypeindex_201',['vmaFindMemoryTypeIndex',['../vk__mem__alloc_8h.html#aef15a94b58fbcb0fe706d5720e84a74a',1,'vk_mem_alloc.h']]], + ['vmafindmemorytypeindexforbufferinfo_202',['vmaFindMemoryTypeIndexForBufferInfo',['../vk__mem__alloc_8h.html#ae790ab9ffaf7667fb8f62523e6897888',1,'vk_mem_alloc.h']]], + ['vmafindmemorytypeindexforimageinfo_203',['vmaFindMemoryTypeIndexForImageInfo',['../vk__mem__alloc_8h.html#a088da83d8eaf3ce9056d9ea0b981d472',1,'vk_mem_alloc.h']]], + ['vmaflushallocation_204',['vmaFlushAllocation',['../vk__mem__alloc_8h.html#a30c37c1eec6025f397be41644f48490f',1,'vk_mem_alloc.h']]], + ['vmaflushallocations_205',['vmaFlushAllocations',['../vk__mem__alloc_8h.html#ac3dd00da721875ed99fa8a881922bdfc',1,'vk_mem_alloc.h']]], + ['vmafreememory_206',['vmaFreeMemory',['../vk__mem__alloc_8h.html#a5fea5518972ae9094b1526cbcb19b05f',1,'vk_mem_alloc.h']]], + ['vmafreememorypages_207',['vmaFreeMemoryPages',['../vk__mem__alloc_8h.html#a834b1e4aef395c0a1d56a28e69a4a17e',1,'vk_mem_alloc.h']]], + ['vmafreestatsstring_208',['vmaFreeStatsString',['../vk__mem__alloc_8h.html#a3104eb30d8122c84dd8541063f145288',1,'vk_mem_alloc.h']]], + ['vmagetallocationinfo_209',['vmaGetAllocationInfo',['../vk__mem__alloc_8h.html#a86dd08aba8633bfa4ad0df2e76481d8b',1,'vk_mem_alloc.h']]], + ['vmagetallocatorinfo_210',['vmaGetAllocatorInfo',['../vk__mem__alloc_8h.html#afa02231a791b37255720d566a52683e7',1,'vk_mem_alloc.h']]], + ['vmagetbudget_211',['vmaGetBudget',['../vk__mem__alloc_8h.html#aec0ed24ebea2d0099eed5f801daaefba',1,'vk_mem_alloc.h']]], + ['vmagetmemoryproperties_212',['vmaGetMemoryProperties',['../vk__mem__alloc_8h.html#ab88db292a17974f911182543fda52d19',1,'vk_mem_alloc.h']]], + ['vmagetmemorytypeproperties_213',['vmaGetMemoryTypeProperties',['../vk__mem__alloc_8h.html#a8701444752eb5de4464adb5a2b514bca',1,'vk_mem_alloc.h']]], + ['vmagetphysicaldeviceproperties_214',['vmaGetPhysicalDeviceProperties',['../vk__mem__alloc_8h.html#aecabf7b6e91ea87d0316fa0a9e014fe0',1,'vk_mem_alloc.h']]], + ['vmagetpoolname_215',['vmaGetPoolName',['../vk__mem__alloc_8h.html#af09b4e4eafdbee812e8d73ddf960f030',1,'vk_mem_alloc.h']]], + ['vmagetpoolstats_216',['vmaGetPoolStats',['../vk__mem__alloc_8h.html#ae8bf76997b234ef68aad922616df4153',1,'vk_mem_alloc.h']]], + ['vmainvalidateallocation_217',['vmaInvalidateAllocation',['../vk__mem__alloc_8h.html#aaa8412919139ef413a4215ac6a290fae',1,'vk_mem_alloc.h']]], + ['vmainvalidateallocations_218',['vmaInvalidateAllocations',['../vk__mem__alloc_8h.html#ab25b558d75f7378ec944a1522fdcc3c5',1,'vk_mem_alloc.h']]], + ['vmamakepoolallocationslost_219',['vmaMakePoolAllocationsLost',['../vk__mem__alloc_8h.html#a736bd6cbda886f36c891727e73bd4024',1,'vk_mem_alloc.h']]], + ['vmamapmemory_220',['vmaMapMemory',['../vk__mem__alloc_8h.html#ad5bd1243512d099706de88168992f069',1,'vk_mem_alloc.h']]], + ['vmamemoryusage_221',['VmaMemoryUsage',['../vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cc',1,'VmaMemoryUsage(): vk_mem_alloc.h'],['../vk__mem__alloc_8h.html#a806e8499dde802e59eb72a1dc811c35f',1,'VmaMemoryUsage(): vk_mem_alloc.h']]], + ['vmapool_222',['VmaPool',['../struct_vma_pool.html',1,'']]], + ['vmapoolcreateflagbits_223',['VmaPoolCreateFlagBits',['../vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7',1,'VmaPoolCreateFlagBits(): vk_mem_alloc.h'],['../vk__mem__alloc_8h.html#a4d4f2efc2509157a9e4ecd4fd7942303',1,'VmaPoolCreateFlagBits(): vk_mem_alloc.h']]], + ['vmapoolcreateflags_224',['VmaPoolCreateFlags',['../vk__mem__alloc_8h.html#a2770e325ea42e087c1b91fdf46d0292a',1,'vk_mem_alloc.h']]], + ['vmapoolcreateinfo_225',['VmaPoolCreateInfo',['../struct_vma_pool_create_info.html',1,'VmaPoolCreateInfo'],['../vk__mem__alloc_8h.html#a1017aa83489c0eee8d2163d2bf253f67',1,'VmaPoolCreateInfo(): vk_mem_alloc.h']]], + ['vmapoolstats_226',['VmaPoolStats',['../struct_vma_pool_stats.html',1,'VmaPoolStats'],['../vk__mem__alloc_8h.html#a4759a2d9f99c19ba7627553c847132f1',1,'VmaPoolStats(): vk_mem_alloc.h']]], + ['vmarecordflagbits_227',['VmaRecordFlagBits',['../vk__mem__alloc_8h.html#a4dd2c44642312a147a4e93373a6e64d2',1,'VmaRecordFlagBits(): vk_mem_alloc.h'],['../vk__mem__alloc_8h.html#acd24d5eb58abff7e1f43cb32a1ba1413',1,'VmaRecordFlagBits(): vk_mem_alloc.h']]], + ['vmarecordflags_228',['VmaRecordFlags',['../vk__mem__alloc_8h.html#af3929a1a4547c592fc0b0e55ef452828',1,'vk_mem_alloc.h']]], + ['vmarecordsettings_229',['VmaRecordSettings',['../vk__mem__alloc_8h.html#a16e21c877101493fce582664cd8754fc',1,'VmaRecordSettings(): vk_mem_alloc.h'],['../struct_vma_record_settings.html',1,'VmaRecordSettings']]], + ['vmaresizeallocation_230',['vmaResizeAllocation',['../vk__mem__alloc_8h.html#a0ff488958ca72b28e545880463cb8696',1,'vk_mem_alloc.h']]], + ['vmasetallocationuserdata_231',['vmaSetAllocationUserData',['../vk__mem__alloc_8h.html#af9147d31ffc11d62fc187bde283ed14f',1,'vk_mem_alloc.h']]], + ['vmasetcurrentframeindex_232',['vmaSetCurrentFrameIndex',['../vk__mem__alloc_8h.html#ade56bf8dc9f5a5eaddf5f119ed525236',1,'vk_mem_alloc.h']]], + ['vmasetpoolname_233',['vmaSetPoolName',['../vk__mem__alloc_8h.html#adbae3a0b4ab078024462fc85c37f3b58',1,'vk_mem_alloc.h']]], + ['vmastatinfo_234',['VmaStatInfo',['../struct_vma_stat_info.html',1,'VmaStatInfo'],['../vk__mem__alloc_8h.html#aec5b57e29c97b5d69c6d5654d60df878',1,'VmaStatInfo(): vk_mem_alloc.h']]], + ['vmastats_235',['VmaStats',['../struct_vma_stats.html',1,'VmaStats'],['../vk__mem__alloc_8h.html#a21813b2efdf3836767a9058cd8a94034',1,'VmaStats(): vk_mem_alloc.h']]], + ['vmatouchallocation_236',['vmaTouchAllocation',['../vk__mem__alloc_8h.html#a43d8ba9673c846f049089a5029d5c73a',1,'vk_mem_alloc.h']]], + ['vmaunmapmemory_237',['vmaUnmapMemory',['../vk__mem__alloc_8h.html#a9bc268595cb33f6ec4d519cfce81ff45',1,'vk_mem_alloc.h']]], + ['vmavulkanfunctions_238',['VmaVulkanFunctions',['../struct_vma_vulkan_functions.html',1,'VmaVulkanFunctions'],['../vk__mem__alloc_8h.html#abb0a8e3b5040d847571cca6c7f9a8074',1,'VmaVulkanFunctions(): vk_mem_alloc.h']]], + ['vulkan_20memory_20allocator_239',['Vulkan Memory Allocator',['../index.html',1,'']]], ['vulkanapiversion_240',['vulkanApiVersion',['../struct_vma_allocator_create_info.html#ae0ffc55139b54520a6bb704b29ffc285',1,'VmaAllocatorCreateInfo']]] ]; diff --git a/docs/html/search/all_2.html b/docs/html/search/all_2.html index 1f81f664..02cfffc2 100644 --- a/docs/html/search/all_2.html +++ b/docs/html/search/all_2.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/all_3.html b/docs/html/search/all_3.html index 2e31ab91..39767b85 100644 --- a/docs/html/search/all_3.html +++ b/docs/html/search/all_3.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/all_4.html b/docs/html/search/all_4.html index 0540c163..fc40463c 100644 --- a/docs/html/search/all_4.html +++ b/docs/html/search/all_4.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/all_5.html b/docs/html/search/all_5.html index ebec30bf..9dd9344b 100644 --- a/docs/html/search/all_5.html +++ b/docs/html/search/all_5.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/all_6.html b/docs/html/search/all_6.html index 31cbd052..f1e516d7 100644 --- a/docs/html/search/all_6.html +++ b/docs/html/search/all_6.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/all_7.html b/docs/html/search/all_7.html index 18c555de..8ddbf6c8 100644 --- a/docs/html/search/all_7.html +++ b/docs/html/search/all_7.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/all_8.html b/docs/html/search/all_8.html index 0f9eb416..83c55ae2 100644 --- a/docs/html/search/all_8.html +++ b/docs/html/search/all_8.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/all_9.html b/docs/html/search/all_9.html index d27c0f7c..1e263c13 100644 --- a/docs/html/search/all_9.html +++ b/docs/html/search/all_9.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/all_a.html b/docs/html/search/all_a.html index 2c8b75b3..3a6cac10 100644 --- a/docs/html/search/all_a.html +++ b/docs/html/search/all_a.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/all_b.html b/docs/html/search/all_b.html index 9a220b12..130deb4e 100644 --- a/docs/html/search/all_b.html +++ b/docs/html/search/all_b.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/all_c.html b/docs/html/search/all_c.html index ec92b718..3dd5af06 100644 --- a/docs/html/search/all_c.html +++ b/docs/html/search/all_c.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/all_d.html b/docs/html/search/all_d.html index 606caba1..af7f2f0f 100644 --- a/docs/html/search/all_d.html +++ b/docs/html/search/all_d.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/all_d.js b/docs/html/search/all_d.js index 408aa9e2..1d3630a7 100644 --- a/docs/html/search/all_d.js +++ b/docs/html/search/all_d.js @@ -1,7 +1,7 @@ var searchData= [ - ['record_20and_20replay_69',['Record and replay',['../record_and_replay.html',1,'index']]], - ['requiredflags_70',['requiredFlags',['../struct_vma_allocation_create_info.html#a9166390303ff42d783305bc31c2b6b90',1,'VmaAllocationCreateInfo']]], - ['resource_20aliasing_20_28overlap_29_71',['Resource aliasing (overlap)',['../resource_aliasing.html',1,'index']]], - ['recommended_20usage_20patterns_72',['Recommended usage patterns',['../usage_patterns.html',1,'index']]] + ['recommended_20usage_20patterns_69',['Recommended usage patterns',['../usage_patterns.html',1,'index']]], + ['record_20and_20replay_70',['Record and replay',['../record_and_replay.html',1,'index']]], + ['requiredflags_71',['requiredFlags',['../struct_vma_allocation_create_info.html#a9166390303ff42d783305bc31c2b6b90',1,'VmaAllocationCreateInfo']]], + ['resource_20aliasing_20_28overlap_29_72',['Resource aliasing (overlap)',['../resource_aliasing.html',1,'index']]] ]; diff --git a/docs/html/search/all_e.html b/docs/html/search/all_e.html index 310da244..e25df423 100644 --- a/docs/html/search/all_e.html +++ b/docs/html/search/all_e.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/all_f.html b/docs/html/search/all_f.html index de78f811..b23da6ce 100644 --- a/docs/html/search/all_f.html +++ b/docs/html/search/all_f.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/classes_0.html b/docs/html/search/classes_0.html index 7e0afc84..af8159ee 100644 --- a/docs/html/search/classes_0.html +++ b/docs/html/search/classes_0.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/defines_0.html b/docs/html/search/defines_0.html index 0ede6c4b..15cc3de3 100644 --- a/docs/html/search/defines_0.html +++ b/docs/html/search/defines_0.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/enums_0.html b/docs/html/search/enums_0.html index 9035e6aa..141fff57 100644 --- a/docs/html/search/enums_0.html +++ b/docs/html/search/enums_0.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/enumvalues_0.html b/docs/html/search/enumvalues_0.html index c2cd472a..0d131d95 100644 --- a/docs/html/search/enumvalues_0.html +++ b/docs/html/search/enumvalues_0.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/files_0.html b/docs/html/search/files_0.html index 76b64f5b..9498842a 100644 --- a/docs/html/search/files_0.html +++ b/docs/html/search/files_0.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/functions_0.html b/docs/html/search/functions_0.html index f04535ae..eb4c5014 100644 --- a/docs/html/search/functions_0.html +++ b/docs/html/search/functions_0.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/nomatches.html b/docs/html/search/nomatches.html index 43773208..2b9360b6 100644 --- a/docs/html/search/nomatches.html +++ b/docs/html/search/nomatches.html @@ -1,5 +1,6 @@ - + + diff --git a/docs/html/search/pages_0.html b/docs/html/search/pages_0.html index a281c4b0..8517b48f 100644 --- a/docs/html/search/pages_0.html +++ b/docs/html/search/pages_0.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/pages_1.html b/docs/html/search/pages_1.html index 0e1cf6b9..a0fb6796 100644 --- a/docs/html/search/pages_1.html +++ b/docs/html/search/pages_1.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/pages_2.html b/docs/html/search/pages_2.html index e11214cb..084edfd0 100644 --- a/docs/html/search/pages_2.html +++ b/docs/html/search/pages_2.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/pages_3.html b/docs/html/search/pages_3.html index c509f119..c0b45b0f 100644 --- a/docs/html/search/pages_3.html +++ b/docs/html/search/pages_3.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/pages_4.html b/docs/html/search/pages_4.html index 7053756e..0f05c2e7 100644 --- a/docs/html/search/pages_4.html +++ b/docs/html/search/pages_4.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/pages_5.html b/docs/html/search/pages_5.html index 937d0df3..27e2b6c7 100644 --- a/docs/html/search/pages_5.html +++ b/docs/html/search/pages_5.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/pages_6.html b/docs/html/search/pages_6.html index d4a76451..39300b60 100644 --- a/docs/html/search/pages_6.html +++ b/docs/html/search/pages_6.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/pages_7.html b/docs/html/search/pages_7.html index 3a4c9754..c005fe51 100644 --- a/docs/html/search/pages_7.html +++ b/docs/html/search/pages_7.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/pages_8.html b/docs/html/search/pages_8.html index 1e5b01ae..c942aa20 100644 --- a/docs/html/search/pages_8.html +++ b/docs/html/search/pages_8.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/pages_8.js b/docs/html/search/pages_8.js index 6623f883..a1962ed2 100644 --- a/docs/html/search/pages_8.js +++ b/docs/html/search/pages_8.js @@ -1,6 +1,6 @@ var searchData= [ - ['record_20and_20replay_497',['Record and replay',['../record_and_replay.html',1,'index']]], - ['resource_20aliasing_20_28overlap_29_498',['Resource aliasing (overlap)',['../resource_aliasing.html',1,'index']]], - ['recommended_20usage_20patterns_499',['Recommended usage patterns',['../usage_patterns.html',1,'index']]] + ['recommended_20usage_20patterns_497',['Recommended usage patterns',['../usage_patterns.html',1,'index']]], + ['record_20and_20replay_498',['Record and replay',['../record_and_replay.html',1,'index']]], + ['resource_20aliasing_20_28overlap_29_499',['Resource aliasing (overlap)',['../resource_aliasing.html',1,'index']]] ]; diff --git a/docs/html/search/pages_9.html b/docs/html/search/pages_9.html index 111b90cc..4199c40b 100644 --- a/docs/html/search/pages_9.html +++ b/docs/html/search/pages_9.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/pages_a.html b/docs/html/search/pages_a.html index 65666194..2cc9d191 100644 --- a/docs/html/search/pages_a.html +++ b/docs/html/search/pages_a.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/pages_a.js b/docs/html/search/pages_a.js index ecad7c77..c356f501 100644 --- a/docs/html/search/pages_a.js +++ b/docs/html/search/pages_a.js @@ -1,6 +1,6 @@ var searchData= [ - ['vulkan_20memory_20allocator_502',['Vulkan Memory Allocator',['../index.html',1,'']]], - ['vk_5famd_5fdevice_5fcoherent_5fmemory_503',['VK_AMD_device_coherent_memory',['../vk_amd_device_coherent_memory.html',1,'index']]], - ['vk_5fkhr_5fdedicated_5fallocation_504',['VK_KHR_dedicated_allocation',['../vk_khr_dedicated_allocation.html',1,'index']]] + ['vk_5famd_5fdevice_5fcoherent_5fmemory_502',['VK_AMD_device_coherent_memory',['../vk_amd_device_coherent_memory.html',1,'index']]], + ['vk_5fkhr_5fdedicated_5fallocation_503',['VK_KHR_dedicated_allocation',['../vk_khr_dedicated_allocation.html',1,'index']]], + ['vulkan_20memory_20allocator_504',['Vulkan Memory Allocator',['../index.html',1,'']]] ]; diff --git a/docs/html/search/search.css b/docs/html/search/search.css index 933cf088..9074198f 100644 --- a/docs/html/search/search.css +++ b/docs/html/search/search.css @@ -204,19 +204,21 @@ a.SRScope:focus, a.SRScope:active { span.SRScope { padding-left: 4px; + font-family: Arial, Verdana, sans-serif; } .SRPage .SRStatus { padding: 2px 5px; font-size: 8pt; font-style: italic; + font-family: Arial, Verdana, sans-serif; } .SRResult { display: none; } -DIV.searchresults { +div.searchresults { margin-left: 10px; margin-right: 10px; } diff --git a/docs/html/search/search.js b/docs/html/search/search.js index 92b60946..fb226f73 100644 --- a/docs/html/search/search.js +++ b/docs/html/search/search.js @@ -80,9 +80,10 @@ function getYPos(item) storing this instance. Is needed to be able to set timeouts. resultPath - path to use for external files */ -function SearchBox(name, resultsPath, inFrame, label) +function SearchBox(name, resultsPath, inFrame, label, extension) { if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); } + if (!extension || extension == "") { extension = ".html"; } // ---------- Instance variables this.name = name; @@ -97,6 +98,7 @@ function SearchBox(name, resultsPath, inFrame, label) this.searchActive = false; this.insideFrame = inFrame; this.searchLabel = label; + this.extension = extension; // ----------- DOM Elements @@ -347,13 +349,13 @@ function SearchBox(name, resultsPath, inFrame, label) if (idx!=-1) { var hexCode=idx.toString(16); - resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; resultsPageWithSearch = resultsPage+'?'+escape(searchValue); hasResultsPage = true; } else // nothing available for this search term { - resultsPage = this.resultsPath + '/nomatches.html'; + resultsPage = this.resultsPath + '/nomatches' + this.extension; resultsPageWithSearch = resultsPage; hasResultsPage = false; } @@ -439,12 +441,12 @@ function SearchResults(name) while (element && element!=parentElement) { - if (element.nodeName == 'DIV' && element.className == 'SRChildren') + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') { return element; } - if (element.nodeName == 'DIV' && element.hasChildNodes()) + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) { element = element.firstChild; } diff --git a/docs/html/search/typedefs_0.html b/docs/html/search/typedefs_0.html index b66f0a7b..a4684c4a 100644 --- a/docs/html/search/typedefs_0.html +++ b/docs/html/search/typedefs_0.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/typedefs_1.html b/docs/html/search/typedefs_1.html index bca8d766..46cf01e6 100644 --- a/docs/html/search/typedefs_1.html +++ b/docs/html/search/typedefs_1.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/variables_0.html b/docs/html/search/variables_0.html index 2edd1114..1e477c08 100644 --- a/docs/html/search/variables_0.html +++ b/docs/html/search/variables_0.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/variables_1.html b/docs/html/search/variables_1.html index 98b95a99..ea73d9a4 100644 --- a/docs/html/search/variables_1.html +++ b/docs/html/search/variables_1.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/variables_2.html b/docs/html/search/variables_2.html index 3e0c5910..0580462e 100644 --- a/docs/html/search/variables_2.html +++ b/docs/html/search/variables_2.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/variables_3.html b/docs/html/search/variables_3.html index 7867da33..0d69e761 100644 --- a/docs/html/search/variables_3.html +++ b/docs/html/search/variables_3.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/variables_4.html b/docs/html/search/variables_4.html index 732dee2e..a4b6506b 100644 --- a/docs/html/search/variables_4.html +++ b/docs/html/search/variables_4.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/variables_5.html b/docs/html/search/variables_5.html index ad9b5456..7e345d16 100644 --- a/docs/html/search/variables_5.html +++ b/docs/html/search/variables_5.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/variables_6.html b/docs/html/search/variables_6.html index 1cf2da19..7d48e75e 100644 --- a/docs/html/search/variables_6.html +++ b/docs/html/search/variables_6.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/variables_7.html b/docs/html/search/variables_7.html index ab2db0b8..5c263409 100644 --- a/docs/html/search/variables_7.html +++ b/docs/html/search/variables_7.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/variables_8.html b/docs/html/search/variables_8.html index baec040f..dc9ec54a 100644 --- a/docs/html/search/variables_8.html +++ b/docs/html/search/variables_8.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/variables_9.html b/docs/html/search/variables_9.html index df2fea0f..7b014750 100644 --- a/docs/html/search/variables_9.html +++ b/docs/html/search/variables_9.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/variables_a.html b/docs/html/search/variables_a.html index c7491ab8..52a724d1 100644 --- a/docs/html/search/variables_a.html +++ b/docs/html/search/variables_a.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/variables_b.html b/docs/html/search/variables_b.html index 371f07a2..f376b27a 100644 --- a/docs/html/search/variables_b.html +++ b/docs/html/search/variables_b.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/variables_c.html b/docs/html/search/variables_c.html index c89b8de9..6019eba9 100644 --- a/docs/html/search/variables_c.html +++ b/docs/html/search/variables_c.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/search/variables_d.html b/docs/html/search/variables_d.html index a73000dc..f61ae751 100644 --- a/docs/html/search/variables_d.html +++ b/docs/html/search/variables_d.html @@ -1,7 +1,8 @@ - + + - + @@ -10,14 +11,14 @@
                Loading...
                - +
                Searching...
                No Matches
                - +
                diff --git a/docs/html/statistics.html b/docs/html/statistics.html index 03b6bad4..796dbf8d 100644 --- a/docs/html/statistics.html +++ b/docs/html/statistics.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Statistics @@ -29,10 +29,10 @@ - + @@ -84,7 +84,7 @@

                diff --git a/docs/html/staying_within_budget.html b/docs/html/staying_within_budget.html index 1608f244..d43cb5bb 100644 --- a/docs/html/staying_within_budget.html +++ b/docs/html/staying_within_budget.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Staying within budget @@ -29,10 +29,10 @@ - + @@ -98,7 +98,7 @@

                diff --git a/docs/html/struct_vma_allocation.html b/docs/html/struct_vma_allocation.html index 3b4779e3..5f2a3e60 100644 --- a/docs/html/struct_vma_allocation.html +++ b/docs/html/struct_vma_allocation.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaAllocation Struct Reference @@ -29,10 +29,10 @@ - + @@ -83,7 +83,7 @@ diff --git a/docs/html/struct_vma_allocation_create_info-members.html b/docs/html/struct_vma_allocation_create_info-members.html index 2ac1c3db..a97d4f7f 100644 --- a/docs/html/struct_vma_allocation_create_info-members.html +++ b/docs/html/struct_vma_allocation_create_info-members.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Member List @@ -29,10 +29,10 @@ - + @@ -79,7 +79,7 @@ diff --git a/docs/html/struct_vma_allocation_create_info.html b/docs/html/struct_vma_allocation_create_info.html index 48db1769..331b7fc9 100644 --- a/docs/html/struct_vma_allocation_create_info.html +++ b/docs/html/struct_vma_allocation_create_info.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaAllocationCreateInfo Struct Reference @@ -29,10 +29,10 @@ - + @@ -244,7 +244,7 @@

                diff --git a/docs/html/struct_vma_allocation_info-members.html b/docs/html/struct_vma_allocation_info-members.html index 2f0eb72b..7556c0a3 100644 --- a/docs/html/struct_vma_allocation_info-members.html +++ b/docs/html/struct_vma_allocation_info-members.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Member List @@ -29,10 +29,10 @@ - + @@ -77,7 +77,7 @@ diff --git a/docs/html/struct_vma_allocation_info.html b/docs/html/struct_vma_allocation_info.html index 443bef4f..693a70ae 100644 --- a/docs/html/struct_vma_allocation_info.html +++ b/docs/html/struct_vma_allocation_info.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaAllocationInfo Struct Reference @@ -29,10 +29,10 @@ - + @@ -211,7 +211,7 @@

                diff --git a/docs/html/struct_vma_allocator.html b/docs/html/struct_vma_allocator.html index c5acb34b..5093f787 100644 --- a/docs/html/struct_vma_allocator.html +++ b/docs/html/struct_vma_allocator.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaAllocator Struct Reference @@ -29,10 +29,10 @@ - + @@ -80,7 +80,7 @@ diff --git a/docs/html/struct_vma_allocator_create_info-members.html b/docs/html/struct_vma_allocator_create_info-members.html index 2aaf55b9..732b6ce0 100644 --- a/docs/html/struct_vma_allocator_create_info-members.html +++ b/docs/html/struct_vma_allocator_create_info-members.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Member List @@ -29,10 +29,10 @@ - + @@ -83,7 +83,7 @@ diff --git a/docs/html/struct_vma_allocator_create_info.html b/docs/html/struct_vma_allocator_create_info.html index f75e89a6..7c7fce80 100644 --- a/docs/html/struct_vma_allocator_create_info.html +++ b/docs/html/struct_vma_allocator_create_info.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaAllocatorCreateInfo Struct Reference @@ -29,10 +29,10 @@ - + @@ -334,7 +334,7 @@

                diff --git a/docs/html/struct_vma_allocator_info-members.html b/docs/html/struct_vma_allocator_info-members.html index c34decba..e3bfe365 100644 --- a/docs/html/struct_vma_allocator_info-members.html +++ b/docs/html/struct_vma_allocator_info-members.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Member List @@ -29,10 +29,10 @@ - + @@ -74,7 +74,7 @@ diff --git a/docs/html/struct_vma_allocator_info.html b/docs/html/struct_vma_allocator_info.html index 03485d6e..6eaf14e8 100644 --- a/docs/html/struct_vma_allocator_info.html +++ b/docs/html/struct_vma_allocator_info.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaAllocatorInfo Struct Reference @@ -29,10 +29,10 @@ - + @@ -146,7 +146,7 @@

                diff --git a/docs/html/struct_vma_budget-members.html b/docs/html/struct_vma_budget-members.html index 39fae2aa..209d1a2d 100644 --- a/docs/html/struct_vma_budget-members.html +++ b/docs/html/struct_vma_budget-members.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Member List @@ -29,10 +29,10 @@ - + @@ -75,7 +75,7 @@ diff --git a/docs/html/struct_vma_budget.html b/docs/html/struct_vma_budget.html index e9270fea..cbe4139a 100644 --- a/docs/html/struct_vma_budget.html +++ b/docs/html/struct_vma_budget.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaBudget Struct Reference @@ -29,10 +29,10 @@ - + @@ -168,7 +168,7 @@

                diff --git a/docs/html/struct_vma_defragmentation_context.html b/docs/html/struct_vma_defragmentation_context.html index 7ac19dda..a73ba527 100644 --- a/docs/html/struct_vma_defragmentation_context.html +++ b/docs/html/struct_vma_defragmentation_context.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaDefragmentationContext Struct Reference @@ -29,10 +29,10 @@ - + @@ -79,7 +79,7 @@ diff --git a/docs/html/struct_vma_defragmentation_info-members.html b/docs/html/struct_vma_defragmentation_info-members.html index 67f47554..9ca51000 100644 --- a/docs/html/struct_vma_defragmentation_info-members.html +++ b/docs/html/struct_vma_defragmentation_info-members.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Member List @@ -29,10 +29,10 @@ - + @@ -73,7 +73,7 @@ diff --git a/docs/html/struct_vma_defragmentation_info.html b/docs/html/struct_vma_defragmentation_info.html index b269361e..32f45f67 100644 --- a/docs/html/struct_vma_defragmentation_info.html +++ b/docs/html/struct_vma_defragmentation_info.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaDefragmentationInfo Struct Reference @@ -29,10 +29,10 @@ - + @@ -127,7 +127,7 @@

                diff --git a/docs/html/struct_vma_defragmentation_info2-members.html b/docs/html/struct_vma_defragmentation_info2-members.html index 1c0cc439..3c011666 100644 --- a/docs/html/struct_vma_defragmentation_info2-members.html +++ b/docs/html/struct_vma_defragmentation_info2-members.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Member List @@ -29,10 +29,10 @@ - + @@ -82,7 +82,7 @@ diff --git a/docs/html/struct_vma_defragmentation_info2.html b/docs/html/struct_vma_defragmentation_info2.html index 8fbea7f9..61252a1b 100644 --- a/docs/html/struct_vma_defragmentation_info2.html +++ b/docs/html/struct_vma_defragmentation_info2.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaDefragmentationInfo2 Struct Reference @@ -29,10 +29,10 @@ - + @@ -307,7 +307,7 @@

                diff --git a/docs/html/struct_vma_defragmentation_pass_info-members.html b/docs/html/struct_vma_defragmentation_pass_info-members.html index 15924b1a..472df8c5 100644 --- a/docs/html/struct_vma_defragmentation_pass_info-members.html +++ b/docs/html/struct_vma_defragmentation_pass_info-members.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Member List @@ -29,10 +29,10 @@ - + @@ -73,7 +73,7 @@ diff --git a/docs/html/struct_vma_defragmentation_pass_info.html b/docs/html/struct_vma_defragmentation_pass_info.html index 27433b36..65aa245c 100644 --- a/docs/html/struct_vma_defragmentation_pass_info.html +++ b/docs/html/struct_vma_defragmentation_pass_info.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaDefragmentationPassInfo Struct Reference @@ -29,10 +29,10 @@ - + @@ -119,7 +119,7 @@

                diff --git a/docs/html/struct_vma_defragmentation_pass_move_info-members.html b/docs/html/struct_vma_defragmentation_pass_move_info-members.html index 1831d6bb..61f01796 100644 --- a/docs/html/struct_vma_defragmentation_pass_move_info-members.html +++ b/docs/html/struct_vma_defragmentation_pass_move_info-members.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Member List @@ -29,10 +29,10 @@ - + @@ -74,7 +74,7 @@ diff --git a/docs/html/struct_vma_defragmentation_pass_move_info.html b/docs/html/struct_vma_defragmentation_pass_move_info.html index cda8de9e..fc75974b 100644 --- a/docs/html/struct_vma_defragmentation_pass_move_info.html +++ b/docs/html/struct_vma_defragmentation_pass_move_info.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaDefragmentationPassMoveInfo Struct Reference @@ -29,10 +29,10 @@ - + @@ -129,7 +129,7 @@

                diff --git a/docs/html/struct_vma_defragmentation_stats-members.html b/docs/html/struct_vma_defragmentation_stats-members.html index 0a99c8aa..ac8b7309 100644 --- a/docs/html/struct_vma_defragmentation_stats-members.html +++ b/docs/html/struct_vma_defragmentation_stats-members.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Member List @@ -29,10 +29,10 @@ - + @@ -75,7 +75,7 @@ diff --git a/docs/html/struct_vma_defragmentation_stats.html b/docs/html/struct_vma_defragmentation_stats.html index db970d44..f76e4495 100644 --- a/docs/html/struct_vma_defragmentation_stats.html +++ b/docs/html/struct_vma_defragmentation_stats.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaDefragmentationStats Struct Reference @@ -29,10 +29,10 @@ - + @@ -162,7 +162,7 @@

                diff --git a/docs/html/struct_vma_device_memory_callbacks-members.html b/docs/html/struct_vma_device_memory_callbacks-members.html index 1827d5ac..4c3ff43b 100644 --- a/docs/html/struct_vma_device_memory_callbacks-members.html +++ b/docs/html/struct_vma_device_memory_callbacks-members.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Member List @@ -29,10 +29,10 @@ - + @@ -74,7 +74,7 @@ diff --git a/docs/html/struct_vma_device_memory_callbacks.html b/docs/html/struct_vma_device_memory_callbacks.html index d3d2c297..c20bbde9 100644 --- a/docs/html/struct_vma_device_memory_callbacks.html +++ b/docs/html/struct_vma_device_memory_callbacks.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaDeviceMemoryCallbacks Struct Reference @@ -29,10 +29,10 @@ - + @@ -145,7 +145,7 @@

                diff --git a/docs/html/struct_vma_pool.html b/docs/html/struct_vma_pool.html index 77eabaea..c73c39f9 100644 --- a/docs/html/struct_vma_pool.html +++ b/docs/html/struct_vma_pool.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaPool Struct Reference @@ -29,10 +29,10 @@ - + @@ -80,7 +80,7 @@ diff --git a/docs/html/struct_vma_pool_create_info-members.html b/docs/html/struct_vma_pool_create_info-members.html index 202a821c..484aafff 100644 --- a/docs/html/struct_vma_pool_create_info-members.html +++ b/docs/html/struct_vma_pool_create_info-members.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Member List @@ -29,10 +29,10 @@ - + @@ -78,7 +78,7 @@ diff --git a/docs/html/struct_vma_pool_create_info.html b/docs/html/struct_vma_pool_create_info.html index 54c064de..8d992ca1 100644 --- a/docs/html/struct_vma_pool_create_info.html +++ b/docs/html/struct_vma_pool_create_info.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaPoolCreateInfo Struct Reference @@ -29,10 +29,10 @@ - + @@ -228,7 +228,7 @@

                diff --git a/docs/html/struct_vma_pool_stats-members.html b/docs/html/struct_vma_pool_stats-members.html index 97846522..14d90f63 100644 --- a/docs/html/struct_vma_pool_stats-members.html +++ b/docs/html/struct_vma_pool_stats-members.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Member List @@ -29,10 +29,10 @@ - + @@ -77,7 +77,7 @@ diff --git a/docs/html/struct_vma_pool_stats.html b/docs/html/struct_vma_pool_stats.html index 4800979e..73331e09 100644 --- a/docs/html/struct_vma_pool_stats.html +++ b/docs/html/struct_vma_pool_stats.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaPoolStats Struct Reference @@ -29,10 +29,10 @@ - + @@ -201,7 +201,7 @@

                diff --git a/docs/html/struct_vma_record_settings-members.html b/docs/html/struct_vma_record_settings-members.html index 1ea7deb5..c7eef40b 100644 --- a/docs/html/struct_vma_record_settings-members.html +++ b/docs/html/struct_vma_record_settings-members.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Member List @@ -29,10 +29,10 @@ - + @@ -73,7 +73,7 @@ diff --git a/docs/html/struct_vma_record_settings.html b/docs/html/struct_vma_record_settings.html index ffd4aeee..2e677b4e 100644 --- a/docs/html/struct_vma_record_settings.html +++ b/docs/html/struct_vma_record_settings.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaRecordSettings Struct Reference @@ -29,10 +29,10 @@ - + @@ -125,7 +125,7 @@

                diff --git a/docs/html/struct_vma_stat_info-members.html b/docs/html/struct_vma_stat_info-members.html index 440d9f90..332e116c 100644 --- a/docs/html/struct_vma_stat_info-members.html +++ b/docs/html/struct_vma_stat_info-members.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Member List @@ -29,10 +29,10 @@ - + @@ -82,7 +82,7 @@ diff --git a/docs/html/struct_vma_stat_info.html b/docs/html/struct_vma_stat_info.html index 0c697231..8005c71e 100644 --- a/docs/html/struct_vma_stat_info.html +++ b/docs/html/struct_vma_stat_info.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaStatInfo Struct Reference @@ -29,10 +29,10 @@ - + @@ -277,7 +277,7 @@

                diff --git a/docs/html/struct_vma_stats-members.html b/docs/html/struct_vma_stats-members.html index 9c01babf..14ae84a2 100644 --- a/docs/html/struct_vma_stats-members.html +++ b/docs/html/struct_vma_stats-members.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Member List @@ -29,10 +29,10 @@ - + @@ -74,7 +74,7 @@ diff --git a/docs/html/struct_vma_stats.html b/docs/html/struct_vma_stats.html index d1b05e9e..c3c9ad56 100644 --- a/docs/html/struct_vma_stats.html +++ b/docs/html/struct_vma_stats.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaStats Struct Reference @@ -29,10 +29,10 @@ - + @@ -134,7 +134,7 @@

                diff --git a/docs/html/struct_vma_vulkan_functions-members.html b/docs/html/struct_vma_vulkan_functions-members.html index 49c6263d..877721c4 100644 --- a/docs/html/struct_vma_vulkan_functions-members.html +++ b/docs/html/struct_vma_vulkan_functions-members.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Member List @@ -29,10 +29,10 @@ - + @@ -88,7 +88,7 @@ diff --git a/docs/html/struct_vma_vulkan_functions.html b/docs/html/struct_vma_vulkan_functions.html index 8fc0f858..4c7d7464 100644 --- a/docs/html/struct_vma_vulkan_functions.html +++ b/docs/html/struct_vma_vulkan_functions.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VmaVulkanFunctions Struct Reference @@ -29,10 +29,10 @@ - + @@ -359,7 +359,7 @@

                diff --git a/docs/html/usage_patterns.html b/docs/html/usage_patterns.html index 44f60349..c207740f 100644 --- a/docs/html/usage_patterns.html +++ b/docs/html/usage_patterns.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: Recommended usage patterns @@ -29,10 +29,10 @@ - + @@ -130,7 +130,7 @@

                diff --git a/docs/html/vk__mem__alloc_8h.html b/docs/html/vk__mem__alloc_8h.html index 5ac01034..1ddad5aa 100644 --- a/docs/html/vk__mem__alloc_8h.html +++ b/docs/html/vk__mem__alloc_8h.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: vk_mem_alloc.h File Reference @@ -29,10 +29,10 @@ - + @@ -234,76 +234,76 @@

                Enumerations

                enum  VmaAllocatorCreateFlagBits {
                -  VMA_ALLOCATOR_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001, -VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT = 0x00000002, -VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT = 0x00000004, -VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT = 0x00000008, -
                -  VMA_ALLOCATOR_CREATE_AMD_DEVICE_COHERENT_MEMORY_BIT = 0x00000010, -VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT = 0x00000020, -VMA_ALLOCATOR_CREATE_EXT_MEMORY_PRIORITY_BIT = 0x00000040, -VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +  VMA_ALLOCATOR_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001 +, VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT = 0x00000002 +, VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT = 0x00000004 +, VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT = 0x00000008 +,
                +  VMA_ALLOCATOR_CREATE_AMD_DEVICE_COHERENT_MEMORY_BIT = 0x00000010 +, VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT = 0x00000020 +, VMA_ALLOCATOR_CREATE_EXT_MEMORY_PRIORITY_BIT = 0x00000040 +, VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
                }  Flags for created VmaAllocator. More...
                  -enum  VmaRecordFlagBits { VMA_RECORD_FLUSH_AFTER_CALL_BIT = 0x00000001, -VMA_RECORD_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +enum  VmaRecordFlagBits { VMA_RECORD_FLUSH_AFTER_CALL_BIT = 0x00000001 +, VMA_RECORD_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF }  Flags to be used in VmaRecordSettings::flags. More...
                  enum  VmaMemoryUsage {
                -  VMA_MEMORY_USAGE_UNKNOWN = 0, -VMA_MEMORY_USAGE_GPU_ONLY = 1, -VMA_MEMORY_USAGE_CPU_ONLY = 2, -VMA_MEMORY_USAGE_CPU_TO_GPU = 3, -
                -  VMA_MEMORY_USAGE_GPU_TO_CPU = 4, -VMA_MEMORY_USAGE_CPU_COPY = 5, -VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED = 6, -VMA_MEMORY_USAGE_MAX_ENUM = 0x7FFFFFFF +  VMA_MEMORY_USAGE_UNKNOWN = 0 +, VMA_MEMORY_USAGE_GPU_ONLY = 1 +, VMA_MEMORY_USAGE_CPU_ONLY = 2 +, VMA_MEMORY_USAGE_CPU_TO_GPU = 3 +,
                +  VMA_MEMORY_USAGE_GPU_TO_CPU = 4 +, VMA_MEMORY_USAGE_CPU_COPY = 5 +, VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED = 6 +, VMA_MEMORY_USAGE_MAX_ENUM = 0x7FFFFFFF
                }   enum  VmaAllocationCreateFlagBits {
                -  VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT = 0x00000001, -VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT = 0x00000002, -VMA_ALLOCATION_CREATE_MAPPED_BIT = 0x00000004, -VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT = 0x00000008, -
                -  VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT = 0x00000010, -VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT = 0x00000020, -VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT = 0x00000040, -VMA_ALLOCATION_CREATE_DONT_BIND_BIT = 0x00000080, -
                -  VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT = 0x00000100, -VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT = 0x00010000, -VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT = 0x00020000, -VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT = 0x00040000, -
                -  VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT = VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT, -VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT = VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT, -VMA_ALLOCATION_CREATE_STRATEGY_MIN_FRAGMENTATION_BIT = VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT, -VMA_ALLOCATION_CREATE_STRATEGY_MASK, -
                +  VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT = 0x00000001 +, VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT = 0x00000002 +, VMA_ALLOCATION_CREATE_MAPPED_BIT = 0x00000004 +, VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT = 0x00000008 +,
                +  VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT = 0x00000010 +, VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT = 0x00000020 +, VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT = 0x00000040 +, VMA_ALLOCATION_CREATE_DONT_BIND_BIT = 0x00000080 +,
                +  VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT = 0x00000100 +, VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT = 0x00010000 +, VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT = 0x00020000 +, VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT = 0x00040000 +,
                +  VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT = VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT +, VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT = VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT +, VMA_ALLOCATION_CREATE_STRATEGY_MIN_FRAGMENTATION_BIT = VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT +, VMA_ALLOCATION_CREATE_STRATEGY_MASK +,
                  VMA_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
                }  Flags to be passed as VmaAllocationCreateInfo::flags. More...
                  enum  VmaPoolCreateFlagBits {
                -  VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT = 0x00000002, -VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT = 0x00000004, -VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT = 0x00000008, -VMA_POOL_CREATE_ALGORITHM_MASK, -
                +  VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT = 0x00000002 +, VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT = 0x00000004 +, VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT = 0x00000008 +, VMA_POOL_CREATE_ALGORITHM_MASK +,
                  VMA_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
                }  Flags to be passed as VmaPoolCreateInfo::flags. More...
                  -enum  VmaDefragmentationFlagBits { VMA_DEFRAGMENTATION_FLAG_INCREMENTAL = 0x1, -VMA_DEFRAGMENTATION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +enum  VmaDefragmentationFlagBits { VMA_DEFRAGMENTATION_FLAG_INCREMENTAL = 0x1 +, VMA_DEFRAGMENTATION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF }  Flags to be used in vmaDefragmentationBegin(). None at the moment. Reserved for future use. More...
                  @@ -2367,6 +2367,7 @@

                vkDestroyBuffer(device, buffer, allocationCallbacks);
                vmaFreeMemory(allocator, allocation);
                +
                void vmaFreeMemory(VmaAllocator allocator, const VmaAllocation allocation)
                Frees memory previously allocated using vmaAllocateMemory(), vmaAllocateMemoryForBuffer(),...

                It it safe to pass null as buffer and/or allocation.

                @@ -3523,10 +3524,9 @@

                void vmaFreeMemory(VmaAllocator allocator, const VmaAllocation allocation)
                Frees memory previously allocated using vmaAllocateMemory(), vmaAllocateMemoryForBuffer(),...
                diff --git a/docs/html/vk__mem__alloc_8h_source.html b/docs/html/vk__mem__alloc_8h_source.html index 02bf571c..5aef1d20 100644 --- a/docs/html/vk__mem__alloc_8h_source.html +++ b/docs/html/vk__mem__alloc_8h_source.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: vk_mem_alloc.h Source File @@ -29,10 +29,10 @@ - + @@ -66,7 +66,7 @@
                Go to the documentation of this file.
                1 //
                -
                2 // Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved.
                +
                2 // Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved.
                3 //
                4 // Permission is hereby granted, free of charge, to any person obtaining a copy
                5 // of this software and associated documentation files (the "Software"), to deal
                @@ -103,7 +103,7 @@
                2032 #endif
                2033 
                2034 #if !defined(NOMINMAX) && defined(VMA_IMPLEMENTATION)
                -
                2035  #define NOMINMAX // For windows.h
                +
                2035  #define NOMINMAX // For windows.h
                2036 #endif
                2037 
                2038 #if defined(__ANDROID__) && defined(VK_NO_PROTOTYPES) && VMA_STATIC_VULKAN_FUNCTIONS
                @@ -132,8 +132,8 @@
                2061  extern PFN_vkBindBufferMemory2 vkBindBufferMemory2;
                2062  extern PFN_vkBindImageMemory2 vkBindImageMemory2;
                2063  extern PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2;
                -
                2064  #endif // #if VMA_VULKAN_VERSION >= 1001000
                -
                2065 #endif // #if defined(__ANDROID__) && VMA_STATIC_VULKAN_FUNCTIONS && VK_NO_PROTOTYPES
                +
                2064  #endif // #if VMA_VULKAN_VERSION >= 1001000
                +
                2065 #endif // #if defined(__ANDROID__) && VMA_STATIC_VULKAN_FUNCTIONS && VK_NO_PROTOTYPES
                2066 
                2067 #ifndef VULKAN_H_
                2068  #include <vulkan/vulkan.h>
                @@ -290,7 +290,7 @@
                2345 
                - +
                2348 typedef VkFlags VmaAllocatorCreateFlags;
                2349 
                2354 typedef struct VmaVulkanFunctions {
                @@ -328,7 +328,7 @@
                2393 
                2394  VMA_RECORD_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
                - +
                2396 typedef VkFlags VmaRecordFlags;
                2397 
                2399 typedef struct VmaRecordSettings
                @@ -399,8 +399,8 @@
                2588  VkDeviceSize usedBytes;
                2590  VkDeviceSize unusedBytes;
                -
                2591  VkDeviceSize allocationSizeMin, allocationSizeAvg, allocationSizeMax;
                -
                2592  VkDeviceSize unusedRangeSizeMin, unusedRangeSizeAvg, unusedRangeSizeMax;
                +
                2591  VkDeviceSize allocationSizeMin, allocationSizeAvg, allocationSizeMax;
                +
                2592  VkDeviceSize unusedRangeSizeMin, unusedRangeSizeAvg, unusedRangeSizeMax;
                2594 
                2596 typedef struct VmaStats
                @@ -445,7 +445,7 @@
                2686  VmaAllocator VMA_NOT_NULL allocator,
                2687  char* VMA_NULLABLE pStatsString);
                2688 
                -
                2689 #endif // #if VMA_STATS_STRING_ENABLED
                +
                2689 #endif // #if VMA_STATS_STRING_ENABLED
                2690 
                2699 VK_DEFINE_HANDLE(VmaPool)
                2700 
                @@ -460,7 +460,7 @@
                2764 
                2765  VMA_MEMORY_USAGE_MAX_ENUM = 0x7FFFFFFF
                - +
                2767 
                @@ -488,7 +488,7 @@
                2875 
                - +
                2879 
                @@ -533,7 +533,7 @@
                3042 
                - +
                3045 typedef VkFlags VmaPoolCreateFlags;
                3046 
                3049 typedef struct VmaPoolCreateInfo {
                @@ -701,7 +701,7 @@
                3631 typedef enum VmaDefragmentationFlagBits {
                - +
                3636 typedef VkFlags VmaDefragmentationFlags;
                3637 
                3642 typedef struct VmaDefragmentationInfo2 {
                @@ -823,7 +823,7 @@
                4008 }
                4009 #endif
                4010 
                -
                4011 #endif // AMD_VULKAN_MEMORY_ALLOCATOR_H
                +
                4011 #endif // AMD_VULKAN_MEMORY_ALLOCATOR_H
                4012 
                4013 // For Visual Studio IntelliSense.
                4014 #if defined(__cplusplus) && defined(__INTELLISENSE__)
                @@ -1025,7 +1025,7 @@
                4210  #ifdef NDEBUG
                4211  #define VMA_HEAVY_ASSERT(expr)
                4212  #else
                -
                4213  #define VMA_HEAVY_ASSERT(expr) //VMA_ASSERT(expr)
                +
                4213  #define VMA_HEAVY_ASSERT(expr) //VMA_ASSERT(expr)
                4214  #endif
                4215 #endif
                4216 
                @@ -1151,8 +1151,8 @@
                4336  VMA_MUTEX m_Mutex;
                4337  };
                4338  #define VMA_RW_MUTEX VmaRWMutex
                -
                4339  #endif // #if VMA_USE_STL_SHARED_MUTEX
                -
                4340 #endif // #ifndef VMA_RW_MUTEX
                +
                4339  #endif // #if VMA_USE_STL_SHARED_MUTEX
                +
                4340 #endif // #ifndef VMA_RW_MUTEX
                4341 
                4342 /*
                4343 If providing your own implementation, you need to implement a subset of std::atomic.
                @@ -1168,46 +1168,39 @@
                4353 #endif
                4354 
                4355 #ifndef VMA_DEBUG_ALWAYS_DEDICATED_MEMORY
                -
                4356 
                4360  #define VMA_DEBUG_ALWAYS_DEDICATED_MEMORY (0)
                4361 #endif
                4362 
                4363 #ifndef VMA_DEBUG_ALIGNMENT
                -
                4364 
                4368  #define VMA_DEBUG_ALIGNMENT (1)
                4369 #endif
                4370 
                4371 #ifndef VMA_DEBUG_MARGIN
                -
                4372 
                4376  #define VMA_DEBUG_MARGIN (0)
                4377 #endif
                4378 
                4379 #ifndef VMA_DEBUG_INITIALIZE_ALLOCATIONS
                -
                4380 
                4384  #define VMA_DEBUG_INITIALIZE_ALLOCATIONS (0)
                4385 #endif
                4386 
                4387 #ifndef VMA_DEBUG_DETECT_CORRUPTION
                -
                4388 
                4393  #define VMA_DEBUG_DETECT_CORRUPTION (0)
                4394 #endif
                4395 
                4396 #ifndef VMA_DEBUG_GLOBAL_MUTEX
                -
                4397 
                4401  #define VMA_DEBUG_GLOBAL_MUTEX (0)
                4402 #endif
                4403 
                4404 #ifndef VMA_DEBUG_MIN_BUFFER_IMAGE_GRANULARITY
                -
                4405 
                4409  #define VMA_DEBUG_MIN_BUFFER_IMAGE_GRANULARITY (1)
                4410 #endif
                4411 
                4412 #ifndef VMA_SMALL_HEAP_MAX_SIZE
                -
                4413  #define VMA_SMALL_HEAP_MAX_SIZE (1024ull * 1024 * 1024)
                +
                4414  #define VMA_SMALL_HEAP_MAX_SIZE (1024ull * 1024 * 1024)
                4415 #endif
                4416 
                4417 #ifndef VMA_DEFAULT_LARGE_HEAP_BLOCK_SIZE
                -
                4418  #define VMA_DEFAULT_LARGE_HEAP_BLOCK_SIZE (256ull * 1024 * 1024)
                +
                4419  #define VMA_DEFAULT_LARGE_HEAP_BLOCK_SIZE (256ull * 1024 * 1024)
                4420 #endif
                4421 
                4422 #ifndef VMA_CLASS_NO_COPY
                @@ -1357,7 +1350,7 @@
                4566  }
                4567 }
                4568 
                -
                4569 #endif // #if VMA_STATS_STRING_ENABLED
                +
                4569 #endif // #if VMA_STATS_STRING_ENABLED
                4570 
                4571 #ifndef VMA_SORT
                4572 
                @@ -1397,7 +1390,7 @@
                4606 
                4607 #define VMA_SORT(beg, end, cmp) VmaQuickSort(beg, end, cmp)
                4608 
                -
                4609 #endif // #ifndef VMA_SORT
                +
                4609 #endif // #ifndef VMA_SORT
                4610 
                4611 /*
                4612 Returns true if two memory blocks occupy overlapping pages.
                @@ -1777,7 +1770,7 @@
                4987  vec.erase(vec.begin() + index);
                4988 }
                4989 
                -
                4990 #else // #if VMA_USE_STL_VECTOR
                +
                4990 #else // #if VMA_USE_STL_VECTOR
                4991 
                4992 /* Class with interface compatible with subset of std::vector.
                4993 T must be POD because constructors and destructors are not called and memcpy is
                @@ -2002,7 +1995,7 @@
                5212  vec.remove(index);
                5213 }
                5214 
                -
                5215 #endif // #if VMA_USE_STL_VECTOR
                +
                5215 #endif // #if VMA_USE_STL_VECTOR
                5216 
                5217 template<typename CmpLess, typename VectorT>
                5218 size_t VmaVectorInsertSorted(VectorT& vector, const typename VectorT::value_type& value)
                @@ -2334,7 +2327,7 @@
                5547 
                5548 #define VmaList std::list
                5549 
                -
                5550 #else // #if VMA_USE_STL_LIST
                +
                5550 #else // #if VMA_USE_STL_LIST
                5551 
                5552 template<typename T>
                5553 struct VmaListItem
                @@ -2797,7 +2790,7 @@
                6010  VmaRawList<T> m_RawList;
                6011 };
                6012 
                -
                6013 #endif // #if VMA_USE_STL_LIST
                +
                6013 #endif // #if VMA_USE_STL_LIST
                6014 
                6016 // class VmaMap
                6017 
                @@ -2811,7 +2804,7 @@
                6025 #define VMA_MAP_TYPE(KeyT, ValueT) \
                6026  std::unordered_map< KeyT, ValueT, std::hash<KeyT>, std::equal_to<KeyT>, VmaStlAllocator< std::pair<KeyT, ValueT> > >
                6027 
                -
                6028 #else // #if VMA_USE_STL_UNORDERED_MAP
                +
                6028 #else // #if VMA_USE_STL_UNORDERED_MAP
                6029 
                6030 template<typename T1, typename T2>
                6031 struct VmaPair
                @@ -2896,9 +2889,9 @@
                6110  VmaVectorRemove(m_Vector, it - m_Vector.begin());
                6111 }
                6112 
                -
                6113 #endif // #if VMA_USE_STL_UNORDERED_MAP
                +
                6113 #endif // #if VMA_USE_STL_UNORDERED_MAP
                6114 
                -
                6115 #endif // #if 0
                +
                6115 #endif // #if 0
                6116 
                6118 
                6119 class VmaDeviceMemoryBlock;
                @@ -3284,9 +3277,9 @@
                6499 };
                6500 
                6501 #define VMA_VALIDATE(cond) do { if(!(cond)) { \
                -
                6502  VMA_ASSERT(0 && "Validation failed: " #cond); \
                -
                6503  return false; \
                -
                6504  } } while(false)
                +
                6502  VMA_ASSERT(0 && "Validation failed: " #cond); \
                +
                6503  return false; \
                +
                6504  } } while(false)
                6505 
                6506 class VmaBlockMetadata_Generic : public VmaBlockMetadata
                6507 {
                @@ -4599,7 +4592,7 @@
                7816  void Flush();
                7817 };
                7818 
                -
                7819 #endif // #if VMA_RECORDING_ENABLED
                +
                7819 #endif // #if VMA_RECORDING_ENABLED
                7820 
                7821 /*
                7822 Thread-safe wrapper over VmaPoolAllocator free list, for allocation of VmaAllocation_T objects.
                @@ -4629,7 +4622,7 @@
                7846  uint64_t m_VulkanUsage[VK_MAX_MEMORY_HEAPS];
                7847  uint64_t m_VulkanBudget[VK_MAX_MEMORY_HEAPS];
                7848  uint64_t m_BlockBytesAtBudgetFetch[VK_MAX_MEMORY_HEAPS];
                -
                7849 #endif // #if VMA_MEMORY_BUDGET
                +
                7849 #endif // #if VMA_MEMORY_BUDGET
                7850 
                7851  VmaCurrentBudgetData()
                7852  {
                @@ -4974,7 +4967,7 @@
                8191 
                8192 #if VMA_MEMORY_BUDGET
                8193  void UpdateVulkanBudget();
                -
                8194 #endif // #if VMA_MEMORY_BUDGET
                +
                8194 #endif // #if VMA_MEMORY_BUDGET
                8195 };
                8196 
                8198 // Memory allocation #2 after VmaAllocator_T definition
                @@ -5090,7 +5083,7 @@
                8309  Add(buf);
                8310 }
                8311 
                -
                8312 #endif // #if VMA_STATS_STRING_ENABLED
                +
                8312 #endif // #if VMA_STATS_STRING_ENABLED
                8313 
                8315 // VmaJsonWriter
                8316 
                @@ -5377,7 +5370,7 @@
                8597  }
                8598 }
                8599 
                -
                8600 #endif // #if VMA_STATS_STRING_ENABLED
                +
                8600 #endif // #if VMA_STATS_STRING_ENABLED
                8601 
                8603 
                8604 void VmaAllocation_T::SetUserData(VmaAllocator hAllocator, void* pUserData)
                @@ -5719,7 +5712,7 @@
                8940  json.EndObject();
                8941 }
                8942 
                -
                8943 #endif // #if VMA_STATS_STRING_ENABLED
                +
                8943 #endif // #if VMA_STATS_STRING_ENABLED
                8944 
                8945 struct VmaSuballocationItemSizeLess
                8946 {
                @@ -5809,7 +5802,7 @@
                9031  json.EndObject();
                9032 }
                9033 
                -
                9034 #endif // #if VMA_STATS_STRING_ENABLED
                +
                9034 #endif // #if VMA_STATS_STRING_ENABLED
                9035 
                9037 // class VmaBlockMetadata_Generic
                9038 
                @@ -6017,7 +6010,7 @@
                9240  PrintDetailedMap_End(json);
                9241 }
                9242 
                -
                9243 #endif // #if VMA_STATS_STRING_ENABLED
                +
                9243 #endif // #if VMA_STATS_STRING_ENABLED
                9244 
                9245 bool VmaBlockMetadata_Generic::CreateAllocationRequest(
                9246  uint32_t currentFrameIndex,
                @@ -6433,7 +6426,7 @@
                9656 
                9657  // Check previous suballocations for BufferImageGranularity conflicts.
                9658  // Make bigger alignment if necessary.
                -
                9659  if(bufferImageGranularity > 1)
                +
                9659  if(bufferImageGranularity > 1 && bufferImageGranularity != allocAlignment)
                9660  {
                9661  bool bufferImageGranularityConflict = false;
                9662  VmaSuballocationList::const_iterator prevSuballocItem = suballocItem;
                @@ -6517,7 +6510,7 @@
                9740 
                9741  // Check next suballocations for BufferImageGranularity conflicts.
                9742  // If conflict exists, we must mark more allocations lost or fail.
                -
                9743  if(bufferImageGranularity > 1)
                +
                9743  if(allocSize % bufferImageGranularity || *pOffset % bufferImageGranularity)
                9744  {
                9745  VmaSuballocationList::const_iterator nextSuballocItem = lastSuballocItem;
                9746  ++nextSuballocItem;
                @@ -6576,7 +6569,7 @@
                9799 
                9800  // Check previous suballocations for BufferImageGranularity conflicts.
                9801  // Make bigger alignment if necessary.
                -
                9802  if(bufferImageGranularity > 1)
                +
                9802  if(bufferImageGranularity > 1 && bufferImageGranularity != allocAlignment)
                9803  {
                9804  bool bufferImageGranularityConflict = false;
                9805  VmaSuballocationList::const_iterator prevSuballocItem = suballocItem;
                @@ -6616,7 +6609,7 @@
                9839 
                9840  // Check next suballocations for BufferImageGranularity conflicts.
                9841  // If conflict exists, allocation cannot be made here.
                -
                9842  if(bufferImageGranularity > 1)
                +
                9842  if(allocSize % bufferImageGranularity || *pOffset % bufferImageGranularity)
                9843  {
                9844  VmaSuballocationList::const_iterator nextSuballocItem = suballocItem;
                9845  ++nextSuballocItem;
                @@ -7701,7 +7694,7 @@
                10925 
                10926  PrintDetailedMap_End(json);
                10927 }
                -
                10928 #endif // #if VMA_STATS_STRING_ENABLED
                +
                10928 #endif // #if VMA_STATS_STRING_ENABLED
                10929 
                10930 bool VmaBlockMetadata_Linear::CreateAllocationRequest(
                10931  uint32_t currentFrameIndex,
                @@ -7783,7 +7776,7 @@
                11007 
                11008  // Check next suballocations from 2nd for BufferImageGranularity conflicts.
                11009  // Make bigger alignment if necessary.
                -
                11010  if(bufferImageGranularity > 1 && !suballocations2nd.empty())
                +
                11010  if(bufferImageGranularity > 1 && bufferImageGranularity != allocAlignment && !suballocations2nd.empty())
                11011  {
                11012  bool bufferImageGranularityConflict = false;
                11013  for(size_t nextSuballocIndex = suballocations2nd.size(); nextSuballocIndex--; )
                @@ -7888,7 +7881,7 @@
                11112 
                11113  // Check previous suballocations for BufferImageGranularity conflicts.
                11114  // Make bigger alignment if necessary.
                -
                11115  if(bufferImageGranularity > 1 && !suballocations1st.empty())
                +
                11115  if(bufferImageGranularity > 1 && bufferImageGranularity != allocAlignment && !suballocations1st.empty())
                11116  {
                11117  bool bufferImageGranularityConflict = false;
                11118  for(size_t prevSuballocIndex = suballocations1st.size(); prevSuballocIndex--; )
                @@ -7920,7 +7913,7 @@
                11144  {
                11145  // Check next suballocations for BufferImageGranularity conflicts.
                11146  // If conflict exists, allocation cannot be made here.
                -
                11147  if(bufferImageGranularity > 1 && m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK)
                +
                11147  if((allocSize % bufferImageGranularity || resultOffset % bufferImageGranularity) && m_2ndVectorMode == SECOND_VECTOR_DOUBLE_STACK)
                11148  {
                11149  for(size_t nextSuballocIndex = suballocations2nd.size(); nextSuballocIndex--; )
                11150  {
                @@ -7978,7 +7971,7 @@
                11202 
                11203  // Check previous suballocations for BufferImageGranularity conflicts.
                11204  // Make bigger alignment if necessary.
                -
                11205  if(bufferImageGranularity > 1 && !suballocations2nd.empty())
                +
                11205  if(bufferImageGranularity > 1 && bufferImageGranularity != allocAlignment && !suballocations2nd.empty())
                11206  {
                11207  bool bufferImageGranularityConflict = false;
                11208  for(size_t prevSuballocIndex = suballocations2nd.size(); prevSuballocIndex--; )
                @@ -8036,7 +8029,7 @@
                11260 
                11261  // Check next suballocations for BufferImageGranularity conflicts.
                11262  // If conflict exists, we must mark more allocations lost or fail.
                -
                11263  if(bufferImageGranularity > 1)
                +
                11263  if(allocSize % bufferImageGranularity || resultOffset % bufferImageGranularity)
                11264  {
                11265  while(index1st < suballocations1st.size())
                11266  {
                @@ -8082,7 +8075,7 @@
                11306  {
                11307  // Check next suballocations for BufferImageGranularity conflicts.
                11308  // If conflict exists, allocation cannot be made here.
                -
                11309  if(bufferImageGranularity > 1)
                +
                11309  if(allocSize % bufferImageGranularity || resultOffset % bufferImageGranularity)
                11310  {
                11311  for(size_t nextSuballocIndex = index1st;
                11312  nextSuballocIndex < suballocations1st.size();
                @@ -8710,7 +8703,7 @@
                11935  PrintDetailedMap_End(json);
                11936 }
                11937 
                -
                11938 #endif // #if VMA_STATS_STRING_ENABLED
                +
                11938 #endif // #if VMA_STATS_STRING_ENABLED
                11939 
                11940 bool VmaBlockMetadata_Buddy::CreateAllocationRequest(
                11941  uint32_t currentFrameIndex,
                @@ -9108,7 +9101,7 @@
                12333  VMA_ASSERT(0);
                12334  }
                12335 }
                -
                12336 #endif // #if VMA_STATS_STRING_ENABLED
                +
                12336 #endif // #if VMA_STATS_STRING_ENABLED
                12337 
                12338 
                12340 // class VmaDeviceMemoryBlock
                @@ -9407,7 +9400,7 @@
                12633 
                12634 #if VMA_STATS_STRING_ENABLED
                12635 
                -
                12636 #endif // #if VMA_STATS_STRING_ENABLED
                +
                12636 #endif // #if VMA_STATS_STRING_ENABLED
                12637 
                12638 VmaBlockVector::VmaBlockVector(
                12639  VmaAllocator hAllocator,
                @@ -10126,7 +10119,7 @@
                13352  allocFlagsInfo.flags = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR;
                13353  VmaPnextChainPushFront(&allocInfo, &allocFlagsInfo);
                13354  }
                -
                13355 #endif // #if VMA_BUFFER_DEVICE_ADDRESS
                +
                13355 #endif // #if VMA_BUFFER_DEVICE_ADDRESS
                13356 
                13357 #if VMA_MEMORY_PRIORITY
                13358  VkMemoryPriorityAllocateInfoEXT priorityInfo = { VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT };
                @@ -10135,7 +10128,7 @@
                13361  priorityInfo.priority = m_Priority;
                13362  VmaPnextChainPushFront(&allocInfo, &priorityInfo);
                13363  }
                -
                13364 #endif // #if VMA_MEMORY_PRIORITY
                +
                13364 #endif // #if VMA_MEMORY_PRIORITY
                13365 
                13366  VkDeviceMemory mem = VK_NULL_HANDLE;
                13367  VkResult res = m_hAllocator->AllocateVulkanMemory(&allocInfo, &mem);
                @@ -10476,7 +10469,7 @@
                13702  json.EndObject();
                13703 }
                13704 
                -
                13705 #endif // #if VMA_STATS_STRING_ENABLED
                +
                13705 #endif // #if VMA_STATS_STRING_ENABLED
                13706 
                13707 void VmaBlockVector::Defragment(
                13708  class VmaBlockVectorDefragmentationContext* pCtx,
                @@ -12457,7 +12450,7 @@
                15688  }
                15689 }
                15690 
                -
                15691 #endif // #if VMA_RECORDING_ENABLED
                +
                15691 #endif // #if VMA_RECORDING_ENABLED
                15692 
                15694 // VmaAllocationObjectAllocator
                15695 
                @@ -12670,7 +12663,7 @@
                15903  {
                15904  UpdateVulkanBudget();
                15905  }
                -
                15906 #endif // #if VMA_MEMORY_BUDGET
                +
                15906 #endif // #if VMA_MEMORY_BUDGET
                15907 
                15908  return res;
                15909 }
                @@ -12753,7 +12746,7 @@
                15986 #endif
                15987 }
                15988 
                -
                15989 #endif // #if VMA_STATIC_VULKAN_FUNCTIONS == 1
                +
                15989 #endif // #if VMA_STATIC_VULKAN_FUNCTIONS == 1
                15990 
                15991 void VmaAllocator_T::ImportVulkanFunctions_Custom(const VmaVulkanFunctions* pVulkanFunctions)
                15992 {
                @@ -12853,20 +12846,20 @@
                16086  VMA_FETCH_DEVICE_FUNC(vkBindBufferMemory2KHR, PFN_vkBindBufferMemory2KHR, "vkBindBufferMemory2KHR");
                16087  VMA_FETCH_DEVICE_FUNC(vkBindImageMemory2KHR, PFN_vkBindImageMemory2KHR, "vkBindImageMemory2KHR");
                16088  }
                -
                16089 #endif // #if VMA_BIND_MEMORY2
                +
                16089 #endif // #if VMA_BIND_MEMORY2
                16090 
                16091 #if VMA_MEMORY_BUDGET
                16092  if(m_UseExtMemoryBudget)
                16093  {
                16094  VMA_FETCH_INSTANCE_FUNC(vkGetPhysicalDeviceMemoryProperties2KHR, PFN_vkGetPhysicalDeviceMemoryProperties2KHR, "vkGetPhysicalDeviceMemoryProperties2KHR");
                16095  }
                -
                16096 #endif // #if VMA_MEMORY_BUDGET
                +
                16096 #endif // #if VMA_MEMORY_BUDGET
                16097 
                16098 #undef VMA_FETCH_DEVICE_FUNC
                16099 #undef VMA_FETCH_INSTANCE_FUNC
                16100 }
                16101 
                -
                16102 #endif // #if VMA_DYNAMIC_VULKAN_FUNCTIONS == 1
                +
                16102 #endif // #if VMA_DYNAMIC_VULKAN_FUNCTIONS == 1
                16103 
                16104 void VmaAllocator_T::ValidateVulkanFunctions()
                16105 {
                @@ -13091,7 +13084,7 @@
                16324  VmaPnextChainPushFront(&allocInfo, &dedicatedAllocInfo);
                16325  }
                16326  }
                -
                16327 #endif // #if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION >= 1001000
                +
                16327 #endif // #if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION >= 1001000
                16328 
                16329 #if VMA_BUFFER_DEVICE_ADDRESS
                16330  VkMemoryAllocateFlagsInfoKHR allocFlagsInfo = { VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR };
                @@ -13113,7 +13106,7 @@
                16346  VmaPnextChainPushFront(&allocInfo, &allocFlagsInfo);
                16347  }
                16348  }
                -
                16349 #endif // #if VMA_BUFFER_DEVICE_ADDRESS
                +
                16349 #endif // #if VMA_BUFFER_DEVICE_ADDRESS
                16350 
                16351 #if VMA_MEMORY_PRIORITY
                16352  VkMemoryPriorityAllocateInfoEXT priorityInfo = { VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT };
                @@ -13122,7 +13115,7 @@
                16355  priorityInfo.priority = priority;
                16356  VmaPnextChainPushFront(&allocInfo, &priorityInfo);
                16357  }
                -
                16358 #endif // #if VMA_MEMORY_PRIORITY
                +
                16358 #endif // #if VMA_MEMORY_PRIORITY
                16359 
                16360  size_t allocIndex;
                16361  VkResult res = VK_SUCCESS;
                @@ -13260,7 +13253,7 @@
                16493  prefersDedicatedAllocation = (memDedicatedReq.prefersDedicatedAllocation != VK_FALSE);
                16494  }
                16495  else
                -
                16496 #endif // #if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION >= 1001000
                +
                16496 #endif // #if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION >= 1001000
                16497  {
                16498  (*m_VulkanFunctions.vkGetBufferMemoryRequirements)(m_hDevice, hBuffer, &memReq);
                16499  requiresDedicatedAllocation = false;
                @@ -13292,7 +13285,7 @@
                16525  prefersDedicatedAllocation = (memDedicatedReq.prefersDedicatedAllocation != VK_FALSE);
                16526  }
                16527  else
                -
                16528 #endif // #if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION >= 1001000
                +
                16528 #endif // #if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION >= 1001000
                16529  {
                16530  (*m_VulkanFunctions.vkGetImageMemoryRequirements)(m_hDevice, hImage, &memReq);
                16531  requiresDedicatedAllocation = false;
                @@ -13871,7 +13864,7 @@
                17104  {
                17105  UpdateVulkanBudget();
                17106  }
                -
                17107 #endif // #if VMA_MEMORY_BUDGET
                +
                17107 #endif // #if VMA_MEMORY_BUDGET
                17108 }
                17109 
                17110 void VmaAllocator_T::MakePoolAllocationsLost(
                @@ -14028,7 +14021,7 @@
                17261  return (*m_VulkanFunctions.vkBindBufferMemory2KHR)(m_hDevice, 1, &bindBufferMemoryInfo);
                17262  }
                17263  else
                -
                17264 #endif // #if VMA_VULKAN_VERSION >= 1001000 || VMA_BIND_MEMORY2
                +
                17264 #endif // #if VMA_VULKAN_VERSION >= 1001000 || VMA_BIND_MEMORY2
                17265  {
                17266  return VK_ERROR_EXTENSION_NOT_PRESENT;
                17267  }
                @@ -14059,7 +14052,7 @@
                17292  return (*m_VulkanFunctions.vkBindImageMemory2KHR)(m_hDevice, 1, &bindBufferMemoryInfo);
                17293  }
                17294  else
                -
                17295 #endif // #if VMA_BIND_MEMORY2
                +
                17295 #endif // #if VMA_BIND_MEMORY2
                17296  {
                17297  return VK_ERROR_EXTENSION_NOT_PRESENT;
                17298  }
                @@ -14415,7 +14408,7 @@
                17648  }
                17649 }
                17650 
                -
                17651 #endif // #if VMA_MEMORY_BUDGET
                +
                17651 #endif // #if VMA_MEMORY_BUDGET
                17652 
                17653 void VmaAllocator_T::FillAllocation(const VmaAllocation hAllocation, uint8_t pattern)
                17654 {
                @@ -14537,7 +14530,7 @@
                17770  }
                17771 }
                17772 
                -
                17773 #endif // #if VMA_STATS_STRING_ENABLED
                +
                17773 #endif // #if VMA_STATS_STRING_ENABLED
                17774 
                17776 // Public interface
                17777 
                @@ -14779,7 +14772,7 @@
                18013  }
                18014 }
                18015 
                -
                18016 #endif // #if VMA_STATS_STRING_ENABLED
                +
                18016 #endif // #if VMA_STATS_STRING_ENABLED
                18017 
                18018 /*
                18019 This function is not protected by any mutex because it just reads immutable data.
                @@ -16067,260 +16060,260 @@
                19301  }
                19302 }
                19303 
                -
                19304 #endif // #ifdef VMA_IMPLEMENTATION
                -
                -
                struct VmaStats VmaStats
                General statistics from current state of Allocator.
                -
                Parameters for recording calls to VMA functions. To be used in VmaAllocatorCreateInfo::pRecordSetting...
                Definition: vk_mem_alloc.h:2400
                -
                PFN_vkAllocateMemory vkAllocateMemory
                Definition: vk_mem_alloc.h:2357
                -
                PFN_vmaFreeDeviceMemoryFunction pfnFree
                Optional, can be null.
                Definition: vk_mem_alloc.h:2228
                -
                @ VMA_RECORD_FLAG_BITS_MAX_ENUM
                Definition: vk_mem_alloc.h:2394
                -
                PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties
                Definition: vk_mem_alloc.h:2355
                +
                19304 #endif // #ifdef VMA_IMPLEMENTATION
                +
                Definition: vk_mem_alloc.h:2881
                +
                uint32_t memoryTypeBits
                Bitmask containing one bit set for every memory type acceptable for this allocation.
                Definition: vk_mem_alloc.h:2907
                +
                VmaPool pool
                Pool that this allocation should be created in.
                Definition: vk_mem_alloc.h:2913
                +
                VkMemoryPropertyFlags preferredFlags
                Flags that preferably should be set in a memory type chosen for an allocation.
                Definition: vk_mem_alloc.h:2899
                +
                void * pUserData
                Custom general-purpose pointer that will be stored in VmaAllocation, can be read as VmaAllocationInfo...
                Definition: vk_mem_alloc.h:2920
                +
                VkMemoryPropertyFlags requiredFlags
                Flags that must be set in a Memory Type chosen for an allocation.
                Definition: vk_mem_alloc.h:2894
                +
                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:2927
                +
                VmaMemoryUsage usage
                Intended usage of memory.
                Definition: vk_mem_alloc.h:2889
                +
                VmaAllocationCreateFlags flags
                Use VmaAllocationCreateFlagBits enum.
                Definition: vk_mem_alloc.h:2883
                +
                Represents single memory allocation.
                +
                Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().
                Definition: vk_mem_alloc.h:3231
                +
                VkDeviceSize offset
                Offset in VkDeviceMemory object to the beginning of this allocation, in bytes. (deviceMemory,...
                Definition: vk_mem_alloc.h:3255
                +
                void * pMappedData
                Pointer to the beginning of this allocation as mapped data.
                Definition: vk_mem_alloc.h:3275
                +
                uint32_t memoryType
                Memory type index that this allocation was allocated from.
                Definition: vk_mem_alloc.h:3236
                +
                VkDeviceSize size
                Size of this allocation, in bytes.
                Definition: vk_mem_alloc.h:3266
                +
                void * pUserData
                Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vma...
                Definition: vk_mem_alloc.h:3280
                +
                VkDeviceMemory deviceMemory
                Handle to Vulkan memory object.
                Definition: vk_mem_alloc.h:3245
                +
                Description of a Allocator to be created.
                Definition: vk_mem_alloc.h:2415
                VkPhysicalDevice physicalDevice
                Vulkan physical device.
                Definition: vk_mem_alloc.h:2420
                -
                @ VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT
                Enables alternative, linear allocation algorithm in this pool.
                Definition: vk_mem_alloc.h:3024
                -
                uint32_t allocationCount
                Number of allocations in pAllocations array.
                Definition: vk_mem_alloc.h:3648
                uint32_t frameInUseCount
                Maximum number of additional frames that are in use at the same time as current frame.
                Definition: vk_mem_alloc.h:2446
                -
                @ VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT
                Definition: vk_mem_alloc.h:2291
                -
                Statistics of current memory usage and available budget, in bytes, for specific memory heap.
                Definition: vk_mem_alloc.h:2619
                -
                VkDeviceMemory memory
                Definition: vk_mem_alloc.h:3716
                -
                const VmaPool * pPools
                Either null or pointer to array of pools to be defragmented.
                Definition: vk_mem_alloc.h:3682
                -
                @ VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED
                Definition: vk_mem_alloc.h:2763
                -
                struct VmaDefragmentationInfo VmaDefragmentationInfo
                Deprecated. Optional configuration parameters to be passed to function vmaDefragment().
                -
                Describes parameter of existing VmaPool.
                Definition: vk_mem_alloc.h:3102
                -
                @ VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT
                Definition: vk_mem_alloc.h:2846
                -
                @ VMA_ALLOCATOR_CREATE_EXTERNALLY_SYNCHRONIZED_BIT
                Allocator and all objects created from it will not be synchronized internally, so you must guarantee ...
                Definition: vk_mem_alloc.h:2239
                -
                VkDeviceSize unusedSize
                Total number of bytes in the pool not used by any VmaAllocation.
                Definition: vk_mem_alloc.h:3108
                -
                @ VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT
                Definition: vk_mem_alloc.h:2826
                -
                VmaRecordFlagBits
                Flags to be used in VmaRecordSettings::flags.
                Definition: vk_mem_alloc.h:2386
                -
                void vmaSetPoolName(VmaAllocator allocator, VmaPool pool, const char *pName)
                Sets name of a custom pool.
                -
                Set of callbacks that the library will call for vkAllocateMemory and vkFreeMemory.
                Definition: vk_mem_alloc.h:2224
                -
                VkBool32 vmaTouchAllocation(VmaAllocator allocator, VmaAllocation allocation)
                Returns VK_TRUE if allocation is not lost and atomically marks it as used in current frame.
                -
                @ VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT
                Definition: vk_mem_alloc.h:2813
                +
                const VkDeviceSize * pHeapSizeLimit
                Either null or a pointer to an array of limits on maximum number of bytes that can be allocated out o...
                Definition: vk_mem_alloc.h:2471
                +
                VmaAllocatorCreateFlags flags
                Flags for created allocator. Use VmaAllocatorCreateFlagBits enum.
                Definition: vk_mem_alloc.h:2417
                +
                const VmaVulkanFunctions * pVulkanFunctions
                Pointers to Vulkan functions. Can be null.
                Definition: vk_mem_alloc.h:2477
                +
                const VkAllocationCallbacks * pAllocationCallbacks
                Custom CPU memory allocation callbacks. Optional.
                Definition: vk_mem_alloc.h:2429
                +
                VkInstance instance
                Handle to Vulkan instance object.
                Definition: vk_mem_alloc.h:2489
                VkDeviceSize preferredLargeHeapBlockSize
                Preferred size of a single VkDeviceMemory block to be allocated from large heaps > 1 GiB....
                Definition: vk_mem_alloc.h:2426
                -
                @ VMA_RECORD_FLUSH_AFTER_CALL_BIT
                Enables flush after recording every function call.
                Definition: vk_mem_alloc.h:2392
                -
                struct VmaAllocationCreateInfo VmaAllocationCreateInfo
                -
                VkResult vmaResizeAllocation(VmaAllocator allocator, VmaAllocation allocation, VkDeviceSize newSize)
                Deprecated.
                -
                PFN_vkUnmapMemory vkUnmapMemory
                Definition: vk_mem_alloc.h:2360
                -
                VkDeviceMemory deviceMemory
                Handle to Vulkan memory object.
                Definition: vk_mem_alloc.h:3245
                -
                uint32_t unusedRangeCount
                Number of free ranges of memory between allocations.
                Definition: vk_mem_alloc.h:2586
                -
                void * pUserData
                Custom general-purpose pointer that will be stored in VmaAllocation, can be read as VmaAllocationInfo...
                Definition: vk_mem_alloc.h:2920
                -
                VkDeviceSize unusedRangeSizeMax
                Definition: vk_mem_alloc.h:2592
                -
                PFN_vkMapMemory vkMapMemory
                Definition: vk_mem_alloc.h:2359
                -
                #define VMA_RECORDING_ENABLED
                Definition: vk_mem_alloc.h:2031
                -
                VkDeviceSize offset
                Definition: vk_mem_alloc.h:3717
                -
                VmaDefragmentationPassMoveInfo * pMoves
                Definition: vk_mem_alloc.h:3726
                -
                @ VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT
                Definition: vk_mem_alloc.h:2857
                -
                void vmaUnmapMemory(VmaAllocator allocator, VmaAllocation allocation)
                Unmaps memory represented by given allocation, mapped previously using vmaMapMemory().
                -
                VkInstance instance
                Handle to Vulkan instance object.
                Definition: vk_mem_alloc.h:2518
                -
                VkDeviceSize usage
                Estimated current memory usage of the program, in bytes.
                Definition: vk_mem_alloc.h:2643
                +
                const VmaRecordSettings * pRecordSettings
                Parameters for recording of VMA calls. Can be null.
                Definition: vk_mem_alloc.h:2484
                +
                VkDevice device
                Vulkan device.
                Definition: vk_mem_alloc.h:2423
                +
                uint32_t vulkanApiVersion
                Optional. The highest version of Vulkan that the application is designed to use.
                Definition: vk_mem_alloc.h:2498
                +
                const VmaDeviceMemoryCallbacks * pDeviceMemoryCallbacks
                Informative callbacks for vkAllocateMemory, vkFreeMemory. Optional.
                Definition: vk_mem_alloc.h:2432
                Represents main object of this library initialized.
                -
                PFN_vkCmdCopyBuffer vkCmdCopyBuffer
                Definition: vk_mem_alloc.h:2371
                -
                Description of a Allocator to be created.
                Definition: vk_mem_alloc.h:2415
                -
                @ VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT
                Set this flag to only try to allocate from existing VkDeviceMemory blocks and never create new such b...
                Definition: vk_mem_alloc.h:2787
                +
                Information about existing VmaAllocator object.
                Definition: vk_mem_alloc.h:2513
                VkDevice device
                Handle to Vulkan device object.
                Definition: vk_mem_alloc.h:2528
                -
                @ VMA_DEFRAGMENTATION_FLAG_BITS_MAX_ENUM
                Definition: vk_mem_alloc.h:3634
                -
                VkDeviceSize unusedRangeSizeMax
                Size of the largest continuous free memory region available for new allocation.
                Definition: vk_mem_alloc.h:3121
                -
                @ VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT
                Definition: vk_mem_alloc.h:2850
                -
                @ VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT
                Enables usage of VK_KHR_dedicated_allocation extension.
                Definition: vk_mem_alloc.h:2264
                -
                void vmaSetCurrentFrameIndex(VmaAllocator allocator, uint32_t frameIndex)
                Sets index of the current frame.
                +
                VkInstance instance
                Handle to Vulkan instance object.
                Definition: vk_mem_alloc.h:2518
                +
                VkPhysicalDevice physicalDevice
                Handle to Vulkan physical device object.
                Definition: vk_mem_alloc.h:2523
                +
                Statistics of current memory usage and available budget, in bytes, for specific memory heap.
                Definition: vk_mem_alloc.h:2619
                +
                VkDeviceSize blockBytes
                Sum size of all VkDeviceMemory blocks allocated from particular heap, in bytes.
                Definition: vk_mem_alloc.h:2622
                +
                VkDeviceSize allocationBytes
                Sum size of all allocations created in particular heap, in bytes.
                Definition: vk_mem_alloc.h:2633
                +
                VkDeviceSize usage
                Estimated current memory usage of the program, in bytes.
                Definition: vk_mem_alloc.h:2643
                +
                VkDeviceSize budget
                Estimated amount of memory available to the program, in bytes.
                Definition: vk_mem_alloc.h:2654
                +
                Represents Opaque object that represents started defragmentation process.
                +
                Parameters for defragmentation.
                Definition: vk_mem_alloc.h:3642
                +
                const VmaPool * pPools
                Either null or pointer to array of pools to be defragmented.
                Definition: vk_mem_alloc.h:3682
                +
                uint32_t allocationCount
                Number of allocations in pAllocations array.
                Definition: vk_mem_alloc.h:3648
                +
                uint32_t maxGpuAllocationsToMove
                Maximum number of allocations that can be moved to a different place using transfers on GPU side,...
                Definition: vk_mem_alloc.h:3702
                +
                VkDeviceSize maxGpuBytesToMove
                Maximum total numbers of bytes that can be copied while moving allocations to different places using ...
                Definition: vk_mem_alloc.h:3697
                +
                VmaDefragmentationFlags flags
                Reserved for future use. Should be 0.
                Definition: vk_mem_alloc.h:3645
                +
                VkBool32 * pAllocationsChanged
                Optional, output. Pointer to array that will be filled with information whether the allocation at cer...
                Definition: vk_mem_alloc.h:3663
                +
                uint32_t poolCount
                Numer of pools in pPools array.
                Definition: vk_mem_alloc.h:3666
                +
                VkCommandBuffer commandBuffer
                Optional. Command buffer where GPU copy commands will be posted.
                Definition: vk_mem_alloc.h:3711
                +
                uint32_t maxCpuAllocationsToMove
                Maximum number of allocations that can be moved to a different place using transfers on CPU side,...
                Definition: vk_mem_alloc.h:3692
                +
                const VmaAllocation * pAllocations
                Pointer to array of allocations that can be defragmented.
                Definition: vk_mem_alloc.h:3657
                +
                VkDeviceSize maxCpuBytesToMove
                Maximum total numbers of bytes that can be copied while moving allocations to different places using ...
                Definition: vk_mem_alloc.h:3687
                +
                Deprecated. Optional configuration parameters to be passed to function vmaDefragment().
                Definition: vk_mem_alloc.h:3733
                uint32_t maxAllocationsToMove
                Maximum number of allocations that can be moved to different place.
                Definition: vk_mem_alloc.h:3743
                -
                @ VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT
                Definition: vk_mem_alloc.h:2841
                -
                VmaMemoryUsage
                Definition: vk_mem_alloc.h:2702
                -
                void vmaFreeMemoryPages(VmaAllocator allocator, size_t allocationCount, const VmaAllocation *pAllocations)
                Frees memory and destroys multiple allocations.
                -
                void vmaGetMemoryTypeProperties(VmaAllocator allocator, uint32_t memoryTypeIndex, VkMemoryPropertyFlags *pFlags)
                Given Memory Type Index, returns Property Flags of this memory type.
                -
                uint32_t blockCount
                Number of VkDeviceMemory Vulkan memory blocks allocated.
                Definition: vk_mem_alloc.h:2582
                +
                VkDeviceSize maxBytesToMove
                Maximum total numbers of bytes that can be copied while moving allocations to different places.
                Definition: vk_mem_alloc.h:3738
                +
                Parameters for incremental defragmentation steps.
                Definition: vk_mem_alloc.h:3724
                +
                uint32_t moveCount
                Definition: vk_mem_alloc.h:3725
                +
                VmaDefragmentationPassMoveInfo * pMoves
                Definition: vk_mem_alloc.h:3726
                +
                Definition: vk_mem_alloc.h:3714
                +
                VkDeviceMemory memory
                Definition: vk_mem_alloc.h:3716
                +
                VkDeviceSize offset
                Definition: vk_mem_alloc.h:3717
                +
                VmaAllocation allocation
                Definition: vk_mem_alloc.h:3715
                +
                Statistics returned by function vmaDefragment().
                Definition: vk_mem_alloc.h:3747
                +
                uint32_t deviceMemoryBlocksFreed
                Number of empty VkDeviceMemory objects that have been released to the system.
                Definition: vk_mem_alloc.h:3755
                +
                VkDeviceSize bytesMoved
                Total number of bytes that have been copied while moving allocations to different places.
                Definition: vk_mem_alloc.h:3749
                +
                VkDeviceSize bytesFreed
                Total number of bytes that have been released to the system by freeing empty VkDeviceMemory objects.
                Definition: vk_mem_alloc.h:3751
                +
                uint32_t allocationsMoved
                Number of allocations that have been moved to different places.
                Definition: vk_mem_alloc.h:3753
                +
                Set of callbacks that the library will call for vkAllocateMemory and vkFreeMemory.
                Definition: vk_mem_alloc.h:2224
                +
                void * pUserData
                Optional, can be null.
                Definition: vk_mem_alloc.h:2230
                +
                PFN_vmaAllocateDeviceMemoryFunction pfnAllocate
                Optional, can be null.
                Definition: vk_mem_alloc.h:2226
                +
                PFN_vmaFreeDeviceMemoryFunction pfnFree
                Optional, can be null.
                Definition: vk_mem_alloc.h:2228
                +
                Describes parameter of created VmaPool.
                Definition: vk_mem_alloc.h:3049
                +
                float priority
                A floating-point value between 0 and 1, indicating the priority of the allocations in this pool relat...
                Definition: vk_mem_alloc.h:3097
                uint32_t memoryTypeIndex
                Vulkan memory type index to allocate this pool from.
                Definition: vk_mem_alloc.h:3052
                +
                VmaPoolCreateFlags flags
                Use combination of VmaPoolCreateFlagBits.
                Definition: vk_mem_alloc.h:3055
                +
                uint32_t frameInUseCount
                Maximum number of additional frames that are in use at the same time as current frame.
                Definition: vk_mem_alloc.h:3091
                VkDeviceSize blockSize
                Size of a single VkDeviceMemory block to be allocated as part of this pool, in bytes....
                Definition: vk_mem_alloc.h:3064
                -
                uint32_t poolCount
                Numer of pools in pPools array.
                Definition: vk_mem_alloc.h:3666
                -
                Definition: vk_mem_alloc.h:3714
                -
                void vmaBuildStatsString(VmaAllocator allocator, char **ppStatsString, VkBool32 detailedMap)
                Builds and returns statistics as string in JSON format.
                -
                void vmaGetAllocationInfo(VmaAllocator allocator, VmaAllocation allocation, VmaAllocationInfo *pAllocationInfo)
                Returns current information about specified allocation and atomically marks it as used in current fra...
                +
                size_t minBlockCount
                Minimum number of blocks to be always allocated in this pool, even if they stay empty.
                Definition: vk_mem_alloc.h:3069
                +
                size_t maxBlockCount
                Maximum number of blocks that can be allocated in this pool. Optional.
                Definition: vk_mem_alloc.h:3077
                +
                Represents custom memory pool.
                +
                Describes parameter of existing VmaPool.
                Definition: vk_mem_alloc.h:3102
                +
                VkDeviceSize size
                Total amount of VkDeviceMemory allocated from Vulkan for this pool, in bytes.
                Definition: vk_mem_alloc.h:3105
                +
                size_t blockCount
                Number of VkDeviceMemory blocks allocated for this pool.
                Definition: vk_mem_alloc.h:3124
                +
                VkDeviceSize unusedRangeSizeMax
                Size of the largest continuous free memory region available for new allocation.
                Definition: vk_mem_alloc.h:3121
                size_t allocationCount
                Number of VmaAllocation objects created from this pool that were not destroyed or lost.
                Definition: vk_mem_alloc.h:3111
                -
                VkFlags VmaAllocatorCreateFlags
                Definition: vk_mem_alloc.h:2348
                -
                void vmaFreeStatsString(VmaAllocator allocator, char *pStatsString)
                -
                VkResult vmaAllocateMemoryForBuffer(VmaAllocator allocator, VkBuffer buffer, const VmaAllocationCreateInfo *pCreateInfo, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
                -
                struct VmaVulkanFunctions VmaVulkanFunctions
                Pointers to some Vulkan functions - a subset used by the library.
                -
                @ VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM
                Definition: vk_mem_alloc.h:2346
                -
                VmaDefragmentationFlagBits
                Flags to be used in vmaDefragmentationBegin(). None at the moment. Reserved for future use.
                Definition: vk_mem_alloc.h:3632
                -
                VkDeviceSize offset
                Offset in VkDeviceMemory object to the beginning of this allocation, in bytes. (deviceMemory,...
                Definition: vk_mem_alloc.h:3255
                -
                VmaAllocationCreateFlagBits
                Flags to be passed as VmaAllocationCreateInfo::flags.
                Definition: vk_mem_alloc.h:2769
                +
                VkDeviceSize unusedSize
                Total number of bytes in the pool not used by any VmaAllocation.
                Definition: vk_mem_alloc.h:3108
                +
                size_t unusedRangeCount
                Number of continuous memory ranges in the pool not used by any VmaAllocation.
                Definition: vk_mem_alloc.h:3114
                +
                Parameters for recording calls to VMA functions. To be used in VmaAllocatorCreateInfo::pRecordSetting...
                Definition: vk_mem_alloc.h:2400
                +
                const char * pFilePath
                Path to the file that should be written by the recording.
                Definition: vk_mem_alloc.h:2410
                +
                VmaRecordFlags flags
                Flags for recording. Use VmaRecordFlagBits enum.
                Definition: vk_mem_alloc.h:2402
                +
                Calculated statistics of memory usage in entire allocator.
                Definition: vk_mem_alloc.h:2580
                +
                VkDeviceSize allocationSizeAvg
                Definition: vk_mem_alloc.h:2591
                +
                VkDeviceSize allocationSizeMax
                Definition: vk_mem_alloc.h:2591
                +
                VkDeviceSize unusedBytes
                Total number of bytes occupied by unused ranges.
                Definition: vk_mem_alloc.h:2590
                +
                VkDeviceSize unusedRangeSizeAvg
                Definition: vk_mem_alloc.h:2592
                +
                uint32_t allocationCount
                Number of VmaAllocation allocation objects allocated.
                Definition: vk_mem_alloc.h:2584
                +
                VkDeviceSize unusedRangeSizeMax
                Definition: vk_mem_alloc.h:2592
                +
                VkDeviceSize usedBytes
                Total number of bytes occupied by all allocations.
                Definition: vk_mem_alloc.h:2588
                +
                uint32_t blockCount
                Number of VkDeviceMemory Vulkan memory blocks allocated.
                Definition: vk_mem_alloc.h:2582
                +
                VkDeviceSize allocationSizeMin
                Definition: vk_mem_alloc.h:2591
                +
                uint32_t unusedRangeCount
                Number of free ranges of memory between allocations.
                Definition: vk_mem_alloc.h:2586
                +
                VkDeviceSize unusedRangeSizeMin
                Definition: vk_mem_alloc.h:2592
                +
                General statistics from current state of Allocator.
                Definition: vk_mem_alloc.h:2597
                +
                VmaStatInfo memoryHeap[VK_MAX_MEMORY_HEAPS]
                Definition: vk_mem_alloc.h:2599
                +
                VmaStatInfo memoryType[VK_MAX_MEMORY_TYPES]
                Definition: vk_mem_alloc.h:2598
                +
                VmaStatInfo total
                Definition: vk_mem_alloc.h:2600
                +
                Pointers to some Vulkan functions - a subset used by the library.
                Definition: vk_mem_alloc.h:2354
                +
                PFN_vkBindImageMemory vkBindImageMemory
                Definition: vk_mem_alloc.h:2364
                +
                PFN_vkCreateImage vkCreateImage
                Definition: vk_mem_alloc.h:2369
                +
                PFN_vkAllocateMemory vkAllocateMemory
                Definition: vk_mem_alloc.h:2357
                +
                PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges
                Definition: vk_mem_alloc.h:2361
                +
                PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements
                Definition: vk_mem_alloc.h:2366
                +
                PFN_vkFreeMemory vkFreeMemory
                Definition: vk_mem_alloc.h:2358
                +
                PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements
                Definition: vk_mem_alloc.h:2365
                +
                PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges
                Definition: vk_mem_alloc.h:2362
                PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties
                Definition: vk_mem_alloc.h:2356
                +
                PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties
                Definition: vk_mem_alloc.h:2355
                +
                PFN_vkDestroyBuffer vkDestroyBuffer
                Definition: vk_mem_alloc.h:2368
                +
                PFN_vkDestroyImage vkDestroyImage
                Definition: vk_mem_alloc.h:2370
                +
                PFN_vkBindBufferMemory vkBindBufferMemory
                Definition: vk_mem_alloc.h:2363
                +
                PFN_vkMapMemory vkMapMemory
                Definition: vk_mem_alloc.h:2359
                +
                PFN_vkUnmapMemory vkUnmapMemory
                Definition: vk_mem_alloc.h:2360
                +
                PFN_vkCmdCopyBuffer vkCmdCopyBuffer
                Definition: vk_mem_alloc.h:2371
                +
                PFN_vkCreateBuffer vkCreateBuffer
                Definition: vk_mem_alloc.h:2367
                +
                VkResult vmaCreateImage(VmaAllocator allocator, const VkImageCreateInfo *pImageCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkImage *pImage, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
                Function similar to vmaCreateBuffer().
                +
                VkResult vmaFindMemoryTypeIndexForImageInfo(VmaAllocator allocator, const VkImageCreateInfo *pImageCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, uint32_t *pMemoryTypeIndex)
                Helps to find memoryTypeIndex, given VkImageCreateInfo and VmaAllocationCreateInfo.
                +
                void vmaDestroyBuffer(VmaAllocator allocator, VkBuffer buffer, VmaAllocation allocation)
                Destroys Vulkan buffer and frees allocated memory.
                +
                VkResult vmaAllocateMemoryForImage(VmaAllocator allocator, VkImage image, const VmaAllocationCreateInfo *pCreateInfo, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
                Function similar to vmaAllocateMemoryForBuffer().
                +
                VkResult vmaResizeAllocation(VmaAllocator allocator, VmaAllocation allocation, VkDeviceSize newSize)
                Deprecated.
                +
                struct VmaPoolCreateInfo VmaPoolCreateInfo
                Describes parameter of created VmaPool.
                +
                void(VKAPI_PTR * PFN_vmaFreeDeviceMemoryFunction)(VmaAllocator allocator, uint32_t memoryType, VkDeviceMemory memory, VkDeviceSize size, void *pUserData)
                Callback function called before vkFreeMemory.
                Definition: vk_mem_alloc.h:2210
                +
                struct VmaRecordSettings VmaRecordSettings
                Parameters for recording calls to VMA functions. To be used in VmaAllocatorCreateInfo::pRecordSetting...
                +
                struct VmaAllocatorInfo VmaAllocatorInfo
                Information about existing VmaAllocator object.
                +
                VkResult vmaEndDefragmentationPass(VmaAllocator allocator, VmaDefragmentationContext context)
                +
                struct VmaAllocationInfo VmaAllocationInfo
                Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().
                +
                #define VMA_RECORDING_ENABLED
                Definition: vk_mem_alloc.h:2031
                +
                VkResult vmaCreateAllocator(const VmaAllocatorCreateInfo *pCreateInfo, VmaAllocator *pAllocator)
                Creates Allocator object.
                +
                struct VmaStats VmaStats
                General statistics from current state of Allocator.
                VkFlags VmaPoolCreateFlags
                Definition: vk_mem_alloc.h:3045
                -
                void vmaCreateLostAllocation(VmaAllocator allocator, VmaAllocation *pAllocation)
                Creates new allocation that is in lost state from the beginning.
                +
                struct VmaDefragmentationInfo VmaDefragmentationInfo
                Deprecated. Optional configuration parameters to be passed to function vmaDefragment().
                +
                VkResult vmaFlushAllocation(VmaAllocator allocator, VmaAllocation allocation, VkDeviceSize offset, VkDeviceSize size)
                Flushes memory of given allocation.
                +
                void vmaFreeStatsString(VmaAllocator allocator, char *pStatsString)
                +
                void vmaCalculateStats(VmaAllocator allocator, VmaStats *pStats)
                Retrieves statistics from current state of the Allocator.
                +
                VkResult vmaDefragmentationBegin(VmaAllocator allocator, const VmaDefragmentationInfo2 *pInfo, VmaDefragmentationStats *pStats, VmaDefragmentationContext *pContext)
                Begins defragmentation process.
                +
                struct VmaAllocationCreateInfo VmaAllocationCreateInfo
                +
                VkResult vmaBindImageMemory(VmaAllocator allocator, VmaAllocation allocation, VkImage image)
                Binds image to allocation.
                +
                VkBool32 vmaTouchAllocation(VmaAllocator allocator, VmaAllocation allocation)
                Returns VK_TRUE if allocation is not lost and atomically marks it as used in current frame.
                +
                struct VmaPoolStats VmaPoolStats
                Describes parameter of existing VmaPool.
                +
                VkResult vmaCheckCorruption(VmaAllocator allocator, uint32_t memoryTypeBits)
                Checks magic number in margins around all allocations in given memory types (in both default and cust...
                +
                VmaRecordFlagBits
                Flags to be used in VmaRecordSettings::flags.
                Definition: vk_mem_alloc.h:2386
                +
                @ VMA_RECORD_FLAG_BITS_MAX_ENUM
                Definition: vk_mem_alloc.h:2394
                +
                @ VMA_RECORD_FLUSH_AFTER_CALL_BIT
                Enables flush after recording every function call.
                Definition: vk_mem_alloc.h:2392
                +
                VmaAllocatorCreateFlagBits
                Flags for created VmaAllocator.
                Definition: vk_mem_alloc.h:2234
                +
                @ VMA_ALLOCATOR_CREATE_AMD_DEVICE_COHERENT_MEMORY_BIT
                Definition: vk_mem_alloc.h:2309
                +
                @ VMA_ALLOCATOR_CREATE_EXTERNALLY_SYNCHRONIZED_BIT
                Allocator and all objects created from it will not be synchronized internally, so you must guarantee ...
                Definition: vk_mem_alloc.h:2239
                +
                @ VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT
                Definition: vk_mem_alloc.h:2291
                +
                @ VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT
                Definition: vk_mem_alloc.h:2327
                +
                @ VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT
                Definition: vk_mem_alloc.h:2279
                +
                @ VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT
                Enables usage of VK_KHR_dedicated_allocation extension.
                Definition: vk_mem_alloc.h:2264
                +
                @ VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM
                Definition: vk_mem_alloc.h:2346
                @ VMA_ALLOCATOR_CREATE_EXT_MEMORY_PRIORITY_BIT
                Definition: vk_mem_alloc.h:2344
                -
                VkResult vmaInvalidateAllocations(VmaAllocator allocator, uint32_t allocationCount, const VmaAllocation *allocations, const VkDeviceSize *offsets, const VkDeviceSize *sizes)
                Invalidates memory of given set of allocations.
                +
                VkFlags VmaAllocationCreateFlags
                Definition: vk_mem_alloc.h:2878
                +
                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.
                +
                void vmaFreeMemory(VmaAllocator allocator, const VmaAllocation allocation)
                Frees memory previously allocated using vmaAllocateMemory(), vmaAllocateMemoryForBuffer(),...
                +
                VmaDefragmentationFlagBits
                Flags to be used in vmaDefragmentationBegin(). None at the moment. Reserved for future use.
                Definition: vk_mem_alloc.h:3632
                +
                @ VMA_DEFRAGMENTATION_FLAG_INCREMENTAL
                Definition: vk_mem_alloc.h:3633
                +
                @ VMA_DEFRAGMENTATION_FLAG_BITS_MAX_ENUM
                Definition: vk_mem_alloc.h:3634
                +
                VkResult vmaBindBufferMemory(VmaAllocator allocator, VmaAllocation allocation, VkBuffer buffer)
                Binds buffer to allocation.
                +
                struct VmaDefragmentationPassInfo VmaDefragmentationPassInfo
                Parameters for incremental defragmentation steps.
                +
                void vmaMakePoolAllocationsLost(VmaAllocator allocator, VmaPool pool, size_t *pLostAllocationCount)
                Marks all allocations in given pool as lost if they are not used in current frame or VmaPoolCreateInf...
                struct VmaDeviceMemoryCallbacks VmaDeviceMemoryCallbacks
                Set of callbacks that the library will call for vkAllocateMemory and vkFreeMemory.
                -
                void vmaGetPhysicalDeviceProperties(VmaAllocator allocator, const VkPhysicalDeviceProperties **ppPhysicalDeviceProperties)
                -
                VmaPool pool
                Pool that this allocation should be created in.
                Definition: vk_mem_alloc.h:2913
                -
                void vmaGetMemoryProperties(VmaAllocator allocator, const VkPhysicalDeviceMemoryProperties **ppPhysicalDeviceMemoryProperties)
                -
                VmaStatInfo total
                Definition: vk_mem_alloc.h:2600
                -
                @ VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT
                Set this flag if the allocation should have its own memory block.
                Definition: vk_mem_alloc.h:2776
                +
                void(VKAPI_PTR * PFN_vmaAllocateDeviceMemoryFunction)(VmaAllocator allocator, uint32_t memoryType, VkDeviceMemory memory, VkDeviceSize size, void *pUserData)
                Callback function called after successful vkAllocateMemory.
                Definition: vk_mem_alloc.h:2203
                +
                VkResult vmaAllocateMemoryForBuffer(VmaAllocator allocator, VkBuffer buffer, const VmaAllocationCreateInfo *pCreateInfo, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
                +
                void vmaFreeMemoryPages(VmaAllocator allocator, size_t allocationCount, const VmaAllocation *pAllocations)
                Frees memory and destroys multiple allocations.
                +
                void vmaGetAllocationInfo(VmaAllocator allocator, VmaAllocation allocation, VmaAllocationInfo *pAllocationInfo)
                Returns current information about specified allocation and atomically marks it as used in current fra...
                +
                void vmaGetMemoryTypeProperties(VmaAllocator allocator, uint32_t memoryTypeIndex, VkMemoryPropertyFlags *pFlags)
                Given Memory Type Index, returns Property Flags of this memory type.
                VkResult vmaDefragmentationEnd(VmaAllocator allocator, VmaDefragmentationContext context)
                Ends defragmentation process.
                -
                @ VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT
                Definition: vk_mem_alloc.h:2279
                -
                VmaDefragmentationFlags flags
                Reserved for future use. Should be 0.
                Definition: vk_mem_alloc.h:3645
                -
                PFN_vkBindImageMemory vkBindImageMemory
                Definition: vk_mem_alloc.h:2364
                -
                VkDeviceSize maxGpuBytesToMove
                Maximum total numbers of bytes that can be copied while moving allocations to different places using ...
                Definition: vk_mem_alloc.h:3697
                -
                Statistics returned by function vmaDefragment().
                Definition: vk_mem_alloc.h:3747
                -
                void vmaDestroyPool(VmaAllocator allocator, VmaPool pool)
                Destroys VmaPool object and frees Vulkan device memory.
                -
                VkDeviceSize size
                Total amount of VkDeviceMemory allocated from Vulkan for this pool, in bytes.
                Definition: vk_mem_alloc.h:3105
                -
                PFN_vkFreeMemory vkFreeMemory
                Definition: vk_mem_alloc.h:2358
                -
                VkFlags VmaRecordFlags
                Definition: vk_mem_alloc.h:2396
                -
                VkResult vmaFlushAllocation(VmaAllocator allocator, VmaAllocation allocation, VkDeviceSize offset, VkDeviceSize size)
                Flushes memory of given allocation.
                +
                VkFlags VmaDefragmentationFlags
                Definition: vk_mem_alloc.h:3636
                +
                VkResult vmaBindBufferMemory2(VmaAllocator allocator, VmaAllocation allocation, VkDeviceSize allocationLocalOffset, VkBuffer buffer, const void *pNext)
                Binds buffer to allocation with additional parameters.
                +
                VmaPoolCreateFlagBits
                Flags to be passed as VmaPoolCreateInfo::flags.
                Definition: vk_mem_alloc.h:2989
                +
                @ VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT
                Enables alternative, linear allocation algorithm in this pool.
                Definition: vk_mem_alloc.h:3024
                +
                @ VMA_POOL_CREATE_FLAG_BITS_MAX_ENUM
                Definition: vk_mem_alloc.h:3043
                +
                @ VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT
                Enables alternative, buddy allocation algorithm in this pool.
                Definition: vk_mem_alloc.h:3035
                +
                @ VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT
                Use this flag if you always allocate only buffers and linear images or only optimal images out of thi...
                Definition: vk_mem_alloc.h:3007
                +
                @ VMA_POOL_CREATE_ALGORITHM_MASK
                Definition: vk_mem_alloc.h:3039
                +
                void vmaUnmapMemory(VmaAllocator allocator, VmaAllocation allocation)
                Unmaps memory represented by given allocation, mapped previously using vmaMapMemory().
                +
                VkResult vmaDefragment(VmaAllocator allocator, const VmaAllocation *pAllocations, size_t allocationCount, VkBool32 *pAllocationsChanged, const VmaDefragmentationInfo *pDefragmentationInfo, VmaDefragmentationStats *pDefragmentationStats)
                Deprecated. Compacts memory by moving allocations.
                +
                struct VmaBudget VmaBudget
                Statistics of current memory usage and available budget, in bytes, for specific memory heap.
                +
                void vmaBuildStatsString(VmaAllocator allocator, char **ppStatsString, VkBool32 detailedMap)
                Builds and returns statistics as string in JSON format.
                +
                VmaMemoryUsage
                Definition: vk_mem_alloc.h:2702
                +
                @ VMA_MEMORY_USAGE_MAX_ENUM
                Definition: vk_mem_alloc.h:2765
                @ VMA_MEMORY_USAGE_CPU_ONLY
                Definition: vk_mem_alloc.h:2733
                -
                Represents single memory allocation.
                @ VMA_MEMORY_USAGE_CPU_COPY
                Definition: vk_mem_alloc.h:2755
                -
                void vmaSetAllocationUserData(VmaAllocator allocator, VmaAllocation allocation, void *pUserData)
                Sets pUserData in given allocation to new value.
                -
                @ VMA_DEFRAGMENTATION_FLAG_INCREMENTAL
                Definition: vk_mem_alloc.h:3633
                -
                const VmaRecordSettings * pRecordSettings
                Parameters for recording of VMA calls. Can be null.
                Definition: vk_mem_alloc.h:2484
                -
                PFN_vkBindBufferMemory vkBindBufferMemory
                Definition: vk_mem_alloc.h:2363
                -
                PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements
                Definition: vk_mem_alloc.h:2365
                -
                VkCommandBuffer commandBuffer
                Optional. Command buffer where GPU copy commands will be posted.
                Definition: vk_mem_alloc.h:3711
                -
                General statistics from current state of Allocator.
                Definition: vk_mem_alloc.h:2597
                -
                size_t minBlockCount
                Minimum number of blocks to be always allocated in this pool, even if they stay empty.
                Definition: vk_mem_alloc.h:3069
                -
                uint32_t vulkanApiVersion
                Optional. The highest version of Vulkan that the application is designed to use.
                Definition: vk_mem_alloc.h:2498
                -
                Calculated statistics of memory usage in entire allocator.
                Definition: vk_mem_alloc.h:2580
                -
                VkDeviceSize bytesFreed
                Total number of bytes that have been released to the system by freeing empty VkDeviceMemory objects.
                Definition: vk_mem_alloc.h:3751
                -
                VkResult vmaDefragment(VmaAllocator allocator, const VmaAllocation *pAllocations, size_t allocationCount, VkBool32 *pAllocationsChanged, const VmaDefragmentationInfo *pDefragmentationInfo, VmaDefragmentationStats *pDefragmentationStats)
                Deprecated. Compacts memory by moving allocations.
                -
                uint32_t moveCount
                Definition: vk_mem_alloc.h:3725
                +
                @ VMA_MEMORY_USAGE_GPU_TO_CPU
                Definition: vk_mem_alloc.h:2749
                +
                @ VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED
                Definition: vk_mem_alloc.h:2763
                +
                @ VMA_MEMORY_USAGE_CPU_TO_GPU
                Definition: vk_mem_alloc.h:2740
                @ VMA_MEMORY_USAGE_GPU_ONLY
                Definition: vk_mem_alloc.h:2723
                +
                @ VMA_MEMORY_USAGE_UNKNOWN
                Definition: vk_mem_alloc.h:2706
                +
                VkResult vmaBindImageMemory2(VmaAllocator allocator, VmaAllocation allocation, VkDeviceSize allocationLocalOffset, VkImage image, const void *pNext)
                Binds image to allocation with additional parameters.
                +
                void vmaDestroyAllocator(VmaAllocator allocator)
                Destroys allocator object.
                +
                VkResult vmaInvalidateAllocation(VmaAllocator allocator, VmaAllocation allocation, VkDeviceSize offset, VkDeviceSize size)
                Invalidates memory of given allocation.
                +
                VkResult vmaInvalidateAllocations(VmaAllocator allocator, uint32_t allocationCount, const VmaAllocation *allocations, const VkDeviceSize *offsets, const VkDeviceSize *sizes)
                Invalidates memory of given set of allocations.
                +
                void vmaGetMemoryProperties(VmaAllocator allocator, const VkPhysicalDeviceMemoryProperties **ppPhysicalDeviceMemoryProperties)
                +
                struct VmaVulkanFunctions VmaVulkanFunctions
                Pointers to some Vulkan functions - a subset used by the library.
                +
                VkResult vmaAllocateMemory(VmaAllocator allocator, const VkMemoryRequirements *pVkMemoryRequirements, const VmaAllocationCreateInfo *pCreateInfo, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
                General purpose memory allocation.
                VkResult vmaBeginDefragmentationPass(VmaAllocator allocator, VmaDefragmentationContext context, VmaDefragmentationPassInfo *pInfo)
                -
                VkResult vmaFindMemoryTypeIndex(VmaAllocator allocator, uint32_t memoryTypeBits, const VmaAllocationCreateInfo *pAllocationCreateInfo, uint32_t *pMemoryTypeIndex)
                Helps to find memoryTypeIndex, given memoryTypeBits and VmaAllocationCreateInfo.
                VkResult vmaFlushAllocations(VmaAllocator allocator, uint32_t allocationCount, const VmaAllocation *allocations, const VkDeviceSize *offsets, const VkDeviceSize *sizes)
                Flushes memory of given set of allocations.
                -
                VkResult vmaCreatePool(VmaAllocator allocator, const VmaPoolCreateInfo *pCreateInfo, VmaPool *pPool)
                Allocates Vulkan device memory and creates VmaPool object.
                -
                VkDeviceSize unusedBytes
                Total number of bytes occupied by unused ranges.
                Definition: vk_mem_alloc.h:2590
                -
                @ VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT
                Definition: vk_mem_alloc.h:2327
                +
                VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
                +
                VkFlags VmaAllocatorCreateFlags
                Definition: vk_mem_alloc.h:2348
                VkResult vmaAllocateMemoryPages(VmaAllocator allocator, const VkMemoryRequirements *pVkMemoryRequirements, const VmaAllocationCreateInfo *pCreateInfo, size_t allocationCount, VmaAllocation *pAllocations, VmaAllocationInfo *pAllocationInfo)
                General purpose memory allocation for multiple allocation objects at once.
                -
                VkDeviceSize usedBytes
                Total number of bytes occupied by all allocations.
                Definition: vk_mem_alloc.h:2588
                -
                const VkAllocationCallbacks * pAllocationCallbacks
                Custom CPU memory allocation callbacks. Optional.
                Definition: vk_mem_alloc.h:2429
                -
                VmaAllocatorCreateFlagBits
                Flags for created VmaAllocator.
                Definition: vk_mem_alloc.h:2234
                -
                VkResult vmaAllocateMemoryForImage(VmaAllocator allocator, VkImage image, const VmaAllocationCreateInfo *pCreateInfo, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
                Function similar to vmaAllocateMemoryForBuffer().
                -
                size_t maxBlockCount
                Maximum number of blocks that can be allocated in this pool. Optional.
                Definition: vk_mem_alloc.h:3077
                -
                Describes parameter of created VmaPool.
                Definition: vk_mem_alloc.h:3049
                -
                PFN_vmaAllocateDeviceMemoryFunction pfnAllocate
                Optional, can be null.
                Definition: vk_mem_alloc.h:2226
                -
                Represents custom memory pool.
                -
                @ VMA_MEMORY_USAGE_GPU_TO_CPU
                Definition: vk_mem_alloc.h:2749
                -
                @ VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT
                Definition: vk_mem_alloc.h:2820
                -
                VmaPoolCreateFlags flags
                Use combination of VmaPoolCreateFlagBits.
                Definition: vk_mem_alloc.h:3055
                -
                @ VMA_MEMORY_USAGE_MAX_ENUM
                Definition: vk_mem_alloc.h:2765
                -
                uint32_t allocationCount
                Number of VmaAllocation allocation objects allocated.
                Definition: vk_mem_alloc.h:2584
                -
                PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges
                Definition: vk_mem_alloc.h:2362
                -
                VkResult vmaAllocateMemory(VmaAllocator allocator, const VkMemoryRequirements *pVkMemoryRequirements, const VmaAllocationCreateInfo *pCreateInfo, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
                General purpose memory allocation.
                -
                Parameters for defragmentation.
                Definition: vk_mem_alloc.h:3642
                -
                VkDeviceSize maxBytesToMove
                Maximum total numbers of bytes that can be copied while moving allocations to different places.
                Definition: vk_mem_alloc.h:3738
                -
                VkDeviceSize blockBytes
                Sum size of all VkDeviceMemory blocks allocated from particular heap, in bytes.
                Definition: vk_mem_alloc.h:2622
                -
                Information about existing VmaAllocator object.
                Definition: vk_mem_alloc.h:2513
                -
                @ VMA_POOL_CREATE_FLAG_BITS_MAX_ENUM
                Definition: vk_mem_alloc.h:3043
                -
                VkMemoryPropertyFlags requiredFlags
                Flags that must be set in a Memory Type chosen for an allocation.
                Definition: vk_mem_alloc.h:2894
                +
                VkResult vmaCheckPoolCorruption(VmaAllocator allocator, VmaPool pool)
                Checks magic number in margins around all allocations in given memory pool in search for corruptions.
                +
                VkResult vmaMapMemory(VmaAllocator allocator, VmaAllocation allocation, void **ppData)
                Maps memory represented by given allocation and returns pointer to it.
                +
                struct VmaDefragmentationPassMoveInfo VmaDefragmentationPassMoveInfo
                +
                struct VmaDefragmentationInfo2 VmaDefragmentationInfo2
                Parameters for defragmentation.
                +
                struct VmaDefragmentationStats VmaDefragmentationStats
                Statistics returned by function vmaDefragment().
                +
                VmaAllocationCreateFlagBits
                Flags to be passed as VmaAllocationCreateInfo::flags.
                Definition: vk_mem_alloc.h:2769
                +
                @ VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT
                Definition: vk_mem_alloc.h:2864
                +
                @ 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:2800
                +
                @ VMA_ALLOCATION_CREATE_DONT_BIND_BIT
                Definition: vk_mem_alloc.h:2837
                +
                @ VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT
                Definition: vk_mem_alloc.h:2857
                +
                @ VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT
                Set this flag if the allocation should have its own memory block.
                Definition: vk_mem_alloc.h:2776
                +
                @ VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT
                Definition: vk_mem_alloc.h:2831
                +
                @ VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT
                Definition: vk_mem_alloc.h:2813
                @ VMA_ALLOCATION_CREATE_STRATEGY_MIN_FRAGMENTATION_BIT
                Definition: vk_mem_alloc.h:2867
                -
                struct VmaStatInfo VmaStatInfo
                Calculated statistics of memory usage in entire allocator.
                -
                VkDeviceSize allocationSizeAvg
                Definition: vk_mem_alloc.h:2591
                -
                void vmaDestroyAllocator(VmaAllocator allocator)
                Destroys allocator object.
                -
                const VmaDeviceMemoryCallbacks * pDeviceMemoryCallbacks
                Informative callbacks for vkAllocateMemory, vkFreeMemory. Optional.
                Definition: vk_mem_alloc.h:2432
                +
                @ VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT
                Definition: vk_mem_alloc.h:2820
                +
                @ VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT
                Definition: vk_mem_alloc.h:2846
                +
                @ VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT
                Set this flag to only try to allocate from existing VkDeviceMemory blocks and never create new such b...
                Definition: vk_mem_alloc.h:2787
                +
                @ VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT
                Definition: vk_mem_alloc.h:2861
                @ VMA_ALLOCATION_CREATE_STRATEGY_MASK
                Definition: vk_mem_alloc.h:2871
                -
                VkDevice device
                Vulkan device.
                Definition: vk_mem_alloc.h:2423
                -
                VkResult vmaFindMemoryTypeIndexForImageInfo(VmaAllocator allocator, const VkImageCreateInfo *pImageCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, uint32_t *pMemoryTypeIndex)
                Helps to find memoryTypeIndex, given VkImageCreateInfo and VmaAllocationCreateInfo.
                -
                VkResult vmaMapMemory(VmaAllocator allocator, VmaAllocation allocation, void **ppData)
                Maps memory represented by given allocation and returns pointer to it.
                -
                VkResult vmaBindBufferMemory(VmaAllocator allocator, VmaAllocation allocation, VkBuffer buffer)
                Binds buffer to allocation.
                -
                const VkDeviceSize * pHeapSizeLimit
                Either null or a pointer to an array of limits on maximum number of bytes that can be allocated out o...
                Definition: vk_mem_alloc.h:2471
                -
                VmaAllocation allocation
                Definition: vk_mem_alloc.h:3715
                -
                VkResult vmaCreateImage(VmaAllocator allocator, const VkImageCreateInfo *pImageCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkImage *pImage, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
                Function similar to vmaCreateBuffer().
                +
                @ VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT
                Definition: vk_mem_alloc.h:2826
                +
                @ VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT
                Definition: vk_mem_alloc.h:2841
                +
                @ VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT
                Definition: vk_mem_alloc.h:2850
                +
                @ VMA_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM
                Definition: vk_mem_alloc.h:2876
                +
                void vmaSetPoolName(VmaAllocator allocator, VmaPool pool, const char *pName)
                Sets name of a custom pool.
                +
                void vmaSetCurrentFrameIndex(VmaAllocator allocator, uint32_t frameIndex)
                Sets index of the current frame.
                +
                void vmaDestroyImage(VmaAllocator allocator, VkImage image, VmaAllocation allocation)
                Destroys Vulkan image and frees allocated memory.
                +
                void vmaCreateLostAllocation(VmaAllocator allocator, VmaAllocation *pAllocation)
                Creates new allocation that is in lost state from the beginning.
                VkResult vmaFindMemoryTypeIndexForBufferInfo(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, uint32_t *pMemoryTypeIndex)
                Helps to find memoryTypeIndex, given VkBufferCreateInfo and VmaAllocationCreateInfo.
                -
                VkDeviceSize budget
                Estimated amount of memory available to the program, in bytes.
                Definition: vk_mem_alloc.h:2654
                -
                struct VmaPoolStats VmaPoolStats
                Describes parameter of existing VmaPool.
                -
                struct VmaDefragmentationPassInfo VmaDefragmentationPassInfo
                Parameters for incremental defragmentation steps.
                -
                Pointers to some Vulkan functions - a subset used by the library.
                Definition: vk_mem_alloc.h:2354
                -
                void * pMappedData
                Pointer to the beginning of this allocation as mapped data.
                Definition: vk_mem_alloc.h:3275
                -
                VmaAllocatorCreateFlags flags
                Flags for created allocator. Use VmaAllocatorCreateFlagBits enum.
                Definition: vk_mem_alloc.h:2417
                -
                VkFlags VmaDefragmentationFlags
                Definition: vk_mem_alloc.h:3636
                -
                const VmaAllocation * pAllocations
                Pointer to array of allocations that can be defragmented.
                Definition: vk_mem_alloc.h:3657
                void vmaGetPoolStats(VmaAllocator allocator, VmaPool pool, VmaPoolStats *pPoolStats)
                Retrieves statistics of existing VmaPool object.
                -
                PFN_vkCreateImage vkCreateImage
                Definition: vk_mem_alloc.h:2369
                -
                void * pUserData
                Optional, can be null.
                Definition: vk_mem_alloc.h:2230
                -
                struct VmaRecordSettings VmaRecordSettings
                Parameters for recording calls to VMA functions. To be used in VmaAllocatorCreateInfo::pRecordSetting...
                -
                VkDeviceSize unusedRangeSizeAvg
                Definition: vk_mem_alloc.h:2592
                -
                @ VMA_MEMORY_USAGE_CPU_TO_GPU
                Definition: vk_mem_alloc.h:2740
                -
                @ VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT
                Definition: vk_mem_alloc.h:2864
                -
                @ VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT
                Definition: vk_mem_alloc.h:2861
                -
                @ VMA_ALLOCATOR_CREATE_AMD_DEVICE_COHERENT_MEMORY_BIT
                Definition: vk_mem_alloc.h:2309
                -
                struct VmaDefragmentationStats VmaDefragmentationStats
                Statistics returned by function vmaDefragment().
                -
                VmaMemoryUsage usage
                Intended usage of memory.
                Definition: vk_mem_alloc.h:2889
                -
                VkDeviceSize allocationSizeMin
                Definition: vk_mem_alloc.h:2591
                -
                VkResult vmaBindBufferMemory2(VmaAllocator allocator, VmaAllocation allocation, VkDeviceSize allocationLocalOffset, VkBuffer buffer, const void *pNext)
                Binds buffer to allocation with additional parameters.
                -
                VkDeviceSize size
                Size of this allocation, in bytes.
                Definition: vk_mem_alloc.h:3266
                -
                VmaRecordFlags flags
                Flags for recording. Use VmaRecordFlagBits enum.
                Definition: vk_mem_alloc.h:2402
                -
                PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges
                Definition: vk_mem_alloc.h:2361
                -
                void * pUserData
                Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vma...
                Definition: vk_mem_alloc.h:3280
                -
                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:2927
                -
                void vmaMakePoolAllocationsLost(VmaAllocator allocator, VmaPool pool, size_t *pLostAllocationCount)
                Marks all allocations in given pool as lost if they are not used in current frame or VmaPoolCreateInf...
                -
                @ VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT
                Use this flag if you always allocate only buffers and linear images or only optimal images out of thi...
                Definition: vk_mem_alloc.h:3007
                -
                VkResult vmaInvalidateAllocation(VmaAllocator allocator, VmaAllocation allocation, VkDeviceSize offset, VkDeviceSize size)
                Invalidates memory of given allocation.
                -
                VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
                -
                VmaStatInfo memoryHeap[VK_MAX_MEMORY_HEAPS]
                Definition: vk_mem_alloc.h:2599
                -
                const VmaVulkanFunctions * pVulkanFunctions
                Pointers to Vulkan functions. Can be null.
                Definition: vk_mem_alloc.h:2477
                -
                size_t blockCount
                Number of VkDeviceMemory blocks allocated for this pool.
                Definition: vk_mem_alloc.h:3124
                -
                VkResult vmaCreateAllocator(const VmaAllocatorCreateInfo *pCreateInfo, VmaAllocator *pAllocator)
                Creates Allocator object.
                -
                VkResult vmaCheckCorruption(VmaAllocator allocator, uint32_t memoryTypeBits)
                Checks magic number in margins around all allocations in given memory types (in both default and cust...
                -
                Parameters for incremental defragmentation steps.
                Definition: vk_mem_alloc.h:3724
                -
                VmaStatInfo memoryType[VK_MAX_MEMORY_TYPES]
                Definition: vk_mem_alloc.h:2598
                -
                VkFlags VmaAllocationCreateFlags
                Definition: vk_mem_alloc.h:2878
                -
                VkInstance instance
                Handle to Vulkan instance object.
                Definition: vk_mem_alloc.h:2489
                -
                @ VMA_MEMORY_USAGE_UNKNOWN
                Definition: vk_mem_alloc.h:2706
                -
                uint32_t maxGpuAllocationsToMove
                Maximum number of allocations that can be moved to a different place using transfers on GPU side,...
                Definition: vk_mem_alloc.h:3702
                -
                PFN_vkDestroyBuffer vkDestroyBuffer
                Definition: vk_mem_alloc.h:2368
                -
                uint32_t frameInUseCount
                Maximum number of additional frames that are in use at the same time as current frame.
                Definition: vk_mem_alloc.h:3091
                -
                PFN_vkDestroyImage vkDestroyImage
                Definition: vk_mem_alloc.h:2370
                -
                VkDeviceSize maxCpuBytesToMove
                Maximum total numbers of bytes that can be copied while moving allocations to different places using ...
                Definition: vk_mem_alloc.h:3687
                -
                struct VmaPoolCreateInfo VmaPoolCreateInfo
                Describes parameter of created VmaPool.
                +
                void vmaGetBudget(VmaAllocator allocator, VmaBudget *pBudget)
                Retrieves information about current memory budget for all memory heaps.
                +
                struct VmaStatInfo VmaStatInfo
                Calculated statistics of memory usage in entire allocator.
                +
                void vmaGetPhysicalDeviceProperties(VmaAllocator allocator, const VkPhysicalDeviceProperties **ppPhysicalDeviceProperties)
                +
                VkResult vmaFindMemoryTypeIndex(VmaAllocator allocator, uint32_t memoryTypeBits, const VmaAllocationCreateInfo *pAllocationCreateInfo, uint32_t *pMemoryTypeIndex)
                Helps to find memoryTypeIndex, given memoryTypeBits and VmaAllocationCreateInfo.
                void vmaGetPoolName(VmaAllocator allocator, VmaPool pool, const char **ppName)
                Retrieves name of a custom pool.
                -
                uint32_t memoryType
                Memory type index that this allocation was allocated from.
                Definition: vk_mem_alloc.h:3236
                -
                void vmaDestroyImage(VmaAllocator allocator, VkImage image, VmaAllocation allocation)
                Destroys Vulkan image and frees allocated memory.
                -
                @ 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:2800
                -
                void vmaCalculateStats(VmaAllocator allocator, VmaStats *pStats)
                Retrieves statistics from current state of the Allocator.
                -
                void vmaDestroyBuffer(VmaAllocator allocator, VkBuffer buffer, VmaAllocation allocation)
                Destroys Vulkan buffer and frees allocated memory.
                -
                PFN_vkCreateBuffer vkCreateBuffer
                Definition: vk_mem_alloc.h:2367
                -
                void(VKAPI_PTR * PFN_vmaAllocateDeviceMemoryFunction)(VmaAllocator allocator, uint32_t memoryType, VkDeviceMemory memory, VkDeviceSize size, void *pUserData)
                Callback function called after successful vkAllocateMemory.
                Definition: vk_mem_alloc.h:2203
                +
                VkFlags VmaRecordFlags
                Definition: vk_mem_alloc.h:2396
                +
                void vmaSetAllocationUserData(VmaAllocator allocator, VmaAllocation allocation, void *pUserData)
                Sets pUserData in given allocation to new value.
                void vmaGetAllocatorInfo(VmaAllocator allocator, VmaAllocatorInfo *pAllocatorInfo)
                Returns information about existing VmaAllocator object - handle to Vulkan device etc.
                -
                size_t unusedRangeCount
                Number of continuous memory ranges in the pool not used by any VmaAllocation.
                Definition: vk_mem_alloc.h:3114
                -
                VmaPoolCreateFlagBits
                Flags to be passed as VmaPoolCreateInfo::flags.
                Definition: vk_mem_alloc.h:2989
                -
                struct VmaAllocationInfo VmaAllocationInfo
                Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().
                -
                VkDeviceSize bytesMoved
                Total number of bytes that have been copied while moving allocations to different places.
                Definition: vk_mem_alloc.h:3749
                -
                VkDeviceSize unusedRangeSizeMin
                Definition: vk_mem_alloc.h:2592
                -
                @ VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT
                Definition: vk_mem_alloc.h:2831
                -
                VkResult vmaCheckPoolCorruption(VmaAllocator allocator, VmaPool pool)
                Checks magic number in margins around all allocations in given memory pool in search for corruptions.
                -
                VkResult vmaBindImageMemory(VmaAllocator allocator, VmaAllocation allocation, VkImage image)
                Binds image to allocation.
                -
                void(VKAPI_PTR * PFN_vmaFreeDeviceMemoryFunction)(VmaAllocator allocator, uint32_t memoryType, VkDeviceMemory memory, VkDeviceSize size, void *pUserData)
                Callback function called before vkFreeMemory.
                Definition: vk_mem_alloc.h:2210
                -
                struct VmaDefragmentationPassMoveInfo VmaDefragmentationPassMoveInfo
                -
                VmaAllocationCreateFlags flags
                Use VmaAllocationCreateFlagBits enum.
                Definition: vk_mem_alloc.h:2883
                -
                PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements
                Definition: vk_mem_alloc.h:2366
                -
                void vmaGetBudget(VmaAllocator allocator, VmaBudget *pBudget)
                Retrieves information about current memory budget for all memory heaps.
                -
                Definition: vk_mem_alloc.h:2881
                -
                VkMemoryPropertyFlags preferredFlags
                Flags that preferably should be set in a memory type chosen for an allocation.
                Definition: vk_mem_alloc.h:2899
                -
                VkResult vmaDefragmentationBegin(VmaAllocator allocator, const VmaDefragmentationInfo2 *pInfo, VmaDefragmentationStats *pStats, VmaDefragmentationContext *pContext)
                Begins defragmentation process.
                -
                VkResult vmaBindImageMemory2(VmaAllocator allocator, VmaAllocation allocation, VkDeviceSize allocationLocalOffset, VkImage image, const void *pNext)
                Binds image to allocation with additional parameters.
                -
                struct VmaBudget VmaBudget
                Statistics of current memory usage and available budget, in bytes, for specific memory heap.
                -
                VkResult vmaEndDefragmentationPass(VmaAllocator allocator, VmaDefragmentationContext context)
                -
                VkBool32 * pAllocationsChanged
                Optional, output. Pointer to array that will be filled with information whether the allocation at cer...
                Definition: vk_mem_alloc.h:3663
                -
                uint32_t allocationsMoved
                Number of allocations that have been moved to different places.
                Definition: vk_mem_alloc.h:3753
                -
                uint32_t memoryTypeBits
                Bitmask containing one bit set for every memory type acceptable for this allocation.
                Definition: vk_mem_alloc.h:2907
                -
                VkPhysicalDevice physicalDevice
                Handle to Vulkan physical device object.
                Definition: vk_mem_alloc.h:2523
                -
                uint32_t deviceMemoryBlocksFreed
                Number of empty VkDeviceMemory objects that have been released to the system.
                Definition: vk_mem_alloc.h:3755
                -
                const char * pFilePath
                Path to the file that should be written by the recording.
                Definition: vk_mem_alloc.h:2410
                -
                VkDeviceSize allocationSizeMax
                Definition: vk_mem_alloc.h:2591
                -
                Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().
                Definition: vk_mem_alloc.h:3231
                -
                @ VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT
                Enables alternative, buddy allocation algorithm in this pool.
                Definition: vk_mem_alloc.h:3035
                -
                struct VmaAllocatorInfo VmaAllocatorInfo
                Information about existing VmaAllocator object.
                -
                VkDeviceSize allocationBytes
                Sum size of all allocations created in particular heap, in bytes.
                Definition: vk_mem_alloc.h:2633
                -
                @ VMA_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM
                Definition: vk_mem_alloc.h:2876
                -
                Represents Opaque object that represents started defragmentation process.
                -
                @ VMA_POOL_CREATE_ALGORITHM_MASK
                Definition: vk_mem_alloc.h:3039
                -
                uint32_t maxCpuAllocationsToMove
                Maximum number of allocations that can be moved to a different place using transfers on CPU side,...
                Definition: vk_mem_alloc.h:3692
                -
                float priority
                A floating-point value between 0 and 1, indicating the priority of the allocations in this pool relat...
                Definition: vk_mem_alloc.h:3097
                -
                void vmaFreeMemory(VmaAllocator allocator, const VmaAllocation allocation)
                Frees memory previously allocated using vmaAllocateMemory(), vmaAllocateMemoryForBuffer(),...
                -
                Deprecated. Optional configuration parameters to be passed to function vmaDefragment().
                Definition: vk_mem_alloc.h:3733
                -
                @ VMA_ALLOCATION_CREATE_DONT_BIND_BIT
                Definition: vk_mem_alloc.h:2837
                -
                struct VmaDefragmentationInfo2 VmaDefragmentationInfo2
                Parameters for defragmentation.
                + diff --git a/docs/html/vk_amd_device_coherent_memory.html b/docs/html/vk_amd_device_coherent_memory.html index 5931bbfe..54d35373 100644 --- a/docs/html/vk_amd_device_coherent_memory.html +++ b/docs/html/vk_amd_device_coherent_memory.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VK_AMD_device_coherent_memory @@ -29,10 +29,10 @@ - + @@ -94,7 +94,7 @@

                diff --git a/docs/html/vk_khr_dedicated_allocation.html b/docs/html/vk_khr_dedicated_allocation.html index 2462d73a..75d02384 100644 --- a/docs/html/vk_khr_dedicated_allocation.html +++ b/docs/html/vk_khr_dedicated_allocation.html @@ -3,7 +3,7 @@ - + Vulkan Memory Allocator: VK_KHR_dedicated_allocation @@ -29,10 +29,10 @@ - + @@ -78,12 +78,14 @@

              If you enabled these extensions:

              2 . Use VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT flag when creating your VmaAllocator`to inform the library that you enabled required extensions and you want the library to use them.

              -
              +
              vmaCreateAllocator(&allocatorInfo, &allocator);
              +
              VkResult vmaCreateAllocator(const VmaAllocatorCreateInfo *pCreateInfo, VmaAllocator *pAllocator)
              Creates Allocator object.
              +
              @ VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT
              Enables usage of VK_KHR_dedicated_allocation extension.
              Definition: vk_mem_alloc.h:2264

              That's all. The extension will be automatically used whenever you create a buffer using vmaCreateBuffer() or image using vmaCreateImage().

              When using the extension together with Vulkan Validation Layer, you will receive warnings like this:

              vkBindBufferMemory(): Binding memory to buffer 0x33 but vkGetBufferMemoryRequirements() has not been called on that buffer.
              -

              It is OK, you should just ignore it. It happens because you use function vkGetBufferMemoryRequirements2KHR() instead of standard vkGetBufferMemoryRequirements(), while the validation layer seems to be unaware of it.

              +

              It is OK, you should just ignore it. It happens because you use function vkGetBufferMemoryRequirements2KHR() instead of standard vkGetBufferMemoryRequirements(), while the validation layer seems to be unaware of it.

              To learn more about this extension, see:

              -
              @ VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT
              Enables usage of VK_KHR_dedicated_allocation extension.
              Definition: vk_mem_alloc.h:2264
              -
              VmaAllocatorCreateFlags flags
              Flags for created allocator. Use VmaAllocatorCreateFlagBits enum.
              Definition: vk_mem_alloc.h:2417
              -
              VkResult vmaCreateAllocator(const VmaAllocatorCreateInfo *pCreateInfo, VmaAllocator *pAllocator)
              Creates Allocator object.
              diff --git a/src/Common.cpp b/src/Common.cpp index 246acaa6..b4572fed 100644 --- a/src/Common.cpp +++ b/src/Common.cpp @@ -1,5 +1,5 @@ // -// Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Common.h b/src/Common.h index 19c0297a..bbcce338 100644 --- a/src/Common.h +++ b/src/Common.h @@ -1,5 +1,5 @@ // -// Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Shaders/Shader.frag b/src/Shaders/Shader.frag index bbe754b0..207ec8bc 100644 --- a/src/Shaders/Shader.frag +++ b/src/Shaders/Shader.frag @@ -1,5 +1,5 @@ // -// Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Shaders/Shader.vert b/src/Shaders/Shader.vert index e62544f4..7ef5ddbd 100644 --- a/src/Shaders/Shader.vert +++ b/src/Shaders/Shader.vert @@ -1,5 +1,5 @@ // -// Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Shaders/SparseBindingTest.comp b/src/Shaders/SparseBindingTest.comp index f6152785..b94027d5 100644 --- a/src/Shaders/SparseBindingTest.comp +++ b/src/Shaders/SparseBindingTest.comp @@ -1,5 +1,5 @@ // -// Copyright (c) 2018-2020 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2018-2021 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/SparseBindingTest.cpp b/src/SparseBindingTest.cpp index 3c636418..e7bc5897 100644 --- a/src/SparseBindingTest.cpp +++ b/src/SparseBindingTest.cpp @@ -1,5 +1,5 @@ // -// Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/SparseBindingTest.h b/src/SparseBindingTest.h index 3b7a6e18..98087fa7 100644 --- a/src/SparseBindingTest.h +++ b/src/SparseBindingTest.h @@ -1,5 +1,5 @@ // -// Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Tests.cpp b/src/Tests.cpp index e5ec4c1b..ff2136d5 100644 --- a/src/Tests.cpp +++ b/src/Tests.cpp @@ -1,5 +1,5 @@ // -// Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/Tests.h b/src/Tests.h index d259fa94..01cf1a87 100644 --- a/src/Tests.h +++ b/src/Tests.h @@ -1,5 +1,5 @@ // -// Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/VmaReplay/Common.cpp b/src/VmaReplay/Common.cpp index b2bedf18..e7880a93 100644 --- a/src/VmaReplay/Common.cpp +++ b/src/VmaReplay/Common.cpp @@ -1,5 +1,5 @@ // -// Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/VmaReplay/Common.h b/src/VmaReplay/Common.h index 3f966c9e..e42b47b0 100644 --- a/src/VmaReplay/Common.h +++ b/src/VmaReplay/Common.h @@ -1,5 +1,5 @@ // -// Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/VmaReplay/Constants.cpp b/src/VmaReplay/Constants.cpp index 28d9c3b7..6d2b15a0 100644 --- a/src/VmaReplay/Constants.cpp +++ b/src/VmaReplay/Constants.cpp @@ -1,5 +1,5 @@ // -// Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/VmaReplay/Constants.h b/src/VmaReplay/Constants.h index 5db08583..03b76ff9 100644 --- a/src/VmaReplay/Constants.h +++ b/src/VmaReplay/Constants.h @@ -1,5 +1,5 @@ // -// Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/VmaReplay/VmaReplay.cpp b/src/VmaReplay/VmaReplay.cpp index 774f0702..2fac59eb 100644 --- a/src/VmaReplay/VmaReplay.cpp +++ b/src/VmaReplay/VmaReplay.cpp @@ -1,5 +1,5 @@ // -// Copyright (c) 2018-2020 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2018-2021 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/VmaReplay/VmaUsage.cpp b/src/VmaReplay/VmaUsage.cpp index 20555a4d..6353bcf7 100644 --- a/src/VmaReplay/VmaUsage.cpp +++ b/src/VmaReplay/VmaUsage.cpp @@ -1,5 +1,5 @@ // -// Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/VmaReplay/VmaUsage.h b/src/VmaReplay/VmaUsage.h index 5c1b4815..5a62bd68 100644 --- a/src/VmaReplay/VmaUsage.h +++ b/src/VmaReplay/VmaUsage.h @@ -1,5 +1,5 @@ // -// Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/VmaUsage.cpp b/src/VmaUsage.cpp index 5dc0ded2..cd2d783b 100644 --- a/src/VmaUsage.cpp +++ b/src/VmaUsage.cpp @@ -1,5 +1,5 @@ // -// Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/VmaUsage.h b/src/VmaUsage.h index 0e007249..8c8e4349 100644 --- a/src/VmaUsage.h +++ b/src/VmaUsage.h @@ -1,5 +1,5 @@ // -// Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/VulkanSample.cpp b/src/VulkanSample.cpp index 6b04dfdd..3cfe0ed6 100644 --- a/src/VulkanSample.cpp +++ b/src/VulkanSample.cpp @@ -1,5 +1,5 @@ // -// Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal diff --git a/src/vk_mem_alloc.h b/src/vk_mem_alloc.h index 267c797d..c61e80c6 100644 --- a/src/vk_mem_alloc.h +++ b/src/vk_mem_alloc.h @@ -1,5 +1,5 @@ // -// Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. +// Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -25,9 +25,9 @@ /** \mainpage Vulkan Memory Allocator -Version 3.0.0-development (2020-11-03) +Version 3.0.0-development (2021-02-16) -Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. \n +Copyright (c) 2017-2021 Advanced Micro Devices, Inc. All rights reserved. \n License: MIT Documentation of all members: vk_mem_alloc.h diff --git a/tools/VmaDumpVis/VmaDumpVis.py b/tools/VmaDumpVis/VmaDumpVis.py index 519ee30c..6b870ab5 100644 --- a/tools/VmaDumpVis/VmaDumpVis.py +++ b/tools/VmaDumpVis/VmaDumpVis.py @@ -1,5 +1,5 @@ # -# Copyright (c) 2018-2020 Advanced Micro Devices, Inc. All rights reserved. +# Copyright (c) 2018-2021 Advanced Micro Devices, Inc. All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal