Bump version number to 3.0.0-development as we broken backward compatibility

Also rebuilt the docs.
diff --git a/docs/html/allocation_annotation.html b/docs/html/allocation_annotation.html
index 84666ff..3bda577 100644
--- a/docs/html/allocation_annotation.html
+++ b/docs/html/allocation_annotation.html
@@ -116,18 +116,18 @@
 <dl class="section note"><dt>Note</dt><dd>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. </dd></dl>
 </div></div><!-- contents -->
 </div><!-- PageDoc -->
-<div class="ttc" id="avk__mem__alloc_8h_html_ad9889c10c798b040d59c92f257cae597aa6f24f821cd6a7c5e4a443f7bf59c520"><div class="ttname"><a href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597aa6f24f821cd6a7c5e4a443f7bf59c520">VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT</a></div><div class="ttdeci">@ VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2569</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html_a8259e85c272683434f4abb4ddddffe19"><div class="ttname"><a href="struct_vma_allocation_create_info.html#a8259e85c272683434f4abb4ddddffe19">VmaAllocationCreateInfo::pUserData</a></div><div class="ttdeci">void * pUserData</div><div class="ttdoc">Custom general-purpose pointer that will be stored in VmaAllocation, can be read as VmaAllocationInfo...</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2663</div></div>
+<div class="ttc" id="avk__mem__alloc_8h_html_ad9889c10c798b040d59c92f257cae597aa6f24f821cd6a7c5e4a443f7bf59c520"><div class="ttname"><a href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597aa6f24f821cd6a7c5e4a443f7bf59c520">VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT</a></div><div class="ttdeci">@ VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2559</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html_a8259e85c272683434f4abb4ddddffe19"><div class="ttname"><a href="struct_vma_allocation_create_info.html#a8259e85c272683434f4abb4ddddffe19">VmaAllocationCreateInfo::pUserData</a></div><div class="ttdeci">void * pUserData</div><div class="ttdoc">Custom general-purpose pointer that will be stored in VmaAllocation, can be read as VmaAllocationInfo...</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2653</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_a86dd08aba8633bfa4ad0df2e76481d8b"><div class="ttname"><a href="vk__mem__alloc_8h.html#a86dd08aba8633bfa4ad0df2e76481d8b">vmaGetAllocationInfo</a></div><div class="ttdeci">void vmaGetAllocationInfo(VmaAllocator allocator, VmaAllocation allocation, VmaAllocationInfo *pAllocationInfo)</div><div class="ttdoc">Returns current information about specified allocation and atomically marks it as used in current fra...</div></div>
 <div class="ttc" id="astruct_vma_allocation_html"><div class="ttname"><a href="struct_vma_allocation.html">VmaAllocation</a></div><div class="ttdoc">Represents single memory allocation.</div></div>
-<div class="ttc" id="avk__mem__alloc_8h_html_aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7"><div class="ttname"><a href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7">VMA_MEMORY_USAGE_GPU_ONLY</a></div><div class="ttdeci">@ VMA_MEMORY_USAGE_GPU_ONLY</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2466</div></div>
+<div class="ttc" id="avk__mem__alloc_8h_html_aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7"><div class="ttname"><a href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7">VMA_MEMORY_USAGE_GPU_ONLY</a></div><div class="ttdeci">@ VMA_MEMORY_USAGE_GPU_ONLY</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2456</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_a02a94f25679275851a53e82eacbcfc73"><div class="ttname"><a href="vk__mem__alloc_8h.html#a02a94f25679275851a53e82eacbcfc73">vmaCreateImage</a></div><div class="ttdeci">VkResult vmaCreateImage(VmaAllocator allocator, const VkImageCreateInfo *pImageCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkImage *pImage, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)</div><div class="ttdoc">Function similar to vmaCreateBuffer().</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html_accb8b06b1f677d858cb9af20705fa910"><div class="ttname"><a href="struct_vma_allocation_create_info.html#accb8b06b1f677d858cb9af20705fa910">VmaAllocationCreateInfo::usage</a></div><div class="ttdeci">VmaMemoryUsage usage</div><div class="ttdoc">Intended usage of memory.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2632</div></div>
-<div class="ttc" id="astruct_vma_allocation_info_html_adc507656149c04de7ed95d0042ba2a13"><div class="ttname"><a href="struct_vma_allocation_info.html#adc507656149c04de7ed95d0042ba2a13">VmaAllocationInfo::pUserData</a></div><div class="ttdeci">void * pUserData</div><div class="ttdoc">Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vma...</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2999</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html_accb8b06b1f677d858cb9af20705fa910"><div class="ttname"><a href="struct_vma_allocation_create_info.html#accb8b06b1f677d858cb9af20705fa910">VmaAllocationCreateInfo::usage</a></div><div class="ttdeci">VmaMemoryUsage usage</div><div class="ttdoc">Intended usage of memory.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2622</div></div>
+<div class="ttc" id="astruct_vma_allocation_info_html_adc507656149c04de7ed95d0042ba2a13"><div class="ttname"><a href="struct_vma_allocation_info.html#adc507656149c04de7ed95d0042ba2a13">VmaAllocationInfo::pUserData</a></div><div class="ttdeci">void * pUserData</div><div class="ttdoc">Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vma...</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2989</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_ac72ee55598617e8eecca384e746bab51"><div class="ttname"><a href="vk__mem__alloc_8h.html#ac72ee55598617e8eecca384e746bab51">vmaCreateBuffer</a></div><div class="ttdeci">VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html_add09658ac14fe290ace25470ddd6d41b"><div class="ttname"><a href="struct_vma_allocation_create_info.html#add09658ac14fe290ace25470ddd6d41b">VmaAllocationCreateInfo::flags</a></div><div class="ttdeci">VmaAllocationCreateFlags flags</div><div class="ttdoc">Use VmaAllocationCreateFlagBits enum.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2626</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html"><div class="ttname"><a href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a></div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2623</div></div>
-<div class="ttc" id="astruct_vma_allocation_info_html"><div class="ttname"><a href="struct_vma_allocation_info.html">VmaAllocationInfo</a></div><div class="ttdoc">Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2961</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html_add09658ac14fe290ace25470ddd6d41b"><div class="ttname"><a href="struct_vma_allocation_create_info.html#add09658ac14fe290ace25470ddd6d41b">VmaAllocationCreateInfo::flags</a></div><div class="ttdeci">VmaAllocationCreateFlags flags</div><div class="ttdoc">Use VmaAllocationCreateFlagBits enum.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2616</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html"><div class="ttname"><a href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a></div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2613</div></div>
+<div class="ttc" id="astruct_vma_allocation_info_html"><div class="ttname"><a href="struct_vma_allocation_info.html">VmaAllocationInfo</a></div><div class="ttdoc">Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2951</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
diff --git a/docs/html/choosing_memory_type.html b/docs/html/choosing_memory_type.html
index 3eb803f..58318a0 100644
--- a/docs/html/choosing_memory_type.html
+++ b/docs/html/choosing_memory_type.html
@@ -132,15 +132,15 @@
 </div></div><!-- contents -->
 </div><!-- PageDoc -->
 <div class="ttc" id="astruct_vma_allocation_html"><div class="ttname"><a href="struct_vma_allocation.html">VmaAllocation</a></div><div class="ttdoc">Represents single memory allocation.</div></div>
-<div class="ttc" id="avk__mem__alloc_8h_html_aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7"><div class="ttname"><a href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7">VMA_MEMORY_USAGE_GPU_ONLY</a></div><div class="ttdeci">@ VMA_MEMORY_USAGE_GPU_ONLY</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2466</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html_a9166390303ff42d783305bc31c2b6b90"><div class="ttname"><a href="struct_vma_allocation_create_info.html#a9166390303ff42d783305bc31c2b6b90">VmaAllocationCreateInfo::requiredFlags</a></div><div class="ttdeci">VkMemoryPropertyFlags requiredFlags</div><div class="ttdoc">Flags that must be set in a Memory Type chosen for an allocation.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2637</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html_accb8b06b1f677d858cb9af20705fa910"><div class="ttname"><a href="struct_vma_allocation_create_info.html#accb8b06b1f677d858cb9af20705fa910">VmaAllocationCreateInfo::usage</a></div><div class="ttdeci">VmaMemoryUsage usage</div><div class="ttdoc">Intended usage of memory.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2632</div></div>
+<div class="ttc" id="avk__mem__alloc_8h_html_aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7"><div class="ttname"><a href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7">VMA_MEMORY_USAGE_GPU_ONLY</a></div><div class="ttdeci">@ VMA_MEMORY_USAGE_GPU_ONLY</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2456</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html_a9166390303ff42d783305bc31c2b6b90"><div class="ttname"><a href="struct_vma_allocation_create_info.html#a9166390303ff42d783305bc31c2b6b90">VmaAllocationCreateInfo::requiredFlags</a></div><div class="ttdeci">VkMemoryPropertyFlags requiredFlags</div><div class="ttdoc">Flags that must be set in a Memory Type chosen for an allocation.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2627</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html_accb8b06b1f677d858cb9af20705fa910"><div class="ttname"><a href="struct_vma_allocation_create_info.html#accb8b06b1f677d858cb9af20705fa910">VmaAllocationCreateInfo::usage</a></div><div class="ttdeci">VmaMemoryUsage usage</div><div class="ttdoc">Intended usage of memory.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2622</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_ac72ee55598617e8eecca384e746bab51"><div class="ttname"><a href="vk__mem__alloc_8h.html#ac72ee55598617e8eecca384e746bab51">vmaCreateBuffer</a></div><div class="ttdeci">VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)</div></div>
-<div class="ttc" id="avk__mem__alloc_8h_html_ad9889c10c798b040d59c92f257cae597a11da372cc3a82931c5e5d6146cd9dd1f"><div class="ttname"><a href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a11da372cc3a82931c5e5d6146cd9dd1f">VMA_ALLOCATION_CREATE_MAPPED_BIT</a></div><div class="ttdeci">@ VMA_ALLOCATION_CREATE_MAPPED_BIT</div><div class="ttdoc">Set this flag to use a memory that will be persistently mapped and retrieve pointer to it.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2543</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html_add09658ac14fe290ace25470ddd6d41b"><div class="ttname"><a href="struct_vma_allocation_create_info.html#add09658ac14fe290ace25470ddd6d41b">VmaAllocationCreateInfo::flags</a></div><div class="ttdeci">VmaAllocationCreateFlags flags</div><div class="ttdoc">Use VmaAllocationCreateFlagBits enum.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2626</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html"><div class="ttname"><a href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a></div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2623</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html_a7fe8d81a1ad10b2a2faacacee5b15d6d"><div class="ttname"><a href="struct_vma_allocation_create_info.html#a7fe8d81a1ad10b2a2faacacee5b15d6d">VmaAllocationCreateInfo::preferredFlags</a></div><div class="ttdeci">VkMemoryPropertyFlags preferredFlags</div><div class="ttdoc">Flags that preferably should be set in a memory type chosen for an allocation.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2642</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html_a3bf940c0271d85d6ba32a4d820075055"><div class="ttname"><a href="struct_vma_allocation_create_info.html#a3bf940c0271d85d6ba32a4d820075055">VmaAllocationCreateInfo::memoryTypeBits</a></div><div class="ttdeci">uint32_t memoryTypeBits</div><div class="ttdoc">Bitmask containing one bit set for every memory type acceptable for this allocation.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2650</div></div>
+<div class="ttc" id="avk__mem__alloc_8h_html_ad9889c10c798b040d59c92f257cae597a11da372cc3a82931c5e5d6146cd9dd1f"><div class="ttname"><a href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a11da372cc3a82931c5e5d6146cd9dd1f">VMA_ALLOCATION_CREATE_MAPPED_BIT</a></div><div class="ttdeci">@ VMA_ALLOCATION_CREATE_MAPPED_BIT</div><div class="ttdoc">Set this flag to use a memory that will be persistently mapped and retrieve pointer to it.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2533</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html_add09658ac14fe290ace25470ddd6d41b"><div class="ttname"><a href="struct_vma_allocation_create_info.html#add09658ac14fe290ace25470ddd6d41b">VmaAllocationCreateInfo::flags</a></div><div class="ttdeci">VmaAllocationCreateFlags flags</div><div class="ttdoc">Use VmaAllocationCreateFlagBits enum.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2616</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html"><div class="ttname"><a href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a></div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2613</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html_a7fe8d81a1ad10b2a2faacacee5b15d6d"><div class="ttname"><a href="struct_vma_allocation_create_info.html#a7fe8d81a1ad10b2a2faacacee5b15d6d">VmaAllocationCreateInfo::preferredFlags</a></div><div class="ttdeci">VkMemoryPropertyFlags preferredFlags</div><div class="ttdoc">Flags that preferably should be set in a memory type chosen for an allocation.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2632</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html_a3bf940c0271d85d6ba32a4d820075055"><div class="ttname"><a href="struct_vma_allocation_create_info.html#a3bf940c0271d85d6ba32a4d820075055">VmaAllocationCreateInfo::memoryTypeBits</a></div><div class="ttdeci">uint32_t memoryTypeBits</div><div class="ttdoc">Bitmask containing one bit set for every memory type acceptable for this allocation.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2640</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
diff --git a/docs/html/configuration.html b/docs/html/configuration.html
index cdd89a3..3c4ceb2 100644
--- a/docs/html/configuration.html
+++ b/docs/html/configuration.html
@@ -71,13 +71,6 @@
 <div class="contents">
 <div class="textblock"><p>Please check "CONFIGURATION SECTION" in the code to find macros that you can define before each include of this file or change directly in this file to provide your own implementation of basic facilities like assert, <code>min()</code> and <code>max()</code> functions, mutex, atomic etc. The library uses its own implementation of containers by default, but you can switch to using STL containers instead.</p>
 <p>For example, define <code>VMA_ASSERT(expr)</code> before including the library to provide custom implementation of the assertion, compatible with your project. By default it is defined to standard C <code>assert(expr)</code> in <code>_DEBUG</code> configuration and empty otherwise.</p>
-<h1><a class="anchor" id="config_Vulkan_functions"></a>
-Pointers to Vulkan functions</h1>
-<p>The library uses Vulkan functions straight from the <code>vulkan.h</code> header by default. If you want to provide your own pointers to these functions, e.g. fetched using <code>vkGetInstanceProcAddr()</code> and <code>vkGetDeviceProcAddr()</code>:</p>
-<ol type="1">
-<li>Define <code>VMA_STATIC_VULKAN_FUNCTIONS 0</code>.</li>
-<li>Provide valid pointers through <a class="el" href="struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd" title="Pointers to Vulkan functions. Can be null if you leave define VMA_STATIC_VULKAN_FUNCTIONS 1.">VmaAllocatorCreateInfo::pVulkanFunctions</a>.</li>
-</ol>
 <h1><a class="anchor" id="custom_memory_allocator"></a>
 Custom host memory allocator</h1>
 <p>If you use custom allocator for CPU memory rather than default operator <code>new</code> and <code>delete</code> from C++, you can make this library using your allocator as well by filling optional member <a class="el" href="struct_vma_allocator_create_info.html#a6e409087e3be55400d0e4ccbe43c608d" title="Custom CPU memory allocation callbacks. Optional.">VmaAllocatorCreateInfo::pAllocationCallbacks</a>. These functions will be passed to Vulkan, as well as used by the library itself to make any CPU-side allocations.</p>
diff --git a/docs/html/custom_memory_pools.html b/docs/html/custom_memory_pools.html
index acf93d6..8d88761 100644
--- a/docs/html/custom_memory_pools.html
+++ b/docs/html/custom_memory_pools.html
@@ -180,21 +180,21 @@
 </ul>
 </div></div><!-- contents -->
 </div><!-- PageDoc -->
-<div class="ttc" id="astruct_vma_pool_create_info_html_a596fa76b685d3f1f688f84a709a5b319"><div class="ttname"><a href="struct_vma_pool_create_info.html#a596fa76b685d3f1f688f84a709a5b319">VmaPoolCreateInfo::memoryTypeIndex</a></div><div class="ttdeci">uint32_t memoryTypeIndex</div><div class="ttdoc">Vulkan memory type index to allocate this pool from.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2788</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html_a6272c0555cfd1fe28bff1afeb6190150"><div class="ttname"><a href="struct_vma_allocation_create_info.html#a6272c0555cfd1fe28bff1afeb6190150">VmaAllocationCreateInfo::pool</a></div><div class="ttdeci">VmaPool pool</div><div class="ttdoc">Pool that this allocation should be created in.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2656</div></div>
+<div class="ttc" id="astruct_vma_pool_create_info_html_a596fa76b685d3f1f688f84a709a5b319"><div class="ttname"><a href="struct_vma_pool_create_info.html#a596fa76b685d3f1f688f84a709a5b319">VmaPoolCreateInfo::memoryTypeIndex</a></div><div class="ttdeci">uint32_t memoryTypeIndex</div><div class="ttdoc">Vulkan memory type index to allocate this pool from.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2778</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html_a6272c0555cfd1fe28bff1afeb6190150"><div class="ttname"><a href="struct_vma_allocation_create_info.html#a6272c0555cfd1fe28bff1afeb6190150">VmaAllocationCreateInfo::pool</a></div><div class="ttdeci">VmaPool pool</div><div class="ttdoc">Pool that this allocation should be created in.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2646</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_a5485779c8f1948238fc4e92232fa65e1"><div class="ttname"><a href="vk__mem__alloc_8h.html#a5485779c8f1948238fc4e92232fa65e1">vmaDestroyPool</a></div><div class="ttdeci">void vmaDestroyPool(VmaAllocator allocator, VmaPool pool)</div><div class="ttdoc">Destroys VmaPool object and frees Vulkan device memory.</div></div>
 <div class="ttc" id="astruct_vma_allocation_html"><div class="ttname"><a href="struct_vma_allocation.html">VmaAllocation</a></div><div class="ttdoc">Represents single memory allocation.</div></div>
-<div class="ttc" id="avk__mem__alloc_8h_html_aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7"><div class="ttname"><a href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7">VMA_MEMORY_USAGE_GPU_ONLY</a></div><div class="ttdeci">@ VMA_MEMORY_USAGE_GPU_ONLY</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2466</div></div>
+<div class="ttc" id="avk__mem__alloc_8h_html_aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7"><div class="ttname"><a href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7">VMA_MEMORY_USAGE_GPU_ONLY</a></div><div class="ttdeci">@ VMA_MEMORY_USAGE_GPU_ONLY</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2456</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_a5c8770ded7c59c8caac6de0c2cb00b50"><div class="ttname"><a href="vk__mem__alloc_8h.html#a5c8770ded7c59c8caac6de0c2cb00b50">vmaCreatePool</a></div><div class="ttdeci">VkResult vmaCreatePool(VmaAllocator allocator, const VmaPoolCreateInfo *pCreateInfo, VmaPool *pPool)</div><div class="ttdoc">Allocates Vulkan device memory and creates VmaPool object.</div></div>
-<div class="ttc" id="astruct_vma_pool_create_info_html_ae41142f2834fcdc82baa4883c187b75c"><div class="ttname"><a href="struct_vma_pool_create_info.html#ae41142f2834fcdc82baa4883c187b75c">VmaPoolCreateInfo::maxBlockCount</a></div><div class="ttdeci">size_t maxBlockCount</div><div class="ttdoc">Maximum number of blocks that can be allocated in this pool. Optional.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2813</div></div>
-<div class="ttc" id="astruct_vma_pool_create_info_html"><div class="ttname"><a href="struct_vma_pool_create_info.html">VmaPoolCreateInfo</a></div><div class="ttdoc">Describes parameter of created VmaPool.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2785</div></div>
+<div class="ttc" id="astruct_vma_pool_create_info_html_ae41142f2834fcdc82baa4883c187b75c"><div class="ttname"><a href="struct_vma_pool_create_info.html#ae41142f2834fcdc82baa4883c187b75c">VmaPoolCreateInfo::maxBlockCount</a></div><div class="ttdeci">size_t maxBlockCount</div><div class="ttdoc">Maximum number of blocks that can be allocated in this pool. Optional.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2803</div></div>
+<div class="ttc" id="astruct_vma_pool_create_info_html"><div class="ttname"><a href="struct_vma_pool_create_info.html">VmaPoolCreateInfo</a></div><div class="ttdoc">Describes parameter of created VmaPool.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2775</div></div>
 <div class="ttc" id="astruct_vma_pool_html"><div class="ttname"><a href="struct_vma_pool.html">VmaPool</a></div><div class="ttdoc">Represents custom memory pool.</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_ae790ab9ffaf7667fb8f62523e6897888"><div class="ttname"><a href="vk__mem__alloc_8h.html#ae790ab9ffaf7667fb8f62523e6897888">vmaFindMemoryTypeIndexForBufferInfo</a></div><div class="ttdeci">VkResult vmaFindMemoryTypeIndexForBufferInfo(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, uint32_t *pMemoryTypeIndex)</div><div class="ttdoc">Helps to find memoryTypeIndex, given VkBufferCreateInfo and VmaAllocationCreateInfo.</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html_accb8b06b1f677d858cb9af20705fa910"><div class="ttname"><a href="struct_vma_allocation_create_info.html#accb8b06b1f677d858cb9af20705fa910">VmaAllocationCreateInfo::usage</a></div><div class="ttdeci">VmaMemoryUsage usage</div><div class="ttdoc">Intended usage of memory.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2632</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html_accb8b06b1f677d858cb9af20705fa910"><div class="ttname"><a href="struct_vma_allocation_create_info.html#accb8b06b1f677d858cb9af20705fa910">VmaAllocationCreateInfo::usage</a></div><div class="ttdeci">VmaMemoryUsage usage</div><div class="ttdoc">Intended usage of memory.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2622</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_ac72ee55598617e8eecca384e746bab51"><div class="ttname"><a href="vk__mem__alloc_8h.html#ac72ee55598617e8eecca384e746bab51">vmaCreateBuffer</a></div><div class="ttdeci">VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_a0d9f4e4ba5bf9aab1f1c746387753d77"><div class="ttname"><a href="vk__mem__alloc_8h.html#a0d9f4e4ba5bf9aab1f1c746387753d77">vmaDestroyBuffer</a></div><div class="ttdeci">void vmaDestroyBuffer(VmaAllocator allocator, VkBuffer buffer, VmaAllocation allocation)</div><div class="ttdoc">Destroys Vulkan buffer and frees allocated memory.</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html"><div class="ttname"><a href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a></div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2623</div></div>
-<div class="ttc" id="astruct_vma_allocation_info_html"><div class="ttname"><a href="struct_vma_allocation_info.html">VmaAllocationInfo</a></div><div class="ttdoc">Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2961</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html"><div class="ttname"><a href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a></div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2613</div></div>
+<div class="ttc" id="astruct_vma_allocation_info_html"><div class="ttname"><a href="struct_vma_allocation_info.html">VmaAllocationInfo</a></div><div class="ttdoc">Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2951</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
diff --git a/docs/html/defragmentation.html b/docs/html/defragmentation.html
index 06fb453..07dde99 100644
--- a/docs/html/defragmentation.html
+++ b/docs/html/defragmentation.html
@@ -214,22 +214,22 @@
 </ol>
 </div></div><!-- contents -->
 </div><!-- PageDoc -->
-<div class="ttc" id="astruct_vma_defragmentation_info2_html_a3cf86ab32c1da779b4923d301a3056ba"><div class="ttname"><a href="struct_vma_defragmentation_info2.html#a3cf86ab32c1da779b4923d301a3056ba">VmaDefragmentationInfo2::allocationCount</a></div><div class="ttdeci">uint32_t allocationCount</div><div class="ttdoc">Number of allocations in pAllocations array.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:3311</div></div>
+<div class="ttc" id="astruct_vma_defragmentation_info2_html_a3cf86ab32c1da779b4923d301a3056ba"><div class="ttname"><a href="struct_vma_defragmentation_info2.html#a3cf86ab32c1da779b4923d301a3056ba">VmaDefragmentationInfo2::allocationCount</a></div><div class="ttdeci">uint32_t allocationCount</div><div class="ttdoc">Number of allocations in pAllocations array.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:3301</div></div>
 <div class="ttc" id="astruct_vma_allocator_html"><div class="ttname"><a href="struct_vma_allocator.html">VmaAllocator</a></div><div class="ttdoc">Represents main object of this library initialized.</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_a86dd08aba8633bfa4ad0df2e76481d8b"><div class="ttname"><a href="vk__mem__alloc_8h.html#a86dd08aba8633bfa4ad0df2e76481d8b">vmaGetAllocationInfo</a></div><div class="ttdeci">void vmaGetAllocationInfo(VmaAllocator allocator, VmaAllocation allocation, VmaAllocationInfo *pAllocationInfo)</div><div class="ttdoc">Returns current information about specified allocation and atomically marks it as used in current fra...</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_a8774e20e91e245aae959ba63efa15dd2"><div class="ttname"><a href="vk__mem__alloc_8h.html#a8774e20e91e245aae959ba63efa15dd2">vmaDefragmentationEnd</a></div><div class="ttdeci">VkResult vmaDefragmentationEnd(VmaAllocator allocator, VmaDefragmentationContext context)</div><div class="ttdoc">Ends defragmentation process.</div></div>
-<div class="ttc" id="astruct_vma_defragmentation_info2_html_a4ddbc898d0afe1518f863a3763628f08"><div class="ttname"><a href="struct_vma_defragmentation_info2.html#a4ddbc898d0afe1518f863a3763628f08">VmaDefragmentationInfo2::maxGpuBytesToMove</a></div><div class="ttdeci">VkDeviceSize maxGpuBytesToMove</div><div class="ttdoc">Maximum total numbers of bytes that can be copied while moving allocations to different places using ...</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:3360</div></div>
-<div class="ttc" id="astruct_vma_defragmentation_info2_html_a7f71f39590c5316771493d2333f9c1bd"><div class="ttname"><a href="struct_vma_defragmentation_info2.html#a7f71f39590c5316771493d2333f9c1bd">VmaDefragmentationInfo2::commandBuffer</a></div><div class="ttdeci">VkCommandBuffer commandBuffer</div><div class="ttdoc">Optional. Command buffer where GPU copy commands will be posted.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:3374</div></div>
-<div class="ttc" id="astruct_vma_defragmentation_info2_html"><div class="ttname"><a href="struct_vma_defragmentation_info2.html">VmaDefragmentationInfo2</a></div><div class="ttdoc">Parameters for defragmentation.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:3305</div></div>
+<div class="ttc" id="astruct_vma_defragmentation_info2_html_a4ddbc898d0afe1518f863a3763628f08"><div class="ttname"><a href="struct_vma_defragmentation_info2.html#a4ddbc898d0afe1518f863a3763628f08">VmaDefragmentationInfo2::maxGpuBytesToMove</a></div><div class="ttdeci">VkDeviceSize maxGpuBytesToMove</div><div class="ttdoc">Maximum total numbers of bytes that can be copied while moving allocations to different places using ...</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:3350</div></div>
+<div class="ttc" id="astruct_vma_defragmentation_info2_html_a7f71f39590c5316771493d2333f9c1bd"><div class="ttname"><a href="struct_vma_defragmentation_info2.html#a7f71f39590c5316771493d2333f9c1bd">VmaDefragmentationInfo2::commandBuffer</a></div><div class="ttdeci">VkCommandBuffer commandBuffer</div><div class="ttdoc">Optional. Command buffer where GPU copy commands will be posted.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:3364</div></div>
+<div class="ttc" id="astruct_vma_defragmentation_info2_html"><div class="ttname"><a href="struct_vma_defragmentation_info2.html">VmaDefragmentationInfo2</a></div><div class="ttdoc">Parameters for defragmentation.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:3295</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_a6b0929b914b60cf2d45cac4bf3547470"><div class="ttname"><a href="vk__mem__alloc_8h.html#a6b0929b914b60cf2d45cac4bf3547470">vmaBindBufferMemory</a></div><div class="ttdeci">VkResult vmaBindBufferMemory(VmaAllocator allocator, VmaAllocation allocation, VkBuffer buffer)</div><div class="ttdoc">Binds buffer to allocation.</div></div>
-<div class="ttc" id="astruct_vma_defragmentation_info2_html_a40d53d33e71ba0b66f844ed63c05a3f6"><div class="ttname"><a href="struct_vma_defragmentation_info2.html#a40d53d33e71ba0b66f844ed63c05a3f6">VmaDefragmentationInfo2::maxGpuAllocationsToMove</a></div><div class="ttdeci">uint32_t maxGpuAllocationsToMove</div><div class="ttdoc">Maximum number of allocations that can be moved to a different place using transfers on GPU side,...</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:3365</div></div>
-<div class="ttc" id="astruct_vma_defragmentation_info2_html_af78e1ea40c22d85137b65f6b384a4d0a"><div class="ttname"><a href="struct_vma_defragmentation_info2.html#af78e1ea40c22d85137b65f6b384a4d0a">VmaDefragmentationInfo2::maxCpuBytesToMove</a></div><div class="ttdeci">VkDeviceSize maxCpuBytesToMove</div><div class="ttdoc">Maximum total numbers of bytes that can be copied while moving allocations to different places using ...</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:3350</div></div>
+<div class="ttc" id="astruct_vma_defragmentation_info2_html_a40d53d33e71ba0b66f844ed63c05a3f6"><div class="ttname"><a href="struct_vma_defragmentation_info2.html#a40d53d33e71ba0b66f844ed63c05a3f6">VmaDefragmentationInfo2::maxGpuAllocationsToMove</a></div><div class="ttdeci">uint32_t maxGpuAllocationsToMove</div><div class="ttdoc">Maximum number of allocations that can be moved to a different place using transfers on GPU side,...</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:3355</div></div>
+<div class="ttc" id="astruct_vma_defragmentation_info2_html_af78e1ea40c22d85137b65f6b384a4d0a"><div class="ttname"><a href="struct_vma_defragmentation_info2.html#af78e1ea40c22d85137b65f6b384a4d0a">VmaDefragmentationInfo2::maxCpuBytesToMove</a></div><div class="ttdeci">VkDeviceSize maxCpuBytesToMove</div><div class="ttdoc">Maximum total numbers of bytes that can be copied while moving allocations to different places using ...</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:3340</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_a36ba776fd7fd5cb1e9359fdc0d8e6e8a"><div class="ttname"><a href="vk__mem__alloc_8h.html#a36ba776fd7fd5cb1e9359fdc0d8e6e8a">vmaDefragmentationBegin</a></div><div class="ttdeci">VkResult vmaDefragmentationBegin(VmaAllocator allocator, const VmaDefragmentationInfo2 *pInfo, VmaDefragmentationStats *pStats, VmaDefragmentationContext *pContext)</div><div class="ttdoc">Begins defragmentation process.</div></div>
-<div class="ttc" id="astruct_vma_defragmentation_info2_html_a76d51a644dc7f5405d0cdd0025ecd0cc"><div class="ttname"><a href="struct_vma_defragmentation_info2.html#a76d51a644dc7f5405d0cdd0025ecd0cc">VmaDefragmentationInfo2::pAllocationsChanged</a></div><div class="ttdeci">VkBool32 * pAllocationsChanged</div><div class="ttdoc">Optional, output. Pointer to array that will be filled with information whether the allocation at cer...</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:3326</div></div>
-<div class="ttc" id="astruct_vma_allocation_info_html"><div class="ttname"><a href="struct_vma_allocation_info.html">VmaAllocationInfo</a></div><div class="ttdoc">Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2961</div></div>
+<div class="ttc" id="astruct_vma_defragmentation_info2_html_a76d51a644dc7f5405d0cdd0025ecd0cc"><div class="ttname"><a href="struct_vma_defragmentation_info2.html#a76d51a644dc7f5405d0cdd0025ecd0cc">VmaDefragmentationInfo2::pAllocationsChanged</a></div><div class="ttdeci">VkBool32 * pAllocationsChanged</div><div class="ttdoc">Optional, output. Pointer to array that will be filled with information whether the allocation at cer...</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:3316</div></div>
+<div class="ttc" id="astruct_vma_allocation_info_html"><div class="ttname"><a href="struct_vma_allocation_info.html">VmaAllocationInfo</a></div><div class="ttdoc">Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2951</div></div>
 <div class="ttc" id="astruct_vma_defragmentation_context_html"><div class="ttname"><a href="struct_vma_defragmentation_context.html">VmaDefragmentationContext</a></div><div class="ttdoc">Represents Opaque object that represents started defragmentation process.</div></div>
-<div class="ttc" id="astruct_vma_defragmentation_info2_html_a8943f8d65969ce8e2189a1cdf3205e96"><div class="ttname"><a href="struct_vma_defragmentation_info2.html#a8943f8d65969ce8e2189a1cdf3205e96">VmaDefragmentationInfo2::pAllocations</a></div><div class="ttdeci">VmaAllocation * pAllocations</div><div class="ttdoc">Pointer to array of allocations that can be defragmented.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:3320</div></div>
-<div class="ttc" id="astruct_vma_defragmentation_info2_html_a94c2c7223d52878445a8cccce396b671"><div class="ttname"><a href="struct_vma_defragmentation_info2.html#a94c2c7223d52878445a8cccce396b671">VmaDefragmentationInfo2::maxCpuAllocationsToMove</a></div><div class="ttdeci">uint32_t maxCpuAllocationsToMove</div><div class="ttdoc">Maximum number of allocations that can be moved to a different place using transfers on CPU side,...</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:3355</div></div>
+<div class="ttc" id="astruct_vma_defragmentation_info2_html_a8943f8d65969ce8e2189a1cdf3205e96"><div class="ttname"><a href="struct_vma_defragmentation_info2.html#a8943f8d65969ce8e2189a1cdf3205e96">VmaDefragmentationInfo2::pAllocations</a></div><div class="ttdeci">VmaAllocation * pAllocations</div><div class="ttdoc">Pointer to array of allocations that can be defragmented.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:3310</div></div>
+<div class="ttc" id="astruct_vma_defragmentation_info2_html_a94c2c7223d52878445a8cccce396b671"><div class="ttname"><a href="struct_vma_defragmentation_info2.html#a94c2c7223d52878445a8cccce396b671">VmaDefragmentationInfo2::maxCpuAllocationsToMove</a></div><div class="ttdeci">uint32_t maxCpuAllocationsToMove</div><div class="ttdoc">Maximum number of allocations that can be moved to a different place using transfers on CPU side,...</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:3345</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
diff --git a/docs/html/functions.html b/docs/html/functions.html
index c9adc1a..cf31089 100644
--- a/docs/html/functions.html
+++ b/docs/html/functions.html
@@ -268,6 +268,7 @@
 <li>pUserData
 : <a class="el" href="struct_vma_allocation_create_info.html#a8259e85c272683434f4abb4ddddffe19">VmaAllocationCreateInfo</a>
 , <a class="el" href="struct_vma_allocation_info.html#adc507656149c04de7ed95d0042ba2a13">VmaAllocationInfo</a>
+, <a class="el" href="struct_vma_device_memory_callbacks.html#a24052de0937ddd54015a2df0363903c6">VmaDeviceMemoryCallbacks</a>
 </li>
 <li>pVulkanFunctions
 : <a class="el" href="struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd">VmaAllocatorCreateInfo</a>
diff --git a/docs/html/functions_vars.html b/docs/html/functions_vars.html
index fd37b05..55805cf 100644
--- a/docs/html/functions_vars.html
+++ b/docs/html/functions_vars.html
@@ -268,6 +268,7 @@
 <li>pUserData
 : <a class="el" href="struct_vma_allocation_create_info.html#a8259e85c272683434f4abb4ddddffe19">VmaAllocationCreateInfo</a>
 , <a class="el" href="struct_vma_allocation_info.html#adc507656149c04de7ed95d0042ba2a13">VmaAllocationInfo</a>
+, <a class="el" href="struct_vma_device_memory_callbacks.html#a24052de0937ddd54015a2df0363903c6">VmaDeviceMemoryCallbacks</a>
 </li>
 <li>pVulkanFunctions
 : <a class="el" href="struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd">VmaAllocatorCreateInfo</a>
diff --git a/docs/html/globals.html b/docs/html/globals.html
index 747838b..c83a887 100644
--- a/docs/html/globals.html
+++ b/docs/html/globals.html
@@ -72,10 +72,10 @@
 
 <h3><a id="index_p"></a>- p -</h3><ul>
 <li>PFN_vmaAllocateDeviceMemoryFunction
-: <a class="el" href="vk__mem__alloc_8h.html#ab6a6477cda1ce775b30bde96d766203b">vk_mem_alloc.h</a>
+: <a class="el" href="vk__mem__alloc_8h.html#a7e1ed85f7799600b03ad51a77acc21f3">vk_mem_alloc.h</a>
 </li>
 <li>PFN_vmaFreeDeviceMemoryFunction
-: <a class="el" href="vk__mem__alloc_8h.html#aef2545dc2e9dd4f29ab9ba6ac6fe2f49">vk_mem_alloc.h</a>
+: <a class="el" href="vk__mem__alloc_8h.html#a154ccaaf53dc2c36378f80f0c4f3679b">vk_mem_alloc.h</a>
 </li>
 </ul>
 
diff --git a/docs/html/globals_type.html b/docs/html/globals_type.html
index 5e2b8c4..aea31de 100644
--- a/docs/html/globals_type.html
+++ b/docs/html/globals_type.html
@@ -63,10 +63,10 @@
 <div class="contents">
 &#160;<ul>
 <li>PFN_vmaAllocateDeviceMemoryFunction
-: <a class="el" href="vk__mem__alloc_8h.html#ab6a6477cda1ce775b30bde96d766203b">vk_mem_alloc.h</a>
+: <a class="el" href="vk__mem__alloc_8h.html#a7e1ed85f7799600b03ad51a77acc21f3">vk_mem_alloc.h</a>
 </li>
 <li>PFN_vmaFreeDeviceMemoryFunction
-: <a class="el" href="vk__mem__alloc_8h.html#aef2545dc2e9dd4f29ab9ba6ac6fe2f49">vk_mem_alloc.h</a>
+: <a class="el" href="vk__mem__alloc_8h.html#a154ccaaf53dc2c36378f80f0c4f3679b">vk_mem_alloc.h</a>
 </li>
 <li>VmaAllocationCreateFlagBits
 : <a class="el" href="vk__mem__alloc_8h.html#a4fceecc301f4064dc808d3cd6c038941">vk_mem_alloc.h</a>
diff --git a/docs/html/index.html b/docs/html/index.html
index 28ce8c3..e89324e 100644
--- a/docs/html/index.html
+++ b/docs/html/index.html
@@ -65,7 +65,7 @@
 <div class="title">Vulkan Memory Allocator </div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="textblock"><p><b>Version 2.4.0-development</b> (2020-03-02)</p>
+<div class="textblock"><p><b>Version 3.0.0-development</b> (2020-03-23)</p>
 <p>Copyright (c) 2017-2020 Advanced Micro Devices, Inc. All rights reserved. <br  />
 License: MIT</p>
 <p>Documentation of all members: <a class="el" href="vk__mem__alloc_8h.html">vk_mem_alloc.h</a></p>
@@ -145,7 +145,6 @@
 </ul>
 </li>
 <li><a class="el" href="configuration.html">Configuration</a><ul>
-<li><a class="el" href="configuration.html#config_Vulkan_functions">Pointers to Vulkan functions</a></li>
 <li><a class="el" href="configuration.html#custom_memory_allocator">Custom host memory allocator</a></li>
 <li><a class="el" href="configuration.html#allocation_callbacks">Device memory allocation callbacks</a></li>
 <li><a class="el" href="configuration.html#heap_memory_limit">Device heap memory limit</a></li>
diff --git a/docs/html/lost_allocations.html b/docs/html/lost_allocations.html
index bc33151..3fa405c 100644
--- a/docs/html/lost_allocations.html
+++ b/docs/html/lost_allocations.html
@@ -125,15 +125,15 @@
 </div></div><!-- contents -->
 </div><!-- PageDoc -->
 <div class="ttc" id="avk__mem__alloc_8h_html_a43d8ba9673c846f049089a5029d5c73a"><div class="ttname"><a href="vk__mem__alloc_8h.html#a43d8ba9673c846f049089a5029d5c73a">vmaTouchAllocation</a></div><div class="ttdeci">VkBool32 vmaTouchAllocation(VmaAllocator allocator, VmaAllocation allocation)</div><div class="ttdoc">Returns VK_TRUE if allocation is not lost and atomically marks it as used in current frame.</div></div>
-<div class="ttc" id="avk__mem__alloc_8h_html_ad9889c10c798b040d59c92f257cae597a5f436af6c8fe8540573a6d22627a6fd2"><div class="ttname"><a href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a5f436af6c8fe8540573a6d22627a6fd2">VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT</a></div><div class="ttdeci">@ VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2556</div></div>
+<div class="ttc" id="avk__mem__alloc_8h_html_ad9889c10c798b040d59c92f257cae597a5f436af6c8fe8540573a6d22627a6fd2"><div class="ttname"><a href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a5f436af6c8fe8540573a6d22627a6fd2">VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT</a></div><div class="ttdeci">@ VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2546</div></div>
 <div class="ttc" id="astruct_vma_allocation_html"><div class="ttname"><a href="struct_vma_allocation.html">VmaAllocation</a></div><div class="ttdoc">Represents single memory allocation.</div></div>
-<div class="ttc" id="avk__mem__alloc_8h_html_aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7"><div class="ttname"><a href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7">VMA_MEMORY_USAGE_GPU_ONLY</a></div><div class="ttdeci">@ VMA_MEMORY_USAGE_GPU_ONLY</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2466</div></div>
-<div class="ttc" id="avk__mem__alloc_8h_html_ad9889c10c798b040d59c92f257cae597a68686d0ce9beb0d4d1b9f2b8b1389a7e"><div class="ttname"><a href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a68686d0ce9beb0d4d1b9f2b8b1389a7e">VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT</a></div><div class="ttdeci">@ VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2563</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html_accb8b06b1f677d858cb9af20705fa910"><div class="ttname"><a href="struct_vma_allocation_create_info.html#accb8b06b1f677d858cb9af20705fa910">VmaAllocationCreateInfo::usage</a></div><div class="ttdeci">VmaMemoryUsage usage</div><div class="ttdoc">Intended usage of memory.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2632</div></div>
+<div class="ttc" id="avk__mem__alloc_8h_html_aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7"><div class="ttname"><a href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7">VMA_MEMORY_USAGE_GPU_ONLY</a></div><div class="ttdeci">@ VMA_MEMORY_USAGE_GPU_ONLY</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2456</div></div>
+<div class="ttc" id="avk__mem__alloc_8h_html_ad9889c10c798b040d59c92f257cae597a68686d0ce9beb0d4d1b9f2b8b1389a7e"><div class="ttname"><a href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a68686d0ce9beb0d4d1b9f2b8b1389a7e">VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT</a></div><div class="ttdeci">@ VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2553</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html_accb8b06b1f677d858cb9af20705fa910"><div class="ttname"><a href="struct_vma_allocation_create_info.html#accb8b06b1f677d858cb9af20705fa910">VmaAllocationCreateInfo::usage</a></div><div class="ttdeci">VmaMemoryUsage usage</div><div class="ttdoc">Intended usage of memory.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2622</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_ac72ee55598617e8eecca384e746bab51"><div class="ttname"><a href="vk__mem__alloc_8h.html#ac72ee55598617e8eecca384e746bab51">vmaCreateBuffer</a></div><div class="ttdeci">VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_a0d9f4e4ba5bf9aab1f1c746387753d77"><div class="ttname"><a href="vk__mem__alloc_8h.html#a0d9f4e4ba5bf9aab1f1c746387753d77">vmaDestroyBuffer</a></div><div class="ttdeci">void vmaDestroyBuffer(VmaAllocator allocator, VkBuffer buffer, VmaAllocation allocation)</div><div class="ttdoc">Destroys Vulkan buffer and frees allocated memory.</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html_add09658ac14fe290ace25470ddd6d41b"><div class="ttname"><a href="struct_vma_allocation_create_info.html#add09658ac14fe290ace25470ddd6d41b">VmaAllocationCreateInfo::flags</a></div><div class="ttdeci">VmaAllocationCreateFlags flags</div><div class="ttdoc">Use VmaAllocationCreateFlagBits enum.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2626</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html"><div class="ttname"><a href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a></div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2623</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html_add09658ac14fe290ace25470ddd6d41b"><div class="ttname"><a href="struct_vma_allocation_create_info.html#add09658ac14fe290ace25470ddd6d41b">VmaAllocationCreateInfo::flags</a></div><div class="ttdeci">VmaAllocationCreateFlags flags</div><div class="ttdoc">Use VmaAllocationCreateFlagBits enum.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2616</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html"><div class="ttname"><a href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a></div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2613</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
diff --git a/docs/html/memory_mapping.html b/docs/html/memory_mapping.html
index bb9a925..5df9a85 100644
--- a/docs/html/memory_mapping.html
+++ b/docs/html/memory_mapping.html
@@ -186,20 +186,20 @@
 <div class="ttc" id="avk__mem__alloc_8h_html_a9bc268595cb33f6ec4d519cfce81ff45"><div class="ttname"><a href="vk__mem__alloc_8h.html#a9bc268595cb33f6ec4d519cfce81ff45">vmaUnmapMemory</a></div><div class="ttdeci">void vmaUnmapMemory(VmaAllocator allocator, VmaAllocation allocation)</div><div class="ttdoc">Unmaps memory represented by given allocation, mapped previously using vmaMapMemory().</div></div>
 <div class="ttc" id="astruct_vma_allocator_html"><div class="ttname"><a href="struct_vma_allocator.html">VmaAllocator</a></div><div class="ttdoc">Represents main object of this library initialized.</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_a8701444752eb5de4464adb5a2b514bca"><div class="ttname"><a href="vk__mem__alloc_8h.html#a8701444752eb5de4464adb5a2b514bca">vmaGetMemoryTypeProperties</a></div><div class="ttdeci">void vmaGetMemoryTypeProperties(VmaAllocator allocator, uint32_t memoryTypeIndex, VkMemoryPropertyFlags *pFlags)</div><div class="ttdoc">Given Memory Type Index, returns Property Flags of this memory type.</div></div>
-<div class="ttc" id="avk__mem__alloc_8h_html_aa5846affa1e9da3800e3e78fae2305cca40bdf4cddeffeb12f43d45ca1286e0a5"><div class="ttname"><a href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca40bdf4cddeffeb12f43d45ca1286e0a5">VMA_MEMORY_USAGE_CPU_ONLY</a></div><div class="ttdeci">@ VMA_MEMORY_USAGE_CPU_ONLY</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2476</div></div>
+<div class="ttc" id="avk__mem__alloc_8h_html_aa5846affa1e9da3800e3e78fae2305cca40bdf4cddeffeb12f43d45ca1286e0a5"><div class="ttname"><a href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca40bdf4cddeffeb12f43d45ca1286e0a5">VMA_MEMORY_USAGE_CPU_ONLY</a></div><div class="ttdeci">@ VMA_MEMORY_USAGE_CPU_ONLY</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2466</div></div>
 <div class="ttc" id="astruct_vma_allocation_html"><div class="ttname"><a href="struct_vma_allocation.html">VmaAllocation</a></div><div class="ttdoc">Represents single memory allocation.</div></div>
-<div class="ttc" id="avk__mem__alloc_8h_html_aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7"><div class="ttname"><a href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7">VMA_MEMORY_USAGE_GPU_ONLY</a></div><div class="ttdeci">@ VMA_MEMORY_USAGE_GPU_ONLY</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2466</div></div>
+<div class="ttc" id="avk__mem__alloc_8h_html_aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7"><div class="ttname"><a href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7">VMA_MEMORY_USAGE_GPU_ONLY</a></div><div class="ttdeci">@ VMA_MEMORY_USAGE_GPU_ONLY</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2456</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_ad5bd1243512d099706de88168992f069"><div class="ttname"><a href="vk__mem__alloc_8h.html#ad5bd1243512d099706de88168992f069">vmaMapMemory</a></div><div class="ttdeci">VkResult vmaMapMemory(VmaAllocator allocator, VmaAllocation allocation, void **ppData)</div><div class="ttdoc">Maps memory represented by given allocation and returns pointer to it.</div></div>
-<div class="ttc" id="astruct_vma_allocation_info_html_a5eeffbe2d2f30f53370ff14aefbadbe2"><div class="ttname"><a href="struct_vma_allocation_info.html#a5eeffbe2d2f30f53370ff14aefbadbe2">VmaAllocationInfo::pMappedData</a></div><div class="ttdeci">void * pMappedData</div><div class="ttdoc">Pointer to the beginning of this allocation as mapped data.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2994</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html_accb8b06b1f677d858cb9af20705fa910"><div class="ttname"><a href="struct_vma_allocation_create_info.html#accb8b06b1f677d858cb9af20705fa910">VmaAllocationCreateInfo::usage</a></div><div class="ttdeci">VmaMemoryUsage usage</div><div class="ttdoc">Intended usage of memory.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2632</div></div>
-<div class="ttc" id="astruct_vma_allocation_info_html_adc507656149c04de7ed95d0042ba2a13"><div class="ttname"><a href="struct_vma_allocation_info.html#adc507656149c04de7ed95d0042ba2a13">VmaAllocationInfo::pUserData</a></div><div class="ttdeci">void * pUserData</div><div class="ttdoc">Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vma...</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2999</div></div>
+<div class="ttc" id="astruct_vma_allocation_info_html_a5eeffbe2d2f30f53370ff14aefbadbe2"><div class="ttname"><a href="struct_vma_allocation_info.html#a5eeffbe2d2f30f53370ff14aefbadbe2">VmaAllocationInfo::pMappedData</a></div><div class="ttdeci">void * pMappedData</div><div class="ttdoc">Pointer to the beginning of this allocation as mapped data.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2984</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html_accb8b06b1f677d858cb9af20705fa910"><div class="ttname"><a href="struct_vma_allocation_create_info.html#accb8b06b1f677d858cb9af20705fa910">VmaAllocationCreateInfo::usage</a></div><div class="ttdeci">VmaMemoryUsage usage</div><div class="ttdoc">Intended usage of memory.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2622</div></div>
+<div class="ttc" id="astruct_vma_allocation_info_html_adc507656149c04de7ed95d0042ba2a13"><div class="ttname"><a href="struct_vma_allocation_info.html#adc507656149c04de7ed95d0042ba2a13">VmaAllocationInfo::pUserData</a></div><div class="ttdeci">void * pUserData</div><div class="ttdoc">Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vma...</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2989</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_ac72ee55598617e8eecca384e746bab51"><div class="ttname"><a href="vk__mem__alloc_8h.html#ac72ee55598617e8eecca384e746bab51">vmaCreateBuffer</a></div><div class="ttdeci">VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)</div></div>
-<div class="ttc" id="astruct_vma_allocation_info_html_a7f6b0aa58c135e488e6b40a388dad9d5"><div class="ttname"><a href="struct_vma_allocation_info.html#a7f6b0aa58c135e488e6b40a388dad9d5">VmaAllocationInfo::memoryType</a></div><div class="ttdeci">uint32_t memoryType</div><div class="ttdoc">Memory type index that this allocation was allocated from.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2966</div></div>
-<div class="ttc" id="avk__mem__alloc_8h_html_ad9889c10c798b040d59c92f257cae597a11da372cc3a82931c5e5d6146cd9dd1f"><div class="ttname"><a href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a11da372cc3a82931c5e5d6146cd9dd1f">VMA_ALLOCATION_CREATE_MAPPED_BIT</a></div><div class="ttdeci">@ VMA_ALLOCATION_CREATE_MAPPED_BIT</div><div class="ttdoc">Set this flag to use a memory that will be persistently mapped and retrieve pointer to it.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2543</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html_add09658ac14fe290ace25470ddd6d41b"><div class="ttname"><a href="struct_vma_allocation_create_info.html#add09658ac14fe290ace25470ddd6d41b">VmaAllocationCreateInfo::flags</a></div><div class="ttdeci">VmaAllocationCreateFlags flags</div><div class="ttdoc">Use VmaAllocationCreateFlagBits enum.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2626</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html"><div class="ttname"><a href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a></div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2623</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html_a7fe8d81a1ad10b2a2faacacee5b15d6d"><div class="ttname"><a href="struct_vma_allocation_create_info.html#a7fe8d81a1ad10b2a2faacacee5b15d6d">VmaAllocationCreateInfo::preferredFlags</a></div><div class="ttdeci">VkMemoryPropertyFlags preferredFlags</div><div class="ttdoc">Flags that preferably should be set in a memory type chosen for an allocation.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2642</div></div>
-<div class="ttc" id="astruct_vma_allocation_info_html"><div class="ttname"><a href="struct_vma_allocation_info.html">VmaAllocationInfo</a></div><div class="ttdoc">Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2961</div></div>
+<div class="ttc" id="astruct_vma_allocation_info_html_a7f6b0aa58c135e488e6b40a388dad9d5"><div class="ttname"><a href="struct_vma_allocation_info.html#a7f6b0aa58c135e488e6b40a388dad9d5">VmaAllocationInfo::memoryType</a></div><div class="ttdeci">uint32_t memoryType</div><div class="ttdoc">Memory type index that this allocation was allocated from.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2956</div></div>
+<div class="ttc" id="avk__mem__alloc_8h_html_ad9889c10c798b040d59c92f257cae597a11da372cc3a82931c5e5d6146cd9dd1f"><div class="ttname"><a href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a11da372cc3a82931c5e5d6146cd9dd1f">VMA_ALLOCATION_CREATE_MAPPED_BIT</a></div><div class="ttdeci">@ VMA_ALLOCATION_CREATE_MAPPED_BIT</div><div class="ttdoc">Set this flag to use a memory that will be persistently mapped and retrieve pointer to it.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2533</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html_add09658ac14fe290ace25470ddd6d41b"><div class="ttname"><a href="struct_vma_allocation_create_info.html#add09658ac14fe290ace25470ddd6d41b">VmaAllocationCreateInfo::flags</a></div><div class="ttdeci">VmaAllocationCreateFlags flags</div><div class="ttdoc">Use VmaAllocationCreateFlagBits enum.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2616</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html"><div class="ttname"><a href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a></div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2613</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html_a7fe8d81a1ad10b2a2faacacee5b15d6d"><div class="ttname"><a href="struct_vma_allocation_create_info.html#a7fe8d81a1ad10b2a2faacacee5b15d6d">VmaAllocationCreateInfo::preferredFlags</a></div><div class="ttdeci">VkMemoryPropertyFlags preferredFlags</div><div class="ttdoc">Flags that preferably should be set in a memory type chosen for an allocation.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2632</div></div>
+<div class="ttc" id="astruct_vma_allocation_info_html"><div class="ttname"><a href="struct_vma_allocation_info.html">VmaAllocationInfo</a></div><div class="ttdoc">Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2951</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
diff --git a/docs/html/quick_start.html b/docs/html/quick_start.html
index 48b327f..f08dd71 100644
--- a/docs/html/quick_start.html
+++ b/docs/html/quick_start.html
@@ -119,18 +119,18 @@
 <div class="line"><a class="code" href="vk__mem__alloc_8h.html#aa8d164061c88f22fb1fd3c8f3534bc1d">vmaDestroyAllocator</a>(allocator);</div>
 </div><!-- fragment --> </div></div><!-- contents -->
 </div><!-- PageDoc -->
-<div class="ttc" id="astruct_vma_allocator_create_info_html_a08230f04ae6ccf8a78150a9e829a7156"><div class="ttname"><a href="struct_vma_allocator_create_info.html#a08230f04ae6ccf8a78150a9e829a7156">VmaAllocatorCreateInfo::physicalDevice</a></div><div class="ttdeci">VkPhysicalDevice physicalDevice</div><div class="ttdoc">Vulkan physical device.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2156</div></div>
+<div class="ttc" id="astruct_vma_allocator_create_info_html_a08230f04ae6ccf8a78150a9e829a7156"><div class="ttname"><a href="struct_vma_allocator_create_info.html#a08230f04ae6ccf8a78150a9e829a7156">VmaAllocatorCreateInfo::physicalDevice</a></div><div class="ttdeci">VkPhysicalDevice physicalDevice</div><div class="ttdoc">Vulkan physical device.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2150</div></div>
 <div class="ttc" id="astruct_vma_allocator_html"><div class="ttname"><a href="struct_vma_allocator.html">VmaAllocator</a></div><div class="ttdoc">Represents main object of this library initialized.</div></div>
-<div class="ttc" id="astruct_vma_allocator_create_info_html"><div class="ttname"><a href="struct_vma_allocator_create_info.html">VmaAllocatorCreateInfo</a></div><div class="ttdoc">Description of a Allocator to be created.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2150</div></div>
+<div class="ttc" id="astruct_vma_allocator_create_info_html"><div class="ttname"><a href="struct_vma_allocator_create_info.html">VmaAllocatorCreateInfo</a></div><div class="ttdoc">Description of a Allocator to be created.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2144</div></div>
 <div class="ttc" id="astruct_vma_allocation_html"><div class="ttname"><a href="struct_vma_allocation.html">VmaAllocation</a></div><div class="ttdoc">Represents single memory allocation.</div></div>
-<div class="ttc" id="avk__mem__alloc_8h_html_aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7"><div class="ttname"><a href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7">VMA_MEMORY_USAGE_GPU_ONLY</a></div><div class="ttdeci">@ VMA_MEMORY_USAGE_GPU_ONLY</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2466</div></div>
+<div class="ttc" id="avk__mem__alloc_8h_html_aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7"><div class="ttname"><a href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7">VMA_MEMORY_USAGE_GPU_ONLY</a></div><div class="ttdeci">@ VMA_MEMORY_USAGE_GPU_ONLY</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2456</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_aa8d164061c88f22fb1fd3c8f3534bc1d"><div class="ttname"><a href="vk__mem__alloc_8h.html#aa8d164061c88f22fb1fd3c8f3534bc1d">vmaDestroyAllocator</a></div><div class="ttdeci">void vmaDestroyAllocator(VmaAllocator allocator)</div><div class="ttdoc">Destroys allocator object.</div></div>
-<div class="ttc" id="astruct_vma_allocator_create_info_html_ad924ddd77b04039c88d0c09b0ffcd500"><div class="ttname"><a href="struct_vma_allocator_create_info.html#ad924ddd77b04039c88d0c09b0ffcd500">VmaAllocatorCreateInfo::device</a></div><div class="ttdeci">VkDevice device</div><div class="ttdoc">Vulkan device.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2159</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html_accb8b06b1f677d858cb9af20705fa910"><div class="ttname"><a href="struct_vma_allocation_create_info.html#accb8b06b1f677d858cb9af20705fa910">VmaAllocationCreateInfo::usage</a></div><div class="ttdeci">VmaMemoryUsage usage</div><div class="ttdoc">Intended usage of memory.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2632</div></div>
+<div class="ttc" id="astruct_vma_allocator_create_info_html_ad924ddd77b04039c88d0c09b0ffcd500"><div class="ttname"><a href="struct_vma_allocator_create_info.html#ad924ddd77b04039c88d0c09b0ffcd500">VmaAllocatorCreateInfo::device</a></div><div class="ttdeci">VkDevice device</div><div class="ttdoc">Vulkan device.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2153</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html_accb8b06b1f677d858cb9af20705fa910"><div class="ttname"><a href="struct_vma_allocation_create_info.html#accb8b06b1f677d858cb9af20705fa910">VmaAllocationCreateInfo::usage</a></div><div class="ttdeci">VmaMemoryUsage usage</div><div class="ttdoc">Intended usage of memory.</div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2622</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_ac72ee55598617e8eecca384e746bab51"><div class="ttname"><a href="vk__mem__alloc_8h.html#ac72ee55598617e8eecca384e746bab51">vmaCreateBuffer</a></div><div class="ttdeci">VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_a200692051ddb34240248234f5f4c17bb"><div class="ttname"><a href="vk__mem__alloc_8h.html#a200692051ddb34240248234f5f4c17bb">vmaCreateAllocator</a></div><div class="ttdeci">VkResult vmaCreateAllocator(const VmaAllocatorCreateInfo *pCreateInfo, VmaAllocator *pAllocator)</div><div class="ttdoc">Creates Allocator object.</div></div>
 <div class="ttc" id="avk__mem__alloc_8h_html_a0d9f4e4ba5bf9aab1f1c746387753d77"><div class="ttname"><a href="vk__mem__alloc_8h.html#a0d9f4e4ba5bf9aab1f1c746387753d77">vmaDestroyBuffer</a></div><div class="ttdeci">void vmaDestroyBuffer(VmaAllocator allocator, VkBuffer buffer, VmaAllocation allocation)</div><div class="ttdoc">Destroys Vulkan buffer and frees allocated memory.</div></div>
-<div class="ttc" id="astruct_vma_allocation_create_info_html"><div class="ttname"><a href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a></div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2623</div></div>
+<div class="ttc" id="astruct_vma_allocation_create_info_html"><div class="ttname"><a href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a></div><div class="ttdef"><b>Definition:</b> vk_mem_alloc.h:2613</div></div>
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
 Generated by &#160;<a href="http://www.doxygen.org/index.html">
diff --git a/docs/html/search/all_c.js b/docs/html/search/all_c.js
index 379eeaa..7aff7ee 100644
--- a/docs/html/search/all_c.js
+++ b/docs/html/search/all_c.js
@@ -5,8 +5,8 @@
   ['pallocationschanged_49',['pAllocationsChanged',['../struct_vma_defragmentation_info2.html#a76d51a644dc7f5405d0cdd0025ecd0cc',1,'VmaDefragmentationInfo2']]],
   ['pdevicememorycallbacks_50',['pDeviceMemoryCallbacks',['../struct_vma_allocator_create_info.html#af1380969b5e1ea4c3184a877892d260e',1,'VmaAllocatorCreateInfo']]],
   ['pfilepath_51',['pFilePath',['../struct_vma_record_settings.html#a6cb1fdbf6bcb610b68f2010dd629e89d',1,'VmaRecordSettings']]],
-  ['pfn_5fvmaallocatedevicememoryfunction_52',['PFN_vmaAllocateDeviceMemoryFunction',['../vk__mem__alloc_8h.html#ab6a6477cda1ce775b30bde96d766203b',1,'vk_mem_alloc.h']]],
-  ['pfn_5fvmafreedevicememoryfunction_53',['PFN_vmaFreeDeviceMemoryFunction',['../vk__mem__alloc_8h.html#aef2545dc2e9dd4f29ab9ba6ac6fe2f49',1,'vk_mem_alloc.h']]],
+  ['pfn_5fvmaallocatedevicememoryfunction_52',['PFN_vmaAllocateDeviceMemoryFunction',['../vk__mem__alloc_8h.html#a7e1ed85f7799600b03ad51a77acc21f3',1,'vk_mem_alloc.h']]],
+  ['pfn_5fvmafreedevicememoryfunction_53',['PFN_vmaFreeDeviceMemoryFunction',['../vk__mem__alloc_8h.html#a154ccaaf53dc2c36378f80f0c4f3679b',1,'vk_mem_alloc.h']]],
   ['pfnallocate_54',['pfnAllocate',['../struct_vma_device_memory_callbacks.html#a4f17f7b255101e733b44d5633aceabfb',1,'VmaDeviceMemoryCallbacks']]],
   ['pfnfree_55',['pfnFree',['../struct_vma_device_memory_callbacks.html#abe8a3328bbc916f6f712fdb6b299444c',1,'VmaDeviceMemoryCallbacks']]],
   ['pheapsizelimit_56',['pHeapSizeLimit',['../struct_vma_allocator_create_info.html#a31c192aa6cbffa33279f6d9f0c47c44b',1,'VmaAllocatorCreateInfo']]],
@@ -19,6 +19,6 @@
   ['precordsettings_63',['pRecordSettings',['../struct_vma_allocator_create_info.html#ace2aa4877b16a42b0b7673d4e26000ee',1,'VmaAllocatorCreateInfo']]],
   ['preferredflags_64',['preferredFlags',['../struct_vma_allocation_create_info.html#a7fe8d81a1ad10b2a2faacacee5b15d6d',1,'VmaAllocationCreateInfo']]],
   ['preferredlargeheapblocksize_65',['preferredLargeHeapBlockSize',['../struct_vma_allocator_create_info.html#a8e4714298e3121cdd8b214a1ae7a637a',1,'VmaAllocatorCreateInfo']]],
-  ['puserdata_66',['pUserData',['../struct_vma_allocation_create_info.html#a8259e85c272683434f4abb4ddddffe19',1,'VmaAllocationCreateInfo::pUserData()'],['../struct_vma_allocation_info.html#adc507656149c04de7ed95d0042ba2a13',1,'VmaAllocationInfo::pUserData()']]],
+  ['puserdata_66',['pUserData',['../struct_vma_device_memory_callbacks.html#a24052de0937ddd54015a2df0363903c6',1,'VmaDeviceMemoryCallbacks::pUserData()'],['../struct_vma_allocation_create_info.html#a8259e85c272683434f4abb4ddddffe19',1,'VmaAllocationCreateInfo::pUserData()'],['../struct_vma_allocation_info.html#adc507656149c04de7ed95d0042ba2a13',1,'VmaAllocationInfo::pUserData()']]],
   ['pvulkanfunctions_67',['pVulkanFunctions',['../struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd',1,'VmaAllocatorCreateInfo']]]
 ];
diff --git a/docs/html/search/typedefs_0.js b/docs/html/search/typedefs_0.js
index 2ee7a1e..cc8b3cd 100644
--- a/docs/html/search/typedefs_0.js
+++ b/docs/html/search/typedefs_0.js
@@ -1,5 +1,5 @@
 var searchData=
 [
-  ['pfn_5fvmaallocatedevicememoryfunction_391',['PFN_vmaAllocateDeviceMemoryFunction',['../vk__mem__alloc_8h.html#ab6a6477cda1ce775b30bde96d766203b',1,'vk_mem_alloc.h']]],
-  ['pfn_5fvmafreedevicememoryfunction_392',['PFN_vmaFreeDeviceMemoryFunction',['../vk__mem__alloc_8h.html#aef2545dc2e9dd4f29ab9ba6ac6fe2f49',1,'vk_mem_alloc.h']]]
+  ['pfn_5fvmaallocatedevicememoryfunction_391',['PFN_vmaAllocateDeviceMemoryFunction',['../vk__mem__alloc_8h.html#a7e1ed85f7799600b03ad51a77acc21f3',1,'vk_mem_alloc.h']]],
+  ['pfn_5fvmafreedevicememoryfunction_392',['PFN_vmaFreeDeviceMemoryFunction',['../vk__mem__alloc_8h.html#a154ccaaf53dc2c36378f80f0c4f3679b',1,'vk_mem_alloc.h']]]
 ];
diff --git a/docs/html/search/variables_8.js b/docs/html/search/variables_8.js
index 3873a97..c9ff9e3 100644
--- a/docs/html/search/variables_8.js
+++ b/docs/html/search/variables_8.js
@@ -17,6 +17,6 @@
   ['precordsettings_357',['pRecordSettings',['../struct_vma_allocator_create_info.html#ace2aa4877b16a42b0b7673d4e26000ee',1,'VmaAllocatorCreateInfo']]],
   ['preferredflags_358',['preferredFlags',['../struct_vma_allocation_create_info.html#a7fe8d81a1ad10b2a2faacacee5b15d6d',1,'VmaAllocationCreateInfo']]],
   ['preferredlargeheapblocksize_359',['preferredLargeHeapBlockSize',['../struct_vma_allocator_create_info.html#a8e4714298e3121cdd8b214a1ae7a637a',1,'VmaAllocatorCreateInfo']]],
-  ['puserdata_360',['pUserData',['../struct_vma_allocation_create_info.html#a8259e85c272683434f4abb4ddddffe19',1,'VmaAllocationCreateInfo::pUserData()'],['../struct_vma_allocation_info.html#adc507656149c04de7ed95d0042ba2a13',1,'VmaAllocationInfo::pUserData()']]],
+  ['puserdata_360',['pUserData',['../struct_vma_device_memory_callbacks.html#a24052de0937ddd54015a2df0363903c6',1,'VmaDeviceMemoryCallbacks::pUserData()'],['../struct_vma_allocation_create_info.html#a8259e85c272683434f4abb4ddddffe19',1,'VmaAllocationCreateInfo::pUserData()'],['../struct_vma_allocation_info.html#adc507656149c04de7ed95d0042ba2a13',1,'VmaAllocationInfo::pUserData()']]],
   ['pvulkanfunctions_361',['pVulkanFunctions',['../struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd',1,'VmaAllocatorCreateInfo']]]
 ];
diff --git a/docs/html/struct_vma_allocator_create_info.html b/docs/html/struct_vma_allocator_create_info.html
index 2b38cf8..41a7afd 100644
--- a/docs/html/struct_vma_allocator_create_info.html
+++ b/docs/html/struct_vma_allocator_create_info.html
@@ -101,7 +101,7 @@
 <tr class="memdesc:a31c192aa6cbffa33279f6d9f0c47c44b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Either null or a pointer to an array of limits on maximum number of bytes that can be allocated out of particular Vulkan memory heap.  <a href="struct_vma_allocator_create_info.html#a31c192aa6cbffa33279f6d9f0c47c44b">More...</a><br /></td></tr>
 <tr class="separator:a31c192aa6cbffa33279f6d9f0c47c44b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a3dc197be3227da7338b1643f70db36bd"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd">pVulkanFunctions</a></td></tr>
-<tr class="memdesc:a3dc197be3227da7338b1643f70db36bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointers to Vulkan functions. Can be null if you leave define <code>VMA_STATIC_VULKAN_FUNCTIONS 1</code>.  <a href="struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd">More...</a><br /></td></tr>
+<tr class="memdesc:a3dc197be3227da7338b1643f70db36bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointers to Vulkan functions. Can be null.  <a href="struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd">More...</a><br /></td></tr>
 <tr class="separator:a3dc197be3227da7338b1643f70db36bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ace2aa4877b16a42b0b7673d4e26000ee"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="struct_vma_record_settings.html">VmaRecordSettings</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_allocator_create_info.html#ace2aa4877b16a42b0b7673d4e26000ee">pRecordSettings</a></td></tr>
 <tr class="memdesc:ace2aa4877b16a42b0b7673d4e26000ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parameters for recording of VMA calls. Can be null.  <a href="struct_vma_allocator_create_info.html#ace2aa4877b16a42b0b7673d4e26000ee">More...</a><br /></td></tr>
@@ -306,9 +306,8 @@
       </table>
 </div><div class="memdoc">
 
-<p>Pointers to Vulkan functions. Can be null if you leave define <code>VMA_STATIC_VULKAN_FUNCTIONS 1</code>. </p>
-<p>If you leave define <code>VMA_STATIC_VULKAN_FUNCTIONS 1</code> in configuration section, you can pass null as this member, because the library will fetch pointers to Vulkan functions internally in a static way, like: </p><pre class="fragment">vulkanFunctions.vkAllocateMemory = &amp;vkAllocateMemory;
-</pre><p>Fill this member if you want to provide your own pointers to Vulkan functions, e.g. fetched using <code>vkGetInstanceProcAddr()</code> and <code>vkGetDeviceProcAddr()</code>. </p>
+<p>Pointers to Vulkan functions. Can be null. </p>
+<p>You can pass null as this member, because the library will fetch pointers to Vulkan functions internally. Fill this member if you want to provide your own pointers to Vulkan functions, e.g. fetched using <code>vkGetInstanceProcAddr()</code> and <code>vkGetDeviceProcAddr()</code>. </p>
 
 </div>
 </div>
diff --git a/docs/html/struct_vma_device_memory_callbacks-members.html b/docs/html/struct_vma_device_memory_callbacks-members.html
index 4d73279..5f78791 100644
--- a/docs/html/struct_vma_device_memory_callbacks-members.html
+++ b/docs/html/struct_vma_device_memory_callbacks-members.html
@@ -70,6 +70,7 @@
 <table class="directory">
   <tr class="even"><td class="entry"><a class="el" href="struct_vma_device_memory_callbacks.html#a4f17f7b255101e733b44d5633aceabfb">pfnAllocate</a></td><td class="entry"><a class="el" href="struct_vma_device_memory_callbacks.html">VmaDeviceMemoryCallbacks</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="struct_vma_device_memory_callbacks.html#abe8a3328bbc916f6f712fdb6b299444c">pfnFree</a></td><td class="entry"><a class="el" href="struct_vma_device_memory_callbacks.html">VmaDeviceMemoryCallbacks</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="struct_vma_device_memory_callbacks.html#a24052de0937ddd54015a2df0363903c6">pUserData</a></td><td class="entry"><a class="el" href="struct_vma_device_memory_callbacks.html">VmaDeviceMemoryCallbacks</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/html/struct_vma_device_memory_callbacks.html b/docs/html/struct_vma_device_memory_callbacks.html
index 84a29b5..21d232a 100644
--- a/docs/html/struct_vma_device_memory_callbacks.html
+++ b/docs/html/struct_vma_device_memory_callbacks.html
@@ -76,12 +76,15 @@
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
 Public Attributes</h2></td></tr>
-<tr class="memitem:a4f17f7b255101e733b44d5633aceabfb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vk__mem__alloc_8h.html#ab6a6477cda1ce775b30bde96d766203b">PFN_vmaAllocateDeviceMemoryFunction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_device_memory_callbacks.html#a4f17f7b255101e733b44d5633aceabfb">pfnAllocate</a></td></tr>
+<tr class="memitem:a4f17f7b255101e733b44d5633aceabfb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vk__mem__alloc_8h.html#a7e1ed85f7799600b03ad51a77acc21f3">PFN_vmaAllocateDeviceMemoryFunction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_device_memory_callbacks.html#a4f17f7b255101e733b44d5633aceabfb">pfnAllocate</a></td></tr>
 <tr class="memdesc:a4f17f7b255101e733b44d5633aceabfb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optional, can be null.  <a href="struct_vma_device_memory_callbacks.html#a4f17f7b255101e733b44d5633aceabfb">More...</a><br /></td></tr>
 <tr class="separator:a4f17f7b255101e733b44d5633aceabfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:abe8a3328bbc916f6f712fdb6b299444c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vk__mem__alloc_8h.html#aef2545dc2e9dd4f29ab9ba6ac6fe2f49">PFN_vmaFreeDeviceMemoryFunction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_device_memory_callbacks.html#abe8a3328bbc916f6f712fdb6b299444c">pfnFree</a></td></tr>
+<tr class="memitem:abe8a3328bbc916f6f712fdb6b299444c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="vk__mem__alloc_8h.html#a154ccaaf53dc2c36378f80f0c4f3679b">PFN_vmaFreeDeviceMemoryFunction</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_device_memory_callbacks.html#abe8a3328bbc916f6f712fdb6b299444c">pfnFree</a></td></tr>
 <tr class="memdesc:abe8a3328bbc916f6f712fdb6b299444c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optional, can be null.  <a href="struct_vma_device_memory_callbacks.html#abe8a3328bbc916f6f712fdb6b299444c">More...</a><br /></td></tr>
 <tr class="separator:abe8a3328bbc916f6f712fdb6b299444c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a24052de0937ddd54015a2df0363903c6"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_vma_device_memory_callbacks.html#a24052de0937ddd54015a2df0363903c6">pUserData</a></td></tr>
+<tr class="memdesc:a24052de0937ddd54015a2df0363903c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optional, can be null.  <a href="struct_vma_device_memory_callbacks.html#a24052de0937ddd54015a2df0363903c6">More...</a><br /></td></tr>
+<tr class="separator:a24052de0937ddd54015a2df0363903c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>Set of callbacks that the library will call for <code>vkAllocateMemory</code> and <code>vkFreeMemory</code>. </p>
@@ -95,7 +98,7 @@
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="vk__mem__alloc_8h.html#ab6a6477cda1ce775b30bde96d766203b">PFN_vmaAllocateDeviceMemoryFunction</a> VmaDeviceMemoryCallbacks::pfnAllocate</td>
+          <td class="memname"><a class="el" href="vk__mem__alloc_8h.html#a7e1ed85f7799600b03ad51a77acc21f3">PFN_vmaAllocateDeviceMemoryFunction</a> VmaDeviceMemoryCallbacks::pfnAllocate</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -111,7 +114,23 @@
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="vk__mem__alloc_8h.html#aef2545dc2e9dd4f29ab9ba6ac6fe2f49">PFN_vmaFreeDeviceMemoryFunction</a> VmaDeviceMemoryCallbacks::pfnFree</td>
+          <td class="memname"><a class="el" href="vk__mem__alloc_8h.html#a154ccaaf53dc2c36378f80f0c4f3679b">PFN_vmaFreeDeviceMemoryFunction</a> VmaDeviceMemoryCallbacks::pfnFree</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Optional, can be null. </p>
+
+</div>
+</div>
+<a id="a24052de0937ddd54015a2df0363903c6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a24052de0937ddd54015a2df0363903c6">&#9670;&nbsp;</a></span>pUserData</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* VmaDeviceMemoryCallbacks::pUserData</td>
         </tr>
       </table>
 </div><div class="memdoc">
diff --git a/docs/html/struct_vma_vulkan_functions.html b/docs/html/struct_vma_vulkan_functions.html
index dc3277c..5421985 100644
--- a/docs/html/struct_vma_vulkan_functions.html
+++ b/docs/html/struct_vma_vulkan_functions.html
@@ -113,7 +113,7 @@
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>Pointers to some Vulkan functions - a subset used by the library. </p>
-<p>Used in <a class="el" href="struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd" title="Pointers to Vulkan functions. Can be null if you leave define VMA_STATIC_VULKAN_FUNCTIONS 1.">VmaAllocatorCreateInfo::pVulkanFunctions</a>. </p>
+<p>Used in <a class="el" href="struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd" title="Pointers to Vulkan functions. Can be null.">VmaAllocatorCreateInfo::pVulkanFunctions</a>. </p>
 </div><h2 class="groupheader">Member Data Documentation</h2>
 <a id="a2943bf99dfd784a0e8f599d987e22e6c"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a2943bf99dfd784a0e8f599d987e22e6c">&#9670;&nbsp;</a></span>vkAllocateMemory</h2>
diff --git a/docs/html/vk__mem__alloc_8h.html b/docs/html/vk__mem__alloc_8h.html
index 255fa6c..9a88bf8 100644
--- a/docs/html/vk__mem__alloc_8h.html
+++ b/docs/html/vk__mem__alloc_8h.html
@@ -148,12 +148,12 @@
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ab6a6477cda1ce775b30bde96d766203b"><td class="memItemLeft" align="right" valign="top">typedef void(VKAPI_PTR *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vk__mem__alloc_8h.html#ab6a6477cda1ce775b30bde96d766203b">PFN_vmaAllocateDeviceMemoryFunction</a>) (<a class="el" href="struct_vma_allocator.html">VmaAllocator</a> allocator, uint32_t memoryType, VkDeviceMemory memory, VkDeviceSize size)</td></tr>
-<tr class="memdesc:ab6a6477cda1ce775b30bde96d766203b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function called after successful vkAllocateMemory.  <a href="vk__mem__alloc_8h.html#ab6a6477cda1ce775b30bde96d766203b">More...</a><br /></td></tr>
-<tr class="separator:ab6a6477cda1ce775b30bde96d766203b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aef2545dc2e9dd4f29ab9ba6ac6fe2f49"><td class="memItemLeft" align="right" valign="top">typedef void(VKAPI_PTR *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vk__mem__alloc_8h.html#aef2545dc2e9dd4f29ab9ba6ac6fe2f49">PFN_vmaFreeDeviceMemoryFunction</a>) (<a class="el" href="struct_vma_allocator.html">VmaAllocator</a> allocator, uint32_t memoryType, VkDeviceMemory memory, VkDeviceSize size)</td></tr>
-<tr class="memdesc:aef2545dc2e9dd4f29ab9ba6ac6fe2f49"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function called before vkFreeMemory.  <a href="vk__mem__alloc_8h.html#aef2545dc2e9dd4f29ab9ba6ac6fe2f49">More...</a><br /></td></tr>
-<tr class="separator:aef2545dc2e9dd4f29ab9ba6ac6fe2f49"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e1ed85f7799600b03ad51a77acc21f3"><td class="memItemLeft" align="right" valign="top">typedef void(VKAPI_PTR *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vk__mem__alloc_8h.html#a7e1ed85f7799600b03ad51a77acc21f3">PFN_vmaAllocateDeviceMemoryFunction</a>) (<a class="el" href="struct_vma_allocator.html">VmaAllocator</a> allocator, uint32_t memoryType, VkDeviceMemory memory, VkDeviceSize size, void *pUserData)</td></tr>
+<tr class="memdesc:a7e1ed85f7799600b03ad51a77acc21f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function called after successful vkAllocateMemory.  <a href="vk__mem__alloc_8h.html#a7e1ed85f7799600b03ad51a77acc21f3">More...</a><br /></td></tr>
+<tr class="separator:a7e1ed85f7799600b03ad51a77acc21f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a154ccaaf53dc2c36378f80f0c4f3679b"><td class="memItemLeft" align="right" valign="top">typedef void(VKAPI_PTR *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vk__mem__alloc_8h.html#a154ccaaf53dc2c36378f80f0c4f3679b">PFN_vmaFreeDeviceMemoryFunction</a>) (<a class="el" href="struct_vma_allocator.html">VmaAllocator</a> allocator, uint32_t memoryType, VkDeviceMemory memory, VkDeviceSize size, void *pUserData)</td></tr>
+<tr class="memdesc:a154ccaaf53dc2c36378f80f0c4f3679b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function called before vkFreeMemory.  <a href="vk__mem__alloc_8h.html#a154ccaaf53dc2c36378f80f0c4f3679b">More...</a><br /></td></tr>
+<tr class="separator:a154ccaaf53dc2c36378f80f0c4f3679b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a77692d3c8770ea8882d573206bd27b2b"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="struct_vma_device_memory_callbacks.html">VmaDeviceMemoryCallbacks</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="vk__mem__alloc_8h.html#a77692d3c8770ea8882d573206bd27b2b">VmaDeviceMemoryCallbacks</a></td></tr>
 <tr class="memdesc:a77692d3c8770ea8882d573206bd27b2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set of callbacks that the library will call for <code>vkAllocateMemory</code> and <code>vkFreeMemory</code>.  <a href="vk__mem__alloc_8h.html#a77692d3c8770ea8882d573206bd27b2b">More...</a><br /></td></tr>
 <tr class="separator:a77692d3c8770ea8882d573206bd27b2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -567,14 +567,14 @@
 </div>
 </div>
 <h2 class="groupheader">Typedef Documentation</h2>
-<a id="ab6a6477cda1ce775b30bde96d766203b"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ab6a6477cda1ce775b30bde96d766203b">&#9670;&nbsp;</a></span>PFN_vmaAllocateDeviceMemoryFunction</h2>
+<a id="a7e1ed85f7799600b03ad51a77acc21f3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7e1ed85f7799600b03ad51a77acc21f3">&#9670;&nbsp;</a></span>PFN_vmaAllocateDeviceMemoryFunction</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef void(VKAPI_PTR * PFN_vmaAllocateDeviceMemoryFunction) (<a class="el" href="struct_vma_allocator.html">VmaAllocator</a> allocator, uint32_t memoryType, VkDeviceMemory memory, VkDeviceSize size)</td>
+          <td class="memname">typedef void(VKAPI_PTR * PFN_vmaAllocateDeviceMemoryFunction) (<a class="el" href="struct_vma_allocator.html">VmaAllocator</a> allocator, uint32_t memoryType, VkDeviceMemory memory, VkDeviceSize size, void *pUserData)</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -583,14 +583,14 @@
 
 </div>
 </div>
-<a id="aef2545dc2e9dd4f29ab9ba6ac6fe2f49"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aef2545dc2e9dd4f29ab9ba6ac6fe2f49">&#9670;&nbsp;</a></span>PFN_vmaFreeDeviceMemoryFunction</h2>
+<a id="a154ccaaf53dc2c36378f80f0c4f3679b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a154ccaaf53dc2c36378f80f0c4f3679b">&#9670;&nbsp;</a></span>PFN_vmaFreeDeviceMemoryFunction</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef void(VKAPI_PTR * PFN_vmaFreeDeviceMemoryFunction) (<a class="el" href="struct_vma_allocator.html">VmaAllocator</a> allocator, uint32_t memoryType, VkDeviceMemory memory, VkDeviceSize size)</td>
+          <td class="memname">typedef void(VKAPI_PTR * PFN_vmaFreeDeviceMemoryFunction) (<a class="el" href="struct_vma_allocator.html">VmaAllocator</a> allocator, uint32_t memoryType, VkDeviceMemory memory, VkDeviceSize size, void *pUserData)</td>
         </tr>
       </table>
 </div><div class="memdoc">
@@ -1033,7 +1033,7 @@
 </div><div class="memdoc">
 
 <p>Pointers to some Vulkan functions - a subset used by the library. </p>
-<p>Used in <a class="el" href="struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd" title="Pointers to Vulkan functions. Can be null if you leave define VMA_STATIC_VULKAN_FUNCTIONS 1.">VmaAllocatorCreateInfo::pVulkanFunctions</a>. </p>
+<p>Used in <a class="el" href="struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd" title="Pointers to Vulkan functions. Can be null.">VmaAllocatorCreateInfo::pVulkanFunctions</a>. </p>
 
 </div>
 </div>
diff --git a/docs/html/vk__mem__alloc_8h_source.html b/docs/html/vk__mem__alloc_8h_source.html
index 0c5fb30..478c804 100644
--- a/docs/html/vk__mem__alloc_8h_source.html
+++ b/docs/html/vk__mem__alloc_8h_source.html
@@ -94,9253 +94,9266 @@
 <div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
 <div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#endif</span></div>
 <div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160; </div>
-<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160;<span class="comment">Define this macro to 0/1 to disable/enable support for recording functionality,</span></div>
-<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160;<span class="comment">available through VmaAllocatorCreateInfo::pRecordSettings.</span></div>
-<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160;<span class="preprocessor">#ifndef VMA_RECORDING_ENABLED</span></div>
-<div class="line"><a name="l01875"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a1f0c126759fc96ccb6e2d23c101d770c"> 1875</a></span>&#160;<span class="preprocessor">    #define VMA_RECORDING_ENABLED 0</span></div>
-<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160; </div>
-<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160;<span class="preprocessor">#ifndef NOMINMAX</span></div>
-<div class="line"><a name="l01879"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a9f918755b601cf4bffca775992e6fb90"> 1879</a></span>&#160;<span class="preprocessor">    #define NOMINMAX // For windows.h</span></div>
-<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160; </div>
-<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;<span class="preprocessor">#ifndef VULKAN_H_</span></div>
-<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;<span class="preprocessor">    #include &lt;vulkan/vulkan.h&gt;</span></div>
-<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160; </div>
-<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160;<span class="preprocessor">#if VMA_RECORDING_ENABLED</span></div>
-<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;<span class="preprocessor">    #include &lt;windows.h&gt;</span></div>
-<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160; </div>
-<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;<span class="comment">// Define this macro to declare maximum supported Vulkan version in format AAABBBCCC,</span></div>
-<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;<span class="comment">// where AAA = major, BBB = minor, CCC = patch.</span></div>
-<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160;<span class="comment">// If you want to use version &gt; 1.0, it still needs to be enabled via VmaAllocatorCreateInfo::vulkanApiVersion.</span></div>
-<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160;<span class="preprocessor">#if !defined(VMA_VULKAN_VERSION)</span></div>
-<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;<span class="preprocessor">    #if defined(VK_VERSION_1_2)</span></div>
-<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;<span class="preprocessor">        #define VMA_VULKAN_VERSION 1002000</span></div>
-<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;<span class="preprocessor">    #elif defined(VK_VERSION_1_1)</span></div>
-<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;<span class="preprocessor">        #define VMA_VULKAN_VERSION 1001000</span></div>
-<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160;<span class="preprocessor">    #else</span></div>
-<div class="line"><a name="l01899"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a1a2407c283893638cc039bb31fcd74b6"> 1899</a></span>&#160;<span class="preprocessor">        #define VMA_VULKAN_VERSION 1000000</span></div>
-<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160;<span class="preprocessor">    #endif</span></div>
-<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160; </div>
-<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;<span class="preprocessor">#if !defined(VMA_DEDICATED_ALLOCATION)</span></div>
-<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160;<span class="preprocessor">    #if VK_KHR_get_memory_requirements2 &amp;&amp; VK_KHR_dedicated_allocation</span></div>
-<div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160;<span class="preprocessor">        #define VMA_DEDICATED_ALLOCATION 1</span></div>
-<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;<span class="preprocessor">    #else</span></div>
-<div class="line"><a name="l01907"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#af7b860e63b96d11e44ae8587ba06bbf4"> 1907</a></span>&#160;<span class="preprocessor">        #define VMA_DEDICATED_ALLOCATION 0</span></div>
-<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160;<span class="preprocessor">    #endif</span></div>
-<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160; </div>
-<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;<span class="preprocessor">#if !defined(VMA_BIND_MEMORY2)</span></div>
-<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160;<span class="preprocessor">    #if VK_KHR_bind_memory2</span></div>
-<div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160;<span class="preprocessor">        #define VMA_BIND_MEMORY2 1</span></div>
-<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;<span class="preprocessor">    #else</span></div>
-<div class="line"><a name="l01915"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a88bef97f86d70a34a4c0746e09a2680d"> 1915</a></span>&#160;<span class="preprocessor">        #define VMA_BIND_MEMORY2 0</span></div>
-<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160;<span class="preprocessor">    #endif</span></div>
-<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160; </div>
-<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160;<span class="preprocessor">#if !defined(VMA_MEMORY_BUDGET)</span></div>
-<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160;<span class="preprocessor">    #if VK_EXT_memory_budget &amp;&amp; (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION &gt;= 1001000)</span></div>
-<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;<span class="preprocessor">        #define VMA_MEMORY_BUDGET 1</span></div>
-<div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160;<span class="preprocessor">    #else</span></div>
-<div class="line"><a name="l01923"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a05decf1cf4ebf767beba7acca6c1ec3a"> 1923</a></span>&#160;<span class="preprocessor">        #define VMA_MEMORY_BUDGET 0</span></div>
-<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;<span class="preprocessor">    #endif</span></div>
-<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160; </div>
-<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;<span class="comment">// Defined to 1 when VK_KHR_buffer_device_address device extension or equivalent core Vulkan 1.2 feature is defined in its headers.</span></div>
-<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160;<span class="preprocessor">#if !defined(VMA_BUFFER_DEVICE_ADDRESS)</span></div>
-<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160;<span class="preprocessor">    #if VK_KHR_buffer_device_address || VK_EXT_buffer_device_address || VMA_VULKAN_VERSION &gt;= 1002000</span></div>
-<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;<span class="preprocessor">        #define VMA_BUFFER_DEVICE_ADDRESS 1</span></div>
-<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160;<span class="preprocessor">    #else</span></div>
-<div class="line"><a name="l01932"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a7f9d5e71b70dd1a137c303a8a8262c10"> 1932</a></span>&#160;<span class="preprocessor">        #define VMA_BUFFER_DEVICE_ADDRESS 0</span></div>
-<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160;<span class="preprocessor">    #endif</span></div>
-<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160; </div>
-<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;<span class="comment">// Define these macros to decorate all public functions with additional code,</span></div>
-<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160;<span class="comment">// before and after returned type, appropriately. This may be useful for</span></div>
-<div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160;<span class="comment">// exporing the functions when compiling VMA as a separate library. Example:</span></div>
-<div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160;<span class="comment">// #define VMA_CALL_PRE  __declspec(dllexport)</span></div>
-<div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160;<span class="comment">// #define VMA_CALL_POST __cdecl</span></div>
-<div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160;<span class="preprocessor">#ifndef VMA_CALL_PRE</span></div>
-<div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160;<span class="preprocessor">    #define VMA_CALL_PRE</span></div>
-<div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160;<span class="preprocessor">#ifndef VMA_CALL_POST</span></div>
-<div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160;<span class="preprocessor">    #define VMA_CALL_POST</span></div>
-<div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160; </div>
-<div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160;VK_DEFINE_HANDLE(<a class="code" href="struct_vma_allocator.html">VmaAllocator</a>)</div>
-<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160; </div>
-<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160;<span class="keyword">typedef</span> void (VKAPI_PTR *<a class="code" href="vk__mem__alloc_8h.html#ab6a6477cda1ce775b30bde96d766203b">PFN_vmaAllocateDeviceMemoryFunction</a>)(</div>
-<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a>      allocator,</div>
-<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160;    uint32_t          memoryType,</div>
-<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160;    VkDeviceMemory    memory,</div>
-<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;    VkDeviceSize      size);</div>
-<div class="line"><a name="l01966"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#aef2545dc2e9dd4f29ab9ba6ac6fe2f49"> 1966</a></span>&#160;<span class="keyword">typedef</span> void (VKAPI_PTR *<a class="code" href="vk__mem__alloc_8h.html#aef2545dc2e9dd4f29ab9ba6ac6fe2f49">PFN_vmaFreeDeviceMemoryFunction</a>)(</div>
-<div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a>      allocator,</div>
-<div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160;    uint32_t          memoryType,</div>
-<div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160;    VkDeviceMemory    memory,</div>
-<div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160;    VkDeviceSize      size);</div>
-<div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160; </div>
-<div class="line"><a name="l01979"></a><span class="lineno"><a class="line" href="struct_vma_device_memory_callbacks.html"> 1979</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_device_memory_callbacks.html">VmaDeviceMemoryCallbacks</a> {</div>
-<div class="line"><a name="l01981"></a><span class="lineno"><a class="line" href="struct_vma_device_memory_callbacks.html#a4f17f7b255101e733b44d5633aceabfb"> 1981</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ab6a6477cda1ce775b30bde96d766203b">PFN_vmaAllocateDeviceMemoryFunction</a> <a class="code" href="struct_vma_device_memory_callbacks.html#a4f17f7b255101e733b44d5633aceabfb">pfnAllocate</a>;</div>
-<div class="line"><a name="l01983"></a><span class="lineno"><a class="line" href="struct_vma_device_memory_callbacks.html#abe8a3328bbc916f6f712fdb6b299444c"> 1983</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#aef2545dc2e9dd4f29ab9ba6ac6fe2f49">PFN_vmaFreeDeviceMemoryFunction</a> <a class="code" href="struct_vma_device_memory_callbacks.html#abe8a3328bbc916f6f712fdb6b299444c">pfnFree</a>;</div>
-<div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a77692d3c8770ea8882d573206bd27b2b">VmaDeviceMemoryCallbacks</a>;</div>
-<div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160; </div>
-<div class="line"><a name="l01987"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7c"> 1987</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7c">VmaAllocatorCreateFlagBits</a> {</div>
-<div class="line"><a name="l01992"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca4816ddaed324ba110172ca608a20f29d"> 1992</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca4816ddaed324ba110172ca608a20f29d">VMA_ALLOCATOR_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</a> = 0x00000001,</div>
-<div class="line"><a name="l02017"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7cace7da7cc6e71a625dfa763c55a597878"> 2017</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7cace7da7cc6e71a625dfa763c55a597878">VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT</a> = 0x00000002,</div>
-<div class="line"><a name="l02032"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca8fb75bf07cd184ab903596295e863dee"> 2032</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca8fb75bf07cd184ab903596295e863dee">VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT</a> = 0x00000004,</div>
-<div class="line"><a name="l02044"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca4d4687863f7bd4b418c6006dc04400b0"> 2044</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca4d4687863f7bd4b418c6006dc04400b0">VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT</a> = 0x00000008,</div>
-<div class="line"><a name="l02062"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca2acce4886d8078552efa38878413970f"> 2062</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca2acce4886d8078552efa38878413970f">VMA_ALLOCATOR_CREATE_AMD_DEVICE_COHERENT_MEMORY_BIT</a> = 0x00000010,</div>
-<div class="line"><a name="l02080"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca5f1b28b0414319d1687e1f2b30ab0089"> 2080</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca5f1b28b0414319d1687e1f2b30ab0089">VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT</a> = 0x00000020,</div>
-<div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160; </div>
-<div class="line"><a name="l02082"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7cae4d5ad929caba5f23eb502b13bd5286c"> 2082</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7cae4d5ad929caba5f23eb502b13bd5286c">VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM</a> = 0x7FFFFFFF</div>
-<div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7c">VmaAllocatorCreateFlagBits</a>;</div>
-<div class="line"><a name="l02084"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#acfe6863e160722c2c1bbcf7573fddc4d"> 2084</a></span>&#160;<span class="keyword">typedef</span> VkFlags <a class="code" href="vk__mem__alloc_8h.html#acfe6863e160722c2c1bbcf7573fddc4d">VmaAllocatorCreateFlags</a>;</div>
-<div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160; </div>
-<div class="line"><a name="l02090"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html"> 2090</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a> {</div>
-<div class="line"><a name="l02091"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a77b7a74082823e865dd6546623468f96"> 2091</a></span>&#160;    PFN_vkGetPhysicalDeviceProperties <a class="code" href="struct_vma_vulkan_functions.html#a77b7a74082823e865dd6546623468f96">vkGetPhysicalDeviceProperties</a>;</div>
-<div class="line"><a name="l02092"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a60d25c33bba06bb8592e6875cbaa9830"> 2092</a></span>&#160;    PFN_vkGetPhysicalDeviceMemoryProperties <a class="code" href="struct_vma_vulkan_functions.html#a60d25c33bba06bb8592e6875cbaa9830">vkGetPhysicalDeviceMemoryProperties</a>;</div>
-<div class="line"><a name="l02093"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a2943bf99dfd784a0e8f599d987e22e6c"> 2093</a></span>&#160;    PFN_vkAllocateMemory <a class="code" href="struct_vma_vulkan_functions.html#a2943bf99dfd784a0e8f599d987e22e6c">vkAllocateMemory</a>;</div>
-<div class="line"><a name="l02094"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a4c658701778564d62034255b5dda91b4"> 2094</a></span>&#160;    PFN_vkFreeMemory <a class="code" href="struct_vma_vulkan_functions.html#a4c658701778564d62034255b5dda91b4">vkFreeMemory</a>;</div>
-<div class="line"><a name="l02095"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#ab5c1f38dea3a2cf00dc9eb4f57218c49"> 2095</a></span>&#160;    PFN_vkMapMemory <a class="code" href="struct_vma_vulkan_functions.html#ab5c1f38dea3a2cf00dc9eb4f57218c49">vkMapMemory</a>;</div>
-<div class="line"><a name="l02096"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#acc798589736f0becb317fc2196c1d8b9"> 2096</a></span>&#160;    PFN_vkUnmapMemory <a class="code" href="struct_vma_vulkan_functions.html#acc798589736f0becb317fc2196c1d8b9">vkUnmapMemory</a>;</div>
-<div class="line"><a name="l02097"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a33c322f4c4ad2810f8a9c97a277572f9"> 2097</a></span>&#160;    PFN_vkFlushMappedMemoryRanges <a class="code" href="struct_vma_vulkan_functions.html#a33c322f4c4ad2810f8a9c97a277572f9">vkFlushMappedMemoryRanges</a>;</div>
-<div class="line"><a name="l02098"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a5c1093bc32386a8060c37c9f282078a1"> 2098</a></span>&#160;    PFN_vkInvalidateMappedMemoryRanges <a class="code" href="struct_vma_vulkan_functions.html#a5c1093bc32386a8060c37c9f282078a1">vkInvalidateMappedMemoryRanges</a>;</div>
-<div class="line"><a name="l02099"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a94fc4f3a605d9880bb3c0ba2c2fc80b2"> 2099</a></span>&#160;    PFN_vkBindBufferMemory <a class="code" href="struct_vma_vulkan_functions.html#a94fc4f3a605d9880bb3c0ba2c2fc80b2">vkBindBufferMemory</a>;</div>
-<div class="line"><a name="l02100"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a1338d96a128a5ade648b8d934907c637"> 2100</a></span>&#160;    PFN_vkBindImageMemory <a class="code" href="struct_vma_vulkan_functions.html#a1338d96a128a5ade648b8d934907c637">vkBindImageMemory</a>;</div>
-<div class="line"><a name="l02101"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a5b92901df89a4194b0d12f6071d4d143"> 2101</a></span>&#160;    PFN_vkGetBufferMemoryRequirements <a class="code" href="struct_vma_vulkan_functions.html#a5b92901df89a4194b0d12f6071d4d143">vkGetBufferMemoryRequirements</a>;</div>
-<div class="line"><a name="l02102"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a475f6f49f8debe4d10800592606d53f4"> 2102</a></span>&#160;    PFN_vkGetImageMemoryRequirements <a class="code" href="struct_vma_vulkan_functions.html#a475f6f49f8debe4d10800592606d53f4">vkGetImageMemoryRequirements</a>;</div>
-<div class="line"><a name="l02103"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#ae8084315a25006271a2edfc3a447519f"> 2103</a></span>&#160;    PFN_vkCreateBuffer <a class="code" href="struct_vma_vulkan_functions.html#ae8084315a25006271a2edfc3a447519f">vkCreateBuffer</a>;</div>
-<div class="line"><a name="l02104"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a7e054606faddb07f0e8556f3ed317d45"> 2104</a></span>&#160;    PFN_vkDestroyBuffer <a class="code" href="struct_vma_vulkan_functions.html#a7e054606faddb07f0e8556f3ed317d45">vkDestroyBuffer</a>;</div>
-<div class="line"><a name="l02105"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a23ebe70be515b9b5010a1d691200e325"> 2105</a></span>&#160;    PFN_vkCreateImage <a class="code" href="struct_vma_vulkan_functions.html#a23ebe70be515b9b5010a1d691200e325">vkCreateImage</a>;</div>
-<div class="line"><a name="l02106"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a90b898227039b1dcb3520f6e91f09ffa"> 2106</a></span>&#160;    PFN_vkDestroyImage <a class="code" href="struct_vma_vulkan_functions.html#a90b898227039b1dcb3520f6e91f09ffa">vkDestroyImage</a>;</div>
-<div class="line"><a name="l02107"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#ae5c0db8c89a3b82593dc16aa6a49fa3a"> 2107</a></span>&#160;    PFN_vkCmdCopyBuffer <a class="code" href="struct_vma_vulkan_functions.html#ae5c0db8c89a3b82593dc16aa6a49fa3a">vkCmdCopyBuffer</a>;</div>
-<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160;<span class="preprocessor">#if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION &gt;= 1001000</span></div>
-<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160;    PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR;</div>
-<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160;    PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR;</div>
-<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;<span class="preprocessor">#if VMA_BIND_MEMORY2 || VMA_VULKAN_VERSION &gt;= 1001000</span></div>
-<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160;    PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR;</div>
-<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160;    PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR;</div>
-<div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160;<span class="preprocessor">#if VMA_MEMORY_BUDGET || VMA_VULKAN_VERSION &gt;= 1001000</span></div>
-<div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160;    PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR;</div>
-<div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#abb0a8e3b5040d847571cca6c7f9a8074">VmaVulkanFunctions</a>;</div>
-<div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160; </div>
-<div class="line"><a name="l02122"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4dd2c44642312a147a4e93373a6e64d2"> 2122</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="vk__mem__alloc_8h.html#a4dd2c44642312a147a4e93373a6e64d2">VmaRecordFlagBits</a> {</div>
-<div class="line"><a name="l02128"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4dd2c44642312a147a4e93373a6e64d2a8e7ab322e8732654be627c4ea8f36cc7"> 2128</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a4dd2c44642312a147a4e93373a6e64d2a8e7ab322e8732654be627c4ea8f36cc7">VMA_RECORD_FLUSH_AFTER_CALL_BIT</a> = 0x00000001,</div>
-<div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160;    </div>
-<div class="line"><a name="l02130"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4dd2c44642312a147a4e93373a6e64d2a20dd17d69966dbffa054739d6090b85e"> 2130</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a4dd2c44642312a147a4e93373a6e64d2a20dd17d69966dbffa054739d6090b85e">VMA_RECORD_FLAG_BITS_MAX_ENUM</a> = 0x7FFFFFFF</div>
-<div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a4dd2c44642312a147a4e93373a6e64d2">VmaRecordFlagBits</a>;</div>
-<div class="line"><a name="l02132"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#af3929a1a4547c592fc0b0e55ef452828"> 2132</a></span>&#160;<span class="keyword">typedef</span> VkFlags <a class="code" href="vk__mem__alloc_8h.html#af3929a1a4547c592fc0b0e55ef452828">VmaRecordFlags</a>;</div>
-<div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160; </div>
-<div class="line"><a name="l02135"></a><span class="lineno"><a class="line" href="struct_vma_record_settings.html"> 2135</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_record_settings.html">VmaRecordSettings</a></div>
-<div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160;{</div>
-<div class="line"><a name="l02138"></a><span class="lineno"><a class="line" href="struct_vma_record_settings.html#ad8fdcc92119ae7a8c08c1a564c01d63a"> 2138</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#af3929a1a4547c592fc0b0e55ef452828">VmaRecordFlags</a> <a class="code" href="struct_vma_record_settings.html#ad8fdcc92119ae7a8c08c1a564c01d63a">flags</a>;</div>
-<div class="line"><a name="l02146"></a><span class="lineno"><a class="line" href="struct_vma_record_settings.html#a6cb1fdbf6bcb610b68f2010dd629e89d"> 2146</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_vma_record_settings.html#a6cb1fdbf6bcb610b68f2010dd629e89d">pFilePath</a>;</div>
-<div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a16e21c877101493fce582664cd8754fc">VmaRecordSettings</a>;</div>
-<div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160; </div>
-<div class="line"><a name="l02150"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html"> 2150</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_allocator_create_info.html">VmaAllocatorCreateInfo</a></div>
-<div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;{</div>
-<div class="line"><a name="l02153"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#a392ea2ecbaff93f91a7c49f735ad4346"> 2153</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#acfe6863e160722c2c1bbcf7573fddc4d">VmaAllocatorCreateFlags</a> <a class="code" href="struct_vma_allocator_create_info.html#a392ea2ecbaff93f91a7c49f735ad4346">flags</a>;</div>
+<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;<span class="comment">Define this macro to 0/1 to disable/enable support for recording functionality,</span></div>
+<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;<span class="comment">available through VmaAllocatorCreateInfo::pRecordSettings.</span></div>
+<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160;<span class="preprocessor">#ifndef VMA_RECORDING_ENABLED</span></div>
+<div class="line"><a name="l01865"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a1f0c126759fc96ccb6e2d23c101d770c"> 1865</a></span>&#160;<span class="preprocessor">    #define VMA_RECORDING_ENABLED 0</span></div>
+<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160; </div>
+<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;<span class="preprocessor">#ifndef NOMINMAX</span></div>
+<div class="line"><a name="l01869"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a9f918755b601cf4bffca775992e6fb90"> 1869</a></span>&#160;<span class="preprocessor">    #define NOMINMAX // For windows.h</span></div>
+<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160; </div>
+<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160;<span class="preprocessor">#ifndef VULKAN_H_</span></div>
+<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160;<span class="preprocessor">    #include &lt;vulkan/vulkan.h&gt;</span></div>
+<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160; </div>
+<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160;<span class="preprocessor">#if VMA_RECORDING_ENABLED</span></div>
+<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160;<span class="preprocessor">    #include &lt;windows.h&gt;</span></div>
+<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160; </div>
+<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;<span class="comment">// Define this macro to declare maximum supported Vulkan version in format AAABBBCCC,</span></div>
+<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160;<span class="comment">// where AAA = major, BBB = minor, CCC = patch.</span></div>
+<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;<span class="comment">// If you want to use version &gt; 1.0, it still needs to be enabled via VmaAllocatorCreateInfo::vulkanApiVersion.</span></div>
+<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;<span class="preprocessor">#if !defined(VMA_VULKAN_VERSION)</span></div>
+<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;<span class="preprocessor">    #if defined(VK_VERSION_1_2)</span></div>
+<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;<span class="preprocessor">        #define VMA_VULKAN_VERSION 1002000</span></div>
+<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160;<span class="preprocessor">    #elif defined(VK_VERSION_1_1)</span></div>
+<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;<span class="preprocessor">        #define VMA_VULKAN_VERSION 1001000</span></div>
+<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160;<span class="preprocessor">    #else</span></div>
+<div class="line"><a name="l01889"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a1a2407c283893638cc039bb31fcd74b6"> 1889</a></span>&#160;<span class="preprocessor">        #define VMA_VULKAN_VERSION 1000000</span></div>
+<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160; </div>
+<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160;<span class="preprocessor">#if !defined(VMA_DEDICATED_ALLOCATION)</span></div>
+<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;<span class="preprocessor">    #if VK_KHR_get_memory_requirements2 &amp;&amp; VK_KHR_dedicated_allocation</span></div>
+<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;<span class="preprocessor">        #define VMA_DEDICATED_ALLOCATION 1</span></div>
+<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;<span class="preprocessor">    #else</span></div>
+<div class="line"><a name="l01897"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#af7b860e63b96d11e44ae8587ba06bbf4"> 1897</a></span>&#160;<span class="preprocessor">        #define VMA_DEDICATED_ALLOCATION 0</span></div>
+<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160; </div>
+<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160;<span class="preprocessor">#if !defined(VMA_BIND_MEMORY2)</span></div>
+<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;<span class="preprocessor">    #if VK_KHR_bind_memory2</span></div>
+<div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;<span class="preprocessor">        #define VMA_BIND_MEMORY2 1</span></div>
+<div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160;<span class="preprocessor">    #else</span></div>
+<div class="line"><a name="l01905"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a88bef97f86d70a34a4c0746e09a2680d"> 1905</a></span>&#160;<span class="preprocessor">        #define VMA_BIND_MEMORY2 0</span></div>
+<div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160; </div>
+<div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;<span class="preprocessor">#if !defined(VMA_MEMORY_BUDGET)</span></div>
+<div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160;<span class="preprocessor">    #if VK_EXT_memory_budget &amp;&amp; (VK_KHR_get_physical_device_properties2 || VMA_VULKAN_VERSION &gt;= 1001000)</span></div>
+<div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;<span class="preprocessor">        #define VMA_MEMORY_BUDGET 1</span></div>
+<div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160;<span class="preprocessor">    #else</span></div>
+<div class="line"><a name="l01913"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a05decf1cf4ebf767beba7acca6c1ec3a"> 1913</a></span>&#160;<span class="preprocessor">        #define VMA_MEMORY_BUDGET 0</span></div>
+<div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160; </div>
+<div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160;<span class="comment">// Defined to 1 when VK_KHR_buffer_device_address device extension or equivalent core Vulkan 1.2 feature is defined in its headers.</span></div>
+<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160;<span class="preprocessor">#if !defined(VMA_BUFFER_DEVICE_ADDRESS)</span></div>
+<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160;<span class="preprocessor">    #if VK_KHR_buffer_device_address || VK_EXT_buffer_device_address || VMA_VULKAN_VERSION &gt;= 1002000</span></div>
+<div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160;<span class="preprocessor">        #define VMA_BUFFER_DEVICE_ADDRESS 1</span></div>
+<div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;<span class="preprocessor">    #else</span></div>
+<div class="line"><a name="l01922"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a7f9d5e71b70dd1a137c303a8a8262c10"> 1922</a></span>&#160;<span class="preprocessor">        #define VMA_BUFFER_DEVICE_ADDRESS 0</span></div>
+<div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160; </div>
+<div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160;<span class="comment">// Define these macros to decorate all public functions with additional code,</span></div>
+<div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;<span class="comment">// before and after returned type, appropriately. This may be useful for</span></div>
+<div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160;<span class="comment">// exporing the functions when compiling VMA as a separate library. Example:</span></div>
+<div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160;<span class="comment">// #define VMA_CALL_PRE  __declspec(dllexport)</span></div>
+<div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;<span class="comment">// #define VMA_CALL_POST __cdecl</span></div>
+<div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160;<span class="preprocessor">#ifndef VMA_CALL_PRE</span></div>
+<div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160;<span class="preprocessor">    #define VMA_CALL_PRE</span></div>
+<div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160;<span class="preprocessor">#ifndef VMA_CALL_POST</span></div>
+<div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160;<span class="preprocessor">    #define VMA_CALL_POST</span></div>
+<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160; </div>
+<div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160;VK_DEFINE_HANDLE(<a class="code" href="struct_vma_allocator.html">VmaAllocator</a>)</div>
+<div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160; </div>
+<div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160;<span class="keyword">typedef</span> void (VKAPI_PTR *<a class="code" href="vk__mem__alloc_8h.html#a7e1ed85f7799600b03ad51a77acc21f3">PFN_vmaAllocateDeviceMemoryFunction</a>)(</div>
+<div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a>      allocator,</div>
+<div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;    uint32_t          memoryType,</div>
+<div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160;    VkDeviceMemory    memory,</div>
+<div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160;    VkDeviceSize      size,</div>
+<div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160;    <span class="keywordtype">void</span>* pUserData);</div>
+<div class="line"><a name="l01957"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a154ccaaf53dc2c36378f80f0c4f3679b"> 1957</a></span>&#160;<span class="keyword">typedef</span> void (VKAPI_PTR *<a class="code" href="vk__mem__alloc_8h.html#a154ccaaf53dc2c36378f80f0c4f3679b">PFN_vmaFreeDeviceMemoryFunction</a>)(</div>
+<div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a>      allocator,</div>
+<div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160;    uint32_t          memoryType,</div>
+<div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160;    VkDeviceMemory    memory,</div>
+<div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160;    VkDeviceSize      size,</div>
+<div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160;    <span class="keywordtype">void</span>* pUserData);</div>
+<div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160; </div>
+<div class="line"><a name="l01971"></a><span class="lineno"><a class="line" href="struct_vma_device_memory_callbacks.html"> 1971</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_device_memory_callbacks.html">VmaDeviceMemoryCallbacks</a> {</div>
+<div class="line"><a name="l01973"></a><span class="lineno"><a class="line" href="struct_vma_device_memory_callbacks.html#a4f17f7b255101e733b44d5633aceabfb"> 1973</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a7e1ed85f7799600b03ad51a77acc21f3">PFN_vmaAllocateDeviceMemoryFunction</a> <a class="code" href="struct_vma_device_memory_callbacks.html#a4f17f7b255101e733b44d5633aceabfb">pfnAllocate</a>;</div>
+<div class="line"><a name="l01975"></a><span class="lineno"><a class="line" href="struct_vma_device_memory_callbacks.html#abe8a3328bbc916f6f712fdb6b299444c"> 1975</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a154ccaaf53dc2c36378f80f0c4f3679b">PFN_vmaFreeDeviceMemoryFunction</a> <a class="code" href="struct_vma_device_memory_callbacks.html#abe8a3328bbc916f6f712fdb6b299444c">pfnFree</a>;</div>
+<div class="line"><a name="l01977"></a><span class="lineno"><a class="line" href="struct_vma_device_memory_callbacks.html#a24052de0937ddd54015a2df0363903c6"> 1977</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="struct_vma_device_memory_callbacks.html#a24052de0937ddd54015a2df0363903c6">pUserData</a>;</div>
+<div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a77692d3c8770ea8882d573206bd27b2b">VmaDeviceMemoryCallbacks</a>;</div>
+<div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160; </div>
+<div class="line"><a name="l01981"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7c"> 1981</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7c">VmaAllocatorCreateFlagBits</a> {</div>
+<div class="line"><a name="l01986"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca4816ddaed324ba110172ca608a20f29d"> 1986</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca4816ddaed324ba110172ca608a20f29d">VMA_ALLOCATOR_CREATE_EXTERNALLY_SYNCHRONIZED_BIT</a> = 0x00000001,</div>
+<div class="line"><a name="l02011"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7cace7da7cc6e71a625dfa763c55a597878"> 2011</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7cace7da7cc6e71a625dfa763c55a597878">VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT</a> = 0x00000002,</div>
+<div class="line"><a name="l02026"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca8fb75bf07cd184ab903596295e863dee"> 2026</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca8fb75bf07cd184ab903596295e863dee">VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT</a> = 0x00000004,</div>
+<div class="line"><a name="l02038"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca4d4687863f7bd4b418c6006dc04400b0"> 2038</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca4d4687863f7bd4b418c6006dc04400b0">VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT</a> = 0x00000008,</div>
+<div class="line"><a name="l02056"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca2acce4886d8078552efa38878413970f"> 2056</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca2acce4886d8078552efa38878413970f">VMA_ALLOCATOR_CREATE_AMD_DEVICE_COHERENT_MEMORY_BIT</a> = 0x00000010,</div>
+<div class="line"><a name="l02074"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca5f1b28b0414319d1687e1f2b30ab0089"> 2074</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7ca5f1b28b0414319d1687e1f2b30ab0089">VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT</a> = 0x00000020,</div>
+<div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160; </div>
+<div class="line"><a name="l02076"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7cae4d5ad929caba5f23eb502b13bd5286c"> 2076</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7cae4d5ad929caba5f23eb502b13bd5286c">VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM</a> = 0x7FFFFFFF</div>
+<div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a4f87c9100d154a65a4ad495f7763cf7c">VmaAllocatorCreateFlagBits</a>;</div>
+<div class="line"><a name="l02078"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#acfe6863e160722c2c1bbcf7573fddc4d"> 2078</a></span>&#160;<span class="keyword">typedef</span> VkFlags <a class="code" href="vk__mem__alloc_8h.html#acfe6863e160722c2c1bbcf7573fddc4d">VmaAllocatorCreateFlags</a>;</div>
+<div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160; </div>
+<div class="line"><a name="l02084"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html"> 2084</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a> {</div>
+<div class="line"><a name="l02085"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a77b7a74082823e865dd6546623468f96"> 2085</a></span>&#160;    PFN_vkGetPhysicalDeviceProperties <a class="code" href="struct_vma_vulkan_functions.html#a77b7a74082823e865dd6546623468f96">vkGetPhysicalDeviceProperties</a>;</div>
+<div class="line"><a name="l02086"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a60d25c33bba06bb8592e6875cbaa9830"> 2086</a></span>&#160;    PFN_vkGetPhysicalDeviceMemoryProperties <a class="code" href="struct_vma_vulkan_functions.html#a60d25c33bba06bb8592e6875cbaa9830">vkGetPhysicalDeviceMemoryProperties</a>;</div>
+<div class="line"><a name="l02087"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a2943bf99dfd784a0e8f599d987e22e6c"> 2087</a></span>&#160;    PFN_vkAllocateMemory <a class="code" href="struct_vma_vulkan_functions.html#a2943bf99dfd784a0e8f599d987e22e6c">vkAllocateMemory</a>;</div>
+<div class="line"><a name="l02088"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a4c658701778564d62034255b5dda91b4"> 2088</a></span>&#160;    PFN_vkFreeMemory <a class="code" href="struct_vma_vulkan_functions.html#a4c658701778564d62034255b5dda91b4">vkFreeMemory</a>;</div>
+<div class="line"><a name="l02089"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#ab5c1f38dea3a2cf00dc9eb4f57218c49"> 2089</a></span>&#160;    PFN_vkMapMemory <a class="code" href="struct_vma_vulkan_functions.html#ab5c1f38dea3a2cf00dc9eb4f57218c49">vkMapMemory</a>;</div>
+<div class="line"><a name="l02090"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#acc798589736f0becb317fc2196c1d8b9"> 2090</a></span>&#160;    PFN_vkUnmapMemory <a class="code" href="struct_vma_vulkan_functions.html#acc798589736f0becb317fc2196c1d8b9">vkUnmapMemory</a>;</div>
+<div class="line"><a name="l02091"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a33c322f4c4ad2810f8a9c97a277572f9"> 2091</a></span>&#160;    PFN_vkFlushMappedMemoryRanges <a class="code" href="struct_vma_vulkan_functions.html#a33c322f4c4ad2810f8a9c97a277572f9">vkFlushMappedMemoryRanges</a>;</div>
+<div class="line"><a name="l02092"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a5c1093bc32386a8060c37c9f282078a1"> 2092</a></span>&#160;    PFN_vkInvalidateMappedMemoryRanges <a class="code" href="struct_vma_vulkan_functions.html#a5c1093bc32386a8060c37c9f282078a1">vkInvalidateMappedMemoryRanges</a>;</div>
+<div class="line"><a name="l02093"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a94fc4f3a605d9880bb3c0ba2c2fc80b2"> 2093</a></span>&#160;    PFN_vkBindBufferMemory <a class="code" href="struct_vma_vulkan_functions.html#a94fc4f3a605d9880bb3c0ba2c2fc80b2">vkBindBufferMemory</a>;</div>
+<div class="line"><a name="l02094"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a1338d96a128a5ade648b8d934907c637"> 2094</a></span>&#160;    PFN_vkBindImageMemory <a class="code" href="struct_vma_vulkan_functions.html#a1338d96a128a5ade648b8d934907c637">vkBindImageMemory</a>;</div>
+<div class="line"><a name="l02095"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a5b92901df89a4194b0d12f6071d4d143"> 2095</a></span>&#160;    PFN_vkGetBufferMemoryRequirements <a class="code" href="struct_vma_vulkan_functions.html#a5b92901df89a4194b0d12f6071d4d143">vkGetBufferMemoryRequirements</a>;</div>
+<div class="line"><a name="l02096"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a475f6f49f8debe4d10800592606d53f4"> 2096</a></span>&#160;    PFN_vkGetImageMemoryRequirements <a class="code" href="struct_vma_vulkan_functions.html#a475f6f49f8debe4d10800592606d53f4">vkGetImageMemoryRequirements</a>;</div>
+<div class="line"><a name="l02097"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#ae8084315a25006271a2edfc3a447519f"> 2097</a></span>&#160;    PFN_vkCreateBuffer <a class="code" href="struct_vma_vulkan_functions.html#ae8084315a25006271a2edfc3a447519f">vkCreateBuffer</a>;</div>
+<div class="line"><a name="l02098"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a7e054606faddb07f0e8556f3ed317d45"> 2098</a></span>&#160;    PFN_vkDestroyBuffer <a class="code" href="struct_vma_vulkan_functions.html#a7e054606faddb07f0e8556f3ed317d45">vkDestroyBuffer</a>;</div>
+<div class="line"><a name="l02099"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a23ebe70be515b9b5010a1d691200e325"> 2099</a></span>&#160;    PFN_vkCreateImage <a class="code" href="struct_vma_vulkan_functions.html#a23ebe70be515b9b5010a1d691200e325">vkCreateImage</a>;</div>
+<div class="line"><a name="l02100"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#a90b898227039b1dcb3520f6e91f09ffa"> 2100</a></span>&#160;    PFN_vkDestroyImage <a class="code" href="struct_vma_vulkan_functions.html#a90b898227039b1dcb3520f6e91f09ffa">vkDestroyImage</a>;</div>
+<div class="line"><a name="l02101"></a><span class="lineno"><a class="line" href="struct_vma_vulkan_functions.html#ae5c0db8c89a3b82593dc16aa6a49fa3a"> 2101</a></span>&#160;    PFN_vkCmdCopyBuffer <a class="code" href="struct_vma_vulkan_functions.html#ae5c0db8c89a3b82593dc16aa6a49fa3a">vkCmdCopyBuffer</a>;</div>
+<div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;<span class="preprocessor">#if VMA_DEDICATED_ALLOCATION || VMA_VULKAN_VERSION &gt;= 1001000</span></div>
+<div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;    PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR;</div>
+<div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;    PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR;</div>
+<div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160;<span class="preprocessor">#if VMA_BIND_MEMORY2 || VMA_VULKAN_VERSION &gt;= 1001000</span></div>
+<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160;    PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR;</div>
+<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160;    PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR;</div>
+<div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160;<span class="preprocessor">#if VMA_MEMORY_BUDGET || VMA_VULKAN_VERSION &gt;= 1001000</span></div>
+<div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160;    PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR;</div>
+<div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#abb0a8e3b5040d847571cca6c7f9a8074">VmaVulkanFunctions</a>;</div>
+<div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160; </div>
+<div class="line"><a name="l02116"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4dd2c44642312a147a4e93373a6e64d2"> 2116</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="vk__mem__alloc_8h.html#a4dd2c44642312a147a4e93373a6e64d2">VmaRecordFlagBits</a> {</div>
+<div class="line"><a name="l02122"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4dd2c44642312a147a4e93373a6e64d2a8e7ab322e8732654be627c4ea8f36cc7"> 2122</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a4dd2c44642312a147a4e93373a6e64d2a8e7ab322e8732654be627c4ea8f36cc7">VMA_RECORD_FLUSH_AFTER_CALL_BIT</a> = 0x00000001,</div>
+<div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;    </div>
+<div class="line"><a name="l02124"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a4dd2c44642312a147a4e93373a6e64d2a20dd17d69966dbffa054739d6090b85e"> 2124</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a4dd2c44642312a147a4e93373a6e64d2a20dd17d69966dbffa054739d6090b85e">VMA_RECORD_FLAG_BITS_MAX_ENUM</a> = 0x7FFFFFFF</div>
+<div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a4dd2c44642312a147a4e93373a6e64d2">VmaRecordFlagBits</a>;</div>
+<div class="line"><a name="l02126"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#af3929a1a4547c592fc0b0e55ef452828"> 2126</a></span>&#160;<span class="keyword">typedef</span> VkFlags <a class="code" href="vk__mem__alloc_8h.html#af3929a1a4547c592fc0b0e55ef452828">VmaRecordFlags</a>;</div>
+<div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160; </div>
+<div class="line"><a name="l02129"></a><span class="lineno"><a class="line" href="struct_vma_record_settings.html"> 2129</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_record_settings.html">VmaRecordSettings</a></div>
+<div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160;{</div>
+<div class="line"><a name="l02132"></a><span class="lineno"><a class="line" href="struct_vma_record_settings.html#ad8fdcc92119ae7a8c08c1a564c01d63a"> 2132</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#af3929a1a4547c592fc0b0e55ef452828">VmaRecordFlags</a> <a class="code" href="struct_vma_record_settings.html#ad8fdcc92119ae7a8c08c1a564c01d63a">flags</a>;</div>
+<div class="line"><a name="l02140"></a><span class="lineno"><a class="line" href="struct_vma_record_settings.html#a6cb1fdbf6bcb610b68f2010dd629e89d"> 2140</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="struct_vma_record_settings.html#a6cb1fdbf6bcb610b68f2010dd629e89d">pFilePath</a>;</div>
+<div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a16e21c877101493fce582664cd8754fc">VmaRecordSettings</a>;</div>
+<div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160; </div>
+<div class="line"><a name="l02144"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html"> 2144</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_allocator_create_info.html">VmaAllocatorCreateInfo</a></div>
+<div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160;{</div>
+<div class="line"><a name="l02147"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#a392ea2ecbaff93f91a7c49f735ad4346"> 2147</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#acfe6863e160722c2c1bbcf7573fddc4d">VmaAllocatorCreateFlags</a> <a class="code" href="struct_vma_allocator_create_info.html#a392ea2ecbaff93f91a7c49f735ad4346">flags</a>;</div>
+<div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160; </div>
+<div class="line"><a name="l02150"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#a08230f04ae6ccf8a78150a9e829a7156"> 2150</a></span>&#160;    VkPhysicalDevice <a class="code" href="struct_vma_allocator_create_info.html#a08230f04ae6ccf8a78150a9e829a7156">physicalDevice</a>;</div>
+<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160; </div>
+<div class="line"><a name="l02153"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#ad924ddd77b04039c88d0c09b0ffcd500"> 2153</a></span>&#160;    VkDevice <a class="code" href="struct_vma_allocator_create_info.html#ad924ddd77b04039c88d0c09b0ffcd500">device</a>;</div>
 <div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160; </div>
-<div class="line"><a name="l02156"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#a08230f04ae6ccf8a78150a9e829a7156"> 2156</a></span>&#160;    VkPhysicalDevice <a class="code" href="struct_vma_allocator_create_info.html#a08230f04ae6ccf8a78150a9e829a7156">physicalDevice</a>;</div>
+<div class="line"><a name="l02156"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#a8e4714298e3121cdd8b214a1ae7a637a"> 2156</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_allocator_create_info.html#a8e4714298e3121cdd8b214a1ae7a637a">preferredLargeHeapBlockSize</a>;</div>
 <div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160; </div>
-<div class="line"><a name="l02159"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#ad924ddd77b04039c88d0c09b0ffcd500"> 2159</a></span>&#160;    VkDevice <a class="code" href="struct_vma_allocator_create_info.html#ad924ddd77b04039c88d0c09b0ffcd500">device</a>;</div>
+<div class="line"><a name="l02159"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#a6e409087e3be55400d0e4ccbe43c608d"> 2159</a></span>&#160;    <span class="keyword">const</span> VkAllocationCallbacks* <a class="code" href="struct_vma_allocator_create_info.html#a6e409087e3be55400d0e4ccbe43c608d">pAllocationCallbacks</a>;</div>
 <div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160; </div>
-<div class="line"><a name="l02162"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#a8e4714298e3121cdd8b214a1ae7a637a"> 2162</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_allocator_create_info.html#a8e4714298e3121cdd8b214a1ae7a637a">preferredLargeHeapBlockSize</a>;</div>
-<div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160; </div>
-<div class="line"><a name="l02165"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#a6e409087e3be55400d0e4ccbe43c608d"> 2165</a></span>&#160;    <span class="keyword">const</span> VkAllocationCallbacks* <a class="code" href="struct_vma_allocator_create_info.html#a6e409087e3be55400d0e4ccbe43c608d">pAllocationCallbacks</a>;</div>
-<div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160; </div>
-<div class="line"><a name="l02168"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#af1380969b5e1ea4c3184a877892d260e"> 2168</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_device_memory_callbacks.html">VmaDeviceMemoryCallbacks</a>* <a class="code" href="struct_vma_allocator_create_info.html#af1380969b5e1ea4c3184a877892d260e">pDeviceMemoryCallbacks</a>;</div>
-<div class="line"><a name="l02182"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#a21ea188dd212b8171cb9ecbed4a2a3a7"> 2182</a></span>&#160;    uint32_t <a class="code" href="struct_vma_allocator_create_info.html#a21ea188dd212b8171cb9ecbed4a2a3a7">frameInUseCount</a>;</div>
-<div class="line"><a name="l02207"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#a31c192aa6cbffa33279f6d9f0c47c44b"> 2207</a></span>&#160;    <span class="keyword">const</span> VkDeviceSize* <a class="code" href="struct_vma_allocator_create_info.html#a31c192aa6cbffa33279f6d9f0c47c44b">pHeapSizeLimit</a>;</div>
-<div class="line"><a name="l02219"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd"> 2219</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a>* <a class="code" href="struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd">pVulkanFunctions</a>;</div>
-<div class="line"><a name="l02226"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#ace2aa4877b16a42b0b7673d4e26000ee"> 2226</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_record_settings.html">VmaRecordSettings</a>* <a class="code" href="struct_vma_allocator_create_info.html#ace2aa4877b16a42b0b7673d4e26000ee">pRecordSettings</a>;</div>
-<div class="line"><a name="l02232"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#a70dd42e29b1df1d1b9b61532ae0b370b"> 2232</a></span>&#160;    VkInstance <a class="code" href="struct_vma_allocator_create_info.html#a70dd42e29b1df1d1b9b61532ae0b370b">instance</a>;</div>
-<div class="line"><a name="l02241"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#ae0ffc55139b54520a6bb704b29ffc285"> 2241</a></span>&#160;    uint32_t <a class="code" href="struct_vma_allocator_create_info.html#ae0ffc55139b54520a6bb704b29ffc285">vulkanApiVersion</a>;</div>
-<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#aad9652301d33759b83e52d4f3605a14a">VmaAllocatorCreateInfo</a>;</div>
-<div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160; </div>
-<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a200692051ddb34240248234f5f4c17bb">vmaCreateAllocator</a>(</div>
-<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_allocator_create_info.html">VmaAllocatorCreateInfo</a>* pCreateInfo,</div>
-<div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a>* pAllocator);</div>
-<div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160; </div>
-<div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#aa8d164061c88f22fb1fd3c8f3534bc1d">vmaDestroyAllocator</a>(</div>
-<div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator);</div>
-<div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160; </div>
-<div class="line"><a name="l02255"></a><span class="lineno"><a class="line" href="struct_vma_allocator_info.html"> 2255</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_allocator_info.html">VmaAllocatorInfo</a></div>
-<div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160;{</div>
-<div class="line"><a name="l02261"></a><span class="lineno"><a class="line" href="struct_vma_allocator_info.html#a2ed6a4d2d3fea039d66a13f15d0ce5fe"> 2261</a></span>&#160;    VkInstance <a class="code" href="struct_vma_allocator_info.html#a2ed6a4d2d3fea039d66a13f15d0ce5fe">instance</a>;</div>
-<div class="line"><a name="l02266"></a><span class="lineno"><a class="line" href="struct_vma_allocator_info.html#aba2b703f96e51d567717e1fb2935b47a"> 2266</a></span>&#160;    VkPhysicalDevice <a class="code" href="struct_vma_allocator_info.html#aba2b703f96e51d567717e1fb2935b47a">physicalDevice</a>;</div>
-<div class="line"><a name="l02271"></a><span class="lineno"><a class="line" href="struct_vma_allocator_info.html#a012b4c485bf3b0ea8921352c5ee0c357"> 2271</a></span>&#160;    VkDevice <a class="code" href="struct_vma_allocator_info.html#a012b4c485bf3b0ea8921352c5ee0c357">device</a>;</div>
-<div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a1988031b0223fdbd564250fa1edd942c">VmaAllocatorInfo</a>;</div>
-<div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>&#160; </div>
-<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#afa02231a791b37255720d566a52683e7">vmaGetAllocatorInfo</a>(<a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator, <a class="code" href="struct_vma_allocator_info.html">VmaAllocatorInfo</a>* pAllocatorInfo);</div>
-<div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>&#160; </div>
-<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#aecabf7b6e91ea87d0316fa0a9e014fe0">vmaGetPhysicalDeviceProperties</a>(</div>
-<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>&#160;    <span class="keyword">const</span> VkPhysicalDeviceProperties** ppPhysicalDeviceProperties);</div>
-<div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>&#160; </div>
-<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ab88db292a17974f911182543fda52d19">vmaGetMemoryProperties</a>(</div>
+<div class="line"><a name="l02162"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#af1380969b5e1ea4c3184a877892d260e"> 2162</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_device_memory_callbacks.html">VmaDeviceMemoryCallbacks</a>* <a class="code" href="struct_vma_allocator_create_info.html#af1380969b5e1ea4c3184a877892d260e">pDeviceMemoryCallbacks</a>;</div>
+<div class="line"><a name="l02176"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#a21ea188dd212b8171cb9ecbed4a2a3a7"> 2176</a></span>&#160;    uint32_t <a class="code" href="struct_vma_allocator_create_info.html#a21ea188dd212b8171cb9ecbed4a2a3a7">frameInUseCount</a>;</div>
+<div class="line"><a name="l02201"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#a31c192aa6cbffa33279f6d9f0c47c44b"> 2201</a></span>&#160;    <span class="keyword">const</span> VkDeviceSize* <a class="code" href="struct_vma_allocator_create_info.html#a31c192aa6cbffa33279f6d9f0c47c44b">pHeapSizeLimit</a>;</div>
+<div class="line"><a name="l02209"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd"> 2209</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_vulkan_functions.html">VmaVulkanFunctions</a>* <a class="code" href="struct_vma_allocator_create_info.html#a3dc197be3227da7338b1643f70db36bd">pVulkanFunctions</a>;</div>
+<div class="line"><a name="l02216"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#ace2aa4877b16a42b0b7673d4e26000ee"> 2216</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_record_settings.html">VmaRecordSettings</a>* <a class="code" href="struct_vma_allocator_create_info.html#ace2aa4877b16a42b0b7673d4e26000ee">pRecordSettings</a>;</div>
+<div class="line"><a name="l02222"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#a70dd42e29b1df1d1b9b61532ae0b370b"> 2222</a></span>&#160;    VkInstance <a class="code" href="struct_vma_allocator_create_info.html#a70dd42e29b1df1d1b9b61532ae0b370b">instance</a>;</div>
+<div class="line"><a name="l02231"></a><span class="lineno"><a class="line" href="struct_vma_allocator_create_info.html#ae0ffc55139b54520a6bb704b29ffc285"> 2231</a></span>&#160;    uint32_t <a class="code" href="struct_vma_allocator_create_info.html#ae0ffc55139b54520a6bb704b29ffc285">vulkanApiVersion</a>;</div>
+<div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#aad9652301d33759b83e52d4f3605a14a">VmaAllocatorCreateInfo</a>;</div>
+<div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160; </div>
+<div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a200692051ddb34240248234f5f4c17bb">vmaCreateAllocator</a>(</div>
+<div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_allocator_create_info.html">VmaAllocatorCreateInfo</a>* pCreateInfo,</div>
+<div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a>* pAllocator);</div>
+<div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160; </div>
+<div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#aa8d164061c88f22fb1fd3c8f3534bc1d">vmaDestroyAllocator</a>(</div>
+<div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator);</div>
+<div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160; </div>
+<div class="line"><a name="l02245"></a><span class="lineno"><a class="line" href="struct_vma_allocator_info.html"> 2245</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_allocator_info.html">VmaAllocatorInfo</a></div>
+<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;{</div>
+<div class="line"><a name="l02251"></a><span class="lineno"><a class="line" href="struct_vma_allocator_info.html#a2ed6a4d2d3fea039d66a13f15d0ce5fe"> 2251</a></span>&#160;    VkInstance <a class="code" href="struct_vma_allocator_info.html#a2ed6a4d2d3fea039d66a13f15d0ce5fe">instance</a>;</div>
+<div class="line"><a name="l02256"></a><span class="lineno"><a class="line" href="struct_vma_allocator_info.html#aba2b703f96e51d567717e1fb2935b47a"> 2256</a></span>&#160;    VkPhysicalDevice <a class="code" href="struct_vma_allocator_info.html#aba2b703f96e51d567717e1fb2935b47a">physicalDevice</a>;</div>
+<div class="line"><a name="l02261"></a><span class="lineno"><a class="line" href="struct_vma_allocator_info.html#a012b4c485bf3b0ea8921352c5ee0c357"> 2261</a></span>&#160;    VkDevice <a class="code" href="struct_vma_allocator_info.html#a012b4c485bf3b0ea8921352c5ee0c357">device</a>;</div>
+<div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a1988031b0223fdbd564250fa1edd942c">VmaAllocatorInfo</a>;</div>
+<div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160; </div>
+<div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#afa02231a791b37255720d566a52683e7">vmaGetAllocatorInfo</a>(<a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator, <a class="code" href="struct_vma_allocator_info.html">VmaAllocatorInfo</a>* pAllocatorInfo);</div>
+<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160; </div>
+<div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#aecabf7b6e91ea87d0316fa0a9e014fe0">vmaGetPhysicalDeviceProperties</a>(</div>
+<div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>&#160;    <span class="keyword">const</span> VkPhysicalDeviceProperties** ppPhysicalDeviceProperties);</div>
+<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>&#160; </div>
+<div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ab88db292a17974f911182543fda52d19">vmaGetMemoryProperties</a>(</div>
+<div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>&#160;    <span class="keyword">const</span> VkPhysicalDeviceMemoryProperties** ppPhysicalDeviceMemoryProperties);</div>
+<div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160; </div>
+<div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a8701444752eb5de4464adb5a2b514bca">vmaGetMemoryTypeProperties</a>(</div>
 <div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160;    <span class="keyword">const</span> VkPhysicalDeviceMemoryProperties** ppPhysicalDeviceMemoryProperties);</div>
-<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160; </div>
-<div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a8701444752eb5de4464adb5a2b514bca">vmaGetMemoryTypeProperties</a>(</div>
-<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>&#160;    uint32_t memoryTypeIndex,</div>
-<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>&#160;    VkMemoryPropertyFlags* pFlags);</div>
-<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>&#160; </div>
-<div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ade56bf8dc9f5a5eaddf5f119ed525236">vmaSetCurrentFrameIndex</a>(</div>
-<div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l02318"></a><span class="lineno"> 2318</span>&#160;    uint32_t frameIndex);</div>
-<div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>&#160; </div>
-<div class="line"><a name="l02322"></a><span class="lineno"><a class="line" href="struct_vma_stat_info.html"> 2322</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_stat_info.html">VmaStatInfo</a></div>
-<div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>&#160;{</div>
-<div class="line"><a name="l02325"></a><span class="lineno"><a class="line" href="struct_vma_stat_info.html#abc4bb7cd611900778464c56e50c970a4"> 2325</a></span>&#160;    uint32_t <a class="code" href="struct_vma_stat_info.html#abc4bb7cd611900778464c56e50c970a4">blockCount</a>;</div>
-<div class="line"><a name="l02327"></a><span class="lineno"><a class="line" href="struct_vma_stat_info.html#a537741e4d5cdddc1c0ab95ec650afaff"> 2327</a></span>&#160;    uint32_t <a class="code" href="struct_vma_stat_info.html#a537741e4d5cdddc1c0ab95ec650afaff">allocationCount</a>;</div>
-<div class="line"><a name="l02329"></a><span class="lineno"><a class="line" href="struct_vma_stat_info.html#ae06129c771bfebfd6468a7f4276502a9"> 2329</a></span>&#160;    uint32_t <a class="code" href="struct_vma_stat_info.html#ae06129c771bfebfd6468a7f4276502a9">unusedRangeCount</a>;</div>
-<div class="line"><a name="l02331"></a><span class="lineno"><a class="line" href="struct_vma_stat_info.html#ab0c6c73837e5a70c749fbd4f6064895a"> 2331</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_stat_info.html#ab0c6c73837e5a70c749fbd4f6064895a">usedBytes</a>;</div>
-<div class="line"><a name="l02333"></a><span class="lineno"><a class="line" href="struct_vma_stat_info.html#a1859d290aca2cd582d8dc25922092669"> 2333</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_stat_info.html#a1859d290aca2cd582d8dc25922092669">unusedBytes</a>;</div>
-<div class="line"><a name="l02334"></a><span class="lineno"><a class="line" href="struct_vma_stat_info.html#ade8b40bd3139c04aabd2fc538a356fea"> 2334</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_stat_info.html#ade8b40bd3139c04aabd2fc538a356fea">allocationSizeMin</a>, <a class="code" href="struct_vma_stat_info.html#a1081a039964e566c672e7a2347f9e599">allocationSizeAvg</a>, <a class="code" href="struct_vma_stat_info.html#a17e9733a5ecd76287d4db6e66f71f50c">allocationSizeMax</a>;</div>
-<div class="line"><a name="l02335"></a><span class="lineno"><a class="line" href="struct_vma_stat_info.html#aedeba931324f16589cd2416c0d2dd0d4"> 2335</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_stat_info.html#aedeba931324f16589cd2416c0d2dd0d4">unusedRangeSizeMin</a>, <a class="code" href="struct_vma_stat_info.html#a2f9b3452af90c9768a30b7fb6ae194fc">unusedRangeSizeAvg</a>, <a class="code" href="struct_vma_stat_info.html#a5ba1a2476c4d39b10f7e2f7ebbb72ac4">unusedRangeSizeMax</a>;</div>
-<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#aec5b57e29c97b5d69c6d5654d60df878">VmaStatInfo</a>;</div>
-<div class="line"><a name="l02337"></a><span class="lineno"> 2337</span>&#160; </div>
-<div class="line"><a name="l02339"></a><span class="lineno"><a class="line" href="struct_vma_stats.html"> 2339</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_stats.html">VmaStats</a></div>
-<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160;{</div>
-<div class="line"><a name="l02341"></a><span class="lineno"><a class="line" href="struct_vma_stats.html#a13e3caf754be79352c42408756309331"> 2341</a></span>&#160;    <a class="code" href="struct_vma_stat_info.html">VmaStatInfo</a> <a class="code" href="struct_vma_stats.html#a13e3caf754be79352c42408756309331">memoryType</a>[VK_MAX_MEMORY_TYPES];</div>
-<div class="line"><a name="l02342"></a><span class="lineno"><a class="line" href="struct_vma_stats.html#a0e6611508c29a187f0fd14ff1a0329c0"> 2342</a></span>&#160;    <a class="code" href="struct_vma_stat_info.html">VmaStatInfo</a> <a class="code" href="struct_vma_stats.html#a0e6611508c29a187f0fd14ff1a0329c0">memoryHeap</a>[VK_MAX_MEMORY_HEAPS];</div>
-<div class="line"><a name="l02343"></a><span class="lineno"><a class="line" href="struct_vma_stats.html#a2e8f5b3353f2fefef3c27f29e245a1f9"> 2343</a></span>&#160;    <a class="code" href="struct_vma_stat_info.html">VmaStatInfo</a> <a class="code" href="struct_vma_stats.html#a2e8f5b3353f2fefef3c27f29e245a1f9">total</a>;</div>
-<div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a21813b2efdf3836767a9058cd8a94034">VmaStats</a>;</div>
-<div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>&#160; </div>
-<div class="line"><a name="l02355"></a><span class="lineno"> 2355</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a333b61c1788cb23559177531e6a93ca3">vmaCalculateStats</a>(</div>
-<div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>&#160;    <a class="code" href="struct_vma_stats.html">VmaStats</a>* pStats);</div>
-<div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>&#160; </div>
-<div class="line"><a name="l02361"></a><span class="lineno"><a class="line" href="struct_vma_budget.html"> 2361</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_budget.html">VmaBudget</a></div>
-<div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>&#160;{</div>
-<div class="line"><a name="l02365"></a><span class="lineno"><a class="line" href="struct_vma_budget.html#a58b492901baab685f466199124e514a0"> 2365</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_budget.html#a58b492901baab685f466199124e514a0">blockBytes</a>;</div>
-<div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>&#160;    </div>
-<div class="line"><a name="l02376"></a><span class="lineno"><a class="line" href="struct_vma_budget.html#a7e2a6583ebd63e194951c542563804d8"> 2376</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_budget.html#a7e2a6583ebd63e194951c542563804d8">allocationBytes</a>;</div>
+<div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160;    uint32_t memoryTypeIndex,</div>
+<div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160;    VkMemoryPropertyFlags* pFlags);</div>
+<div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>&#160; </div>
+<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ade56bf8dc9f5a5eaddf5f119ed525236">vmaSetCurrentFrameIndex</a>(</div>
+<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>&#160;    uint32_t frameIndex);</div>
+<div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>&#160; </div>
+<div class="line"><a name="l02312"></a><span class="lineno"><a class="line" href="struct_vma_stat_info.html"> 2312</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_stat_info.html">VmaStatInfo</a></div>
+<div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>&#160;{</div>
+<div class="line"><a name="l02315"></a><span class="lineno"><a class="line" href="struct_vma_stat_info.html#abc4bb7cd611900778464c56e50c970a4"> 2315</a></span>&#160;    uint32_t <a class="code" href="struct_vma_stat_info.html#abc4bb7cd611900778464c56e50c970a4">blockCount</a>;</div>
+<div class="line"><a name="l02317"></a><span class="lineno"><a class="line" href="struct_vma_stat_info.html#a537741e4d5cdddc1c0ab95ec650afaff"> 2317</a></span>&#160;    uint32_t <a class="code" href="struct_vma_stat_info.html#a537741e4d5cdddc1c0ab95ec650afaff">allocationCount</a>;</div>
+<div class="line"><a name="l02319"></a><span class="lineno"><a class="line" href="struct_vma_stat_info.html#ae06129c771bfebfd6468a7f4276502a9"> 2319</a></span>&#160;    uint32_t <a class="code" href="struct_vma_stat_info.html#ae06129c771bfebfd6468a7f4276502a9">unusedRangeCount</a>;</div>
+<div class="line"><a name="l02321"></a><span class="lineno"><a class="line" href="struct_vma_stat_info.html#ab0c6c73837e5a70c749fbd4f6064895a"> 2321</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_stat_info.html#ab0c6c73837e5a70c749fbd4f6064895a">usedBytes</a>;</div>
+<div class="line"><a name="l02323"></a><span class="lineno"><a class="line" href="struct_vma_stat_info.html#a1859d290aca2cd582d8dc25922092669"> 2323</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_stat_info.html#a1859d290aca2cd582d8dc25922092669">unusedBytes</a>;</div>
+<div class="line"><a name="l02324"></a><span class="lineno"><a class="line" href="struct_vma_stat_info.html#ade8b40bd3139c04aabd2fc538a356fea"> 2324</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_stat_info.html#ade8b40bd3139c04aabd2fc538a356fea">allocationSizeMin</a>, <a class="code" href="struct_vma_stat_info.html#a1081a039964e566c672e7a2347f9e599">allocationSizeAvg</a>, <a class="code" href="struct_vma_stat_info.html#a17e9733a5ecd76287d4db6e66f71f50c">allocationSizeMax</a>;</div>
+<div class="line"><a name="l02325"></a><span class="lineno"><a class="line" href="struct_vma_stat_info.html#aedeba931324f16589cd2416c0d2dd0d4"> 2325</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_stat_info.html#aedeba931324f16589cd2416c0d2dd0d4">unusedRangeSizeMin</a>, <a class="code" href="struct_vma_stat_info.html#a2f9b3452af90c9768a30b7fb6ae194fc">unusedRangeSizeAvg</a>, <a class="code" href="struct_vma_stat_info.html#a5ba1a2476c4d39b10f7e2f7ebbb72ac4">unusedRangeSizeMax</a>;</div>
+<div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#aec5b57e29c97b5d69c6d5654d60df878">VmaStatInfo</a>;</div>
+<div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>&#160; </div>
+<div class="line"><a name="l02329"></a><span class="lineno"><a class="line" href="struct_vma_stats.html"> 2329</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_stats.html">VmaStats</a></div>
+<div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>&#160;{</div>
+<div class="line"><a name="l02331"></a><span class="lineno"><a class="line" href="struct_vma_stats.html#a13e3caf754be79352c42408756309331"> 2331</a></span>&#160;    <a class="code" href="struct_vma_stat_info.html">VmaStatInfo</a> <a class="code" href="struct_vma_stats.html#a13e3caf754be79352c42408756309331">memoryType</a>[VK_MAX_MEMORY_TYPES];</div>
+<div class="line"><a name="l02332"></a><span class="lineno"><a class="line" href="struct_vma_stats.html#a0e6611508c29a187f0fd14ff1a0329c0"> 2332</a></span>&#160;    <a class="code" href="struct_vma_stat_info.html">VmaStatInfo</a> <a class="code" href="struct_vma_stats.html#a0e6611508c29a187f0fd14ff1a0329c0">memoryHeap</a>[VK_MAX_MEMORY_HEAPS];</div>
+<div class="line"><a name="l02333"></a><span class="lineno"><a class="line" href="struct_vma_stats.html#a2e8f5b3353f2fefef3c27f29e245a1f9"> 2333</a></span>&#160;    <a class="code" href="struct_vma_stat_info.html">VmaStatInfo</a> <a class="code" href="struct_vma_stats.html#a2e8f5b3353f2fefef3c27f29e245a1f9">total</a>;</div>
+<div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a21813b2efdf3836767a9058cd8a94034">VmaStats</a>;</div>
+<div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>&#160; </div>
+<div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a333b61c1788cb23559177531e6a93ca3">vmaCalculateStats</a>(</div>
+<div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l02347"></a><span class="lineno"> 2347</span>&#160;    <a class="code" href="struct_vma_stats.html">VmaStats</a>* pStats);</div>
+<div class="line"><a name="l02348"></a><span class="lineno"> 2348</span>&#160; </div>
+<div class="line"><a name="l02351"></a><span class="lineno"><a class="line" href="struct_vma_budget.html"> 2351</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_budget.html">VmaBudget</a></div>
+<div class="line"><a name="l02352"></a><span class="lineno"> 2352</span>&#160;{</div>
+<div class="line"><a name="l02355"></a><span class="lineno"><a class="line" href="struct_vma_budget.html#a58b492901baab685f466199124e514a0"> 2355</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_budget.html#a58b492901baab685f466199124e514a0">blockBytes</a>;</div>
+<div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160;    </div>
+<div class="line"><a name="l02366"></a><span class="lineno"><a class="line" href="struct_vma_budget.html#a7e2a6583ebd63e194951c542563804d8"> 2366</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_budget.html#a7e2a6583ebd63e194951c542563804d8">allocationBytes</a>;</div>
+<div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>&#160;    </div>
+<div class="line"><a name="l02376"></a><span class="lineno"><a class="line" href="struct_vma_budget.html#a84dd1ecca8b0110259eb206dbadb11f6"> 2376</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_budget.html#a84dd1ecca8b0110259eb206dbadb11f6">usage</a>;</div>
 <div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160;    </div>
-<div class="line"><a name="l02386"></a><span class="lineno"><a class="line" href="struct_vma_budget.html#a84dd1ecca8b0110259eb206dbadb11f6"> 2386</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_budget.html#a84dd1ecca8b0110259eb206dbadb11f6">usage</a>;</div>
-<div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>&#160;    </div>
-<div class="line"><a name="l02397"></a><span class="lineno"><a class="line" href="struct_vma_budget.html#ab82e1d1754c2d210d0bdf90220bc6cdd"> 2397</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_budget.html#ab82e1d1754c2d210d0bdf90220bc6cdd">budget</a>;</div>
-<div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#aa078667e71b1ef24e87a6a30d128381d">VmaBudget</a>;</div>
-<div class="line"><a name="l02399"></a><span class="lineno"> 2399</span>&#160; </div>
-<div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#aec0ed24ebea2d0099eed5f801daaefba">vmaGetBudget</a>(</div>
-<div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>&#160;    <a class="code" href="struct_vma_budget.html">VmaBudget</a>* pBudget);</div>
-<div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>&#160; </div>
-<div class="line"><a name="l02414"></a><span class="lineno"> 2414</span>&#160;<span class="preprocessor">#ifndef VMA_STATS_STRING_ENABLED</span></div>
-<div class="line"><a name="l02415"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ae25f0d55fd91cb166f002b63244800e1"> 2415</a></span>&#160;<span class="preprocessor">#define VMA_STATS_STRING_ENABLED 1</span></div>
-<div class="line"><a name="l02416"></a><span class="lineno"> 2416</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l02387"></a><span class="lineno"><a class="line" href="struct_vma_budget.html#ab82e1d1754c2d210d0bdf90220bc6cdd"> 2387</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_budget.html#ab82e1d1754c2d210d0bdf90220bc6cdd">budget</a>;</div>
+<div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#aa078667e71b1ef24e87a6a30d128381d">VmaBudget</a>;</div>
+<div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>&#160; </div>
+<div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#aec0ed24ebea2d0099eed5f801daaefba">vmaGetBudget</a>(</div>
+<div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>&#160;    <a class="code" href="struct_vma_budget.html">VmaBudget</a>* pBudget);</div>
+<div class="line"><a name="l02403"></a><span class="lineno"> 2403</span>&#160; </div>
+<div class="line"><a name="l02404"></a><span class="lineno"> 2404</span>&#160;<span class="preprocessor">#ifndef VMA_STATS_STRING_ENABLED</span></div>
+<div class="line"><a name="l02405"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ae25f0d55fd91cb166f002b63244800e1"> 2405</a></span>&#160;<span class="preprocessor">#define VMA_STATS_STRING_ENABLED 1</span></div>
+<div class="line"><a name="l02406"></a><span class="lineno"> 2406</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l02407"></a><span class="lineno"> 2407</span>&#160; </div>
+<div class="line"><a name="l02408"></a><span class="lineno"> 2408</span>&#160;<span class="preprocessor">#if VMA_STATS_STRING_ENABLED</span></div>
+<div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>&#160; </div>
+<div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>&#160; </div>
+<div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#aa4fee7eb5253377599ef4fd38c93c2a0">vmaBuildStatsString</a>(</div>
+<div class="line"><a name="l02414"></a><span class="lineno"> 2414</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l02415"></a><span class="lineno"> 2415</span>&#160;    <span class="keywordtype">char</span>** ppStatsString,</div>
+<div class="line"><a name="l02416"></a><span class="lineno"> 2416</span>&#160;    VkBool32 detailedMap);</div>
 <div class="line"><a name="l02417"></a><span class="lineno"> 2417</span>&#160; </div>
-<div class="line"><a name="l02418"></a><span class="lineno"> 2418</span>&#160;<span class="preprocessor">#if VMA_STATS_STRING_ENABLED</span></div>
-<div class="line"><a name="l02419"></a><span class="lineno"> 2419</span>&#160; </div>
+<div class="line"><a name="l02418"></a><span class="lineno"> 2418</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a3104eb30d8122c84dd8541063f145288">vmaFreeStatsString</a>(</div>
+<div class="line"><a name="l02419"></a><span class="lineno"> 2419</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l02420"></a><span class="lineno"> 2420</span>&#160;    <span class="keywordtype">char</span>* pStatsString);</div>
 <div class="line"><a name="l02421"></a><span class="lineno"> 2421</span>&#160; </div>
-<div class="line"><a name="l02423"></a><span class="lineno"> 2423</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#aa4fee7eb5253377599ef4fd38c93c2a0">vmaBuildStatsString</a>(</div>
-<div class="line"><a name="l02424"></a><span class="lineno"> 2424</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l02425"></a><span class="lineno"> 2425</span>&#160;    <span class="keywordtype">char</span>** ppStatsString,</div>
-<div class="line"><a name="l02426"></a><span class="lineno"> 2426</span>&#160;    VkBool32 detailedMap);</div>
-<div class="line"><a name="l02427"></a><span class="lineno"> 2427</span>&#160; </div>
-<div class="line"><a name="l02428"></a><span class="lineno"> 2428</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a3104eb30d8122c84dd8541063f145288">vmaFreeStatsString</a>(</div>
-<div class="line"><a name="l02429"></a><span class="lineno"> 2429</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>&#160;    <span class="keywordtype">char</span>* pStatsString);</div>
-<div class="line"><a name="l02431"></a><span class="lineno"> 2431</span>&#160; </div>
-<div class="line"><a name="l02432"></a><span class="lineno"> 2432</span>&#160;<span class="preprocessor">#endif // #if VMA_STATS_STRING_ENABLED</span></div>
+<div class="line"><a name="l02422"></a><span class="lineno"> 2422</span>&#160;<span class="preprocessor">#endif // #if VMA_STATS_STRING_ENABLED</span></div>
+<div class="line"><a name="l02423"></a><span class="lineno"> 2423</span>&#160; </div>
+<div class="line"><a name="l02432"></a><span class="lineno"> 2432</span>&#160;VK_DEFINE_HANDLE(<a class="code" href="struct_vma_pool.html">VmaPool</a>)</div>
 <div class="line"><a name="l02433"></a><span class="lineno"> 2433</span>&#160; </div>
-<div class="line"><a name="l02442"></a><span class="lineno"> 2442</span>&#160;VK_DEFINE_HANDLE(<a class="code" href="struct_vma_pool.html">VmaPool</a>)</div>
-<div class="line"><a name="l02443"></a><span class="lineno"> 2443</span>&#160; </div>
-<div class="line"><a name="l02444"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cc"> 2444</a></span>&#160;typedef enum <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cc">VmaMemoryUsage</a></div>
-<div class="line"><a name="l02445"></a><span class="lineno"> 2445</span>&#160;{</div>
-<div class="line"><a name="l02449"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccaf50d27e34e0925cf3a63db8c839121dd"> 2449</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccaf50d27e34e0925cf3a63db8c839121dd">VMA_MEMORY_USAGE_UNKNOWN</a> = 0,</div>
-<div class="line"><a name="l02466"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7"> 2466</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7">VMA_MEMORY_USAGE_GPU_ONLY</a> = 1,</div>
-<div class="line"><a name="l02476"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca40bdf4cddeffeb12f43d45ca1286e0a5"> 2476</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca40bdf4cddeffeb12f43d45ca1286e0a5">VMA_MEMORY_USAGE_CPU_ONLY</a> = 2,</div>
-<div class="line"><a name="l02483"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca9066b52c5a7079bb74a69aaf8b92ff67"> 2483</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca9066b52c5a7079bb74a69aaf8b92ff67">VMA_MEMORY_USAGE_CPU_TO_GPU</a> = 3,</div>
-<div class="line"><a name="l02492"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca7b586d2fdaf82a463b58f581ed72be27"> 2492</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca7b586d2fdaf82a463b58f581ed72be27">VMA_MEMORY_USAGE_GPU_TO_CPU</a> = 4,</div>
-<div class="line"><a name="l02498"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca416a444d4d0fc20067c3f76f32ff2500"> 2498</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca416a444d4d0fc20067c3f76f32ff2500">VMA_MEMORY_USAGE_CPU_COPY</a> = 5,</div>
-<div class="line"><a name="l02506"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca835333d9072db63a653818030e17614d"> 2506</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca835333d9072db63a653818030e17614d">VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED</a> = 6,</div>
-<div class="line"><a name="l02507"></a><span class="lineno"> 2507</span>&#160; </div>
-<div class="line"><a name="l02508"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca091e69437ef693e8d0d287f1c719ba6e"> 2508</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca091e69437ef693e8d0d287f1c719ba6e">VMA_MEMORY_USAGE_MAX_ENUM</a> = 0x7FFFFFFF</div>
-<div class="line"><a name="l02509"></a><span class="lineno"> 2509</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cc">VmaMemoryUsage</a>;</div>
+<div class="line"><a name="l02434"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cc"> 2434</a></span>&#160;typedef enum <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cc">VmaMemoryUsage</a></div>
+<div class="line"><a name="l02435"></a><span class="lineno"> 2435</span>&#160;{</div>
+<div class="line"><a name="l02439"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccaf50d27e34e0925cf3a63db8c839121dd"> 2439</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccaf50d27e34e0925cf3a63db8c839121dd">VMA_MEMORY_USAGE_UNKNOWN</a> = 0,</div>
+<div class="line"><a name="l02456"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7"> 2456</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7">VMA_MEMORY_USAGE_GPU_ONLY</a> = 1,</div>
+<div class="line"><a name="l02466"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca40bdf4cddeffeb12f43d45ca1286e0a5"> 2466</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca40bdf4cddeffeb12f43d45ca1286e0a5">VMA_MEMORY_USAGE_CPU_ONLY</a> = 2,</div>
+<div class="line"><a name="l02473"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca9066b52c5a7079bb74a69aaf8b92ff67"> 2473</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca9066b52c5a7079bb74a69aaf8b92ff67">VMA_MEMORY_USAGE_CPU_TO_GPU</a> = 3,</div>
+<div class="line"><a name="l02482"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca7b586d2fdaf82a463b58f581ed72be27"> 2482</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca7b586d2fdaf82a463b58f581ed72be27">VMA_MEMORY_USAGE_GPU_TO_CPU</a> = 4,</div>
+<div class="line"><a name="l02488"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca416a444d4d0fc20067c3f76f32ff2500"> 2488</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca416a444d4d0fc20067c3f76f32ff2500">VMA_MEMORY_USAGE_CPU_COPY</a> = 5,</div>
+<div class="line"><a name="l02496"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca835333d9072db63a653818030e17614d"> 2496</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca835333d9072db63a653818030e17614d">VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED</a> = 6,</div>
+<div class="line"><a name="l02497"></a><span class="lineno"> 2497</span>&#160; </div>
+<div class="line"><a name="l02498"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca091e69437ef693e8d0d287f1c719ba6e"> 2498</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cca091e69437ef693e8d0d287f1c719ba6e">VMA_MEMORY_USAGE_MAX_ENUM</a> = 0x7FFFFFFF</div>
+<div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cc">VmaMemoryUsage</a>;</div>
+<div class="line"><a name="l02500"></a><span class="lineno"> 2500</span>&#160; </div>
+<div class="line"><a name="l02502"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597"> 2502</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597">VmaAllocationCreateFlagBits</a> {</div>
+<div class="line"><a name="l02509"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a3fc311d855c2ff53f1090ef5c722b38f"> 2509</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a3fc311d855c2ff53f1090ef5c722b38f">VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT</a> = 0x00000001,</div>
 <div class="line"><a name="l02510"></a><span class="lineno"> 2510</span>&#160; </div>
-<div class="line"><a name="l02512"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597"> 2512</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597">VmaAllocationCreateFlagBits</a> {</div>
-<div class="line"><a name="l02519"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a3fc311d855c2ff53f1090ef5c722b38f"> 2519</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a3fc311d855c2ff53f1090ef5c722b38f">VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT</a> = 0x00000001,</div>
-<div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>&#160; </div>
-<div class="line"><a name="l02530"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a89759603401014eb325eb22a3839f2ff"> 2530</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a89759603401014eb325eb22a3839f2ff">VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT</a> = 0x00000002,</div>
-<div class="line"><a name="l02543"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a11da372cc3a82931c5e5d6146cd9dd1f"> 2543</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a11da372cc3a82931c5e5d6146cd9dd1f">VMA_ALLOCATION_CREATE_MAPPED_BIT</a> = 0x00000004,</div>
-<div class="line"><a name="l02556"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a5f436af6c8fe8540573a6d22627a6fd2"> 2556</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a5f436af6c8fe8540573a6d22627a6fd2">VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT</a> = 0x00000008,</div>
-<div class="line"><a name="l02563"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a68686d0ce9beb0d4d1b9f2b8b1389a7e"> 2563</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a68686d0ce9beb0d4d1b9f2b8b1389a7e">VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT</a> = 0x00000010,</div>
-<div class="line"><a name="l02569"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597aa6f24f821cd6a7c5e4a443f7bf59c520"> 2569</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597aa6f24f821cd6a7c5e4a443f7bf59c520">VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT</a> = 0x00000020,</div>
-<div class="line"><a name="l02574"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a42ba3a2d2c7117953210b7c3ef8da0df"> 2574</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a42ba3a2d2c7117953210b7c3ef8da0df">VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT</a> = 0x00000040,</div>
-<div class="line"><a name="l02580"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a2310568c62208af432724305fe29ccea"> 2580</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a2310568c62208af432724305fe29ccea">VMA_ALLOCATION_CREATE_DONT_BIND_BIT</a> = 0x00000080,</div>
-<div class="line"><a name="l02584"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ab8b1764f3e9022368e440c057783b92d"> 2584</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ab8b1764f3e9022368e440c057783b92d">VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT</a> = 0x00000100,</div>
-<div class="line"><a name="l02585"></a><span class="lineno"> 2585</span>&#160; </div>
-<div class="line"><a name="l02589"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a839826775c62319466441f86496f036d"> 2589</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a839826775c62319466441f86496f036d">VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT</a>  = 0x00010000,</div>
-<div class="line"><a name="l02593"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ad242a04f802e25fef0b880afe8bb0a62"> 2593</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ad242a04f802e25fef0b880afe8bb0a62">VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT</a> = 0x00020000,</div>
-<div class="line"><a name="l02600"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a33eb2052674f3ad92386c714a65fb777"> 2600</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a33eb2052674f3ad92386c714a65fb777">VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT</a> = 0x00040000,</div>
+<div class="line"><a name="l02520"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a89759603401014eb325eb22a3839f2ff"> 2520</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a89759603401014eb325eb22a3839f2ff">VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT</a> = 0x00000002,</div>
+<div class="line"><a name="l02533"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a11da372cc3a82931c5e5d6146cd9dd1f"> 2533</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a11da372cc3a82931c5e5d6146cd9dd1f">VMA_ALLOCATION_CREATE_MAPPED_BIT</a> = 0x00000004,</div>
+<div class="line"><a name="l02546"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a5f436af6c8fe8540573a6d22627a6fd2"> 2546</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a5f436af6c8fe8540573a6d22627a6fd2">VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT</a> = 0x00000008,</div>
+<div class="line"><a name="l02553"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a68686d0ce9beb0d4d1b9f2b8b1389a7e"> 2553</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a68686d0ce9beb0d4d1b9f2b8b1389a7e">VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT</a> = 0x00000010,</div>
+<div class="line"><a name="l02559"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597aa6f24f821cd6a7c5e4a443f7bf59c520"> 2559</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597aa6f24f821cd6a7c5e4a443f7bf59c520">VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT</a> = 0x00000020,</div>
+<div class="line"><a name="l02564"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a42ba3a2d2c7117953210b7c3ef8da0df"> 2564</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a42ba3a2d2c7117953210b7c3ef8da0df">VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT</a> = 0x00000040,</div>
+<div class="line"><a name="l02570"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a2310568c62208af432724305fe29ccea"> 2570</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a2310568c62208af432724305fe29ccea">VMA_ALLOCATION_CREATE_DONT_BIND_BIT</a> = 0x00000080,</div>
+<div class="line"><a name="l02574"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ab8b1764f3e9022368e440c057783b92d"> 2574</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ab8b1764f3e9022368e440c057783b92d">VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT</a> = 0x00000100,</div>
+<div class="line"><a name="l02575"></a><span class="lineno"> 2575</span>&#160; </div>
+<div class="line"><a name="l02579"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a839826775c62319466441f86496f036d"> 2579</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a839826775c62319466441f86496f036d">VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT</a>  = 0x00010000,</div>
+<div class="line"><a name="l02583"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ad242a04f802e25fef0b880afe8bb0a62"> 2583</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ad242a04f802e25fef0b880afe8bb0a62">VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT</a> = 0x00020000,</div>
+<div class="line"><a name="l02590"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a33eb2052674f3ad92386c714a65fb777"> 2590</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a33eb2052674f3ad92386c714a65fb777">VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT</a> = 0x00040000,</div>
+<div class="line"><a name="l02591"></a><span class="lineno"> 2591</span>&#160; </div>
+<div class="line"><a name="l02594"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a8af1210cf591784afa026d94998f735d"> 2594</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a8af1210cf591784afa026d94998f735d">VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT</a> = <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a839826775c62319466441f86496f036d">VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT</a>,</div>
+<div class="line"><a name="l02597"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a0729e932b7ea170e3a128cad96c5cf6d"> 2597</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a0729e932b7ea170e3a128cad96c5cf6d">VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT</a> = <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a33eb2052674f3ad92386c714a65fb777">VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT</a>,</div>
+<div class="line"><a name="l02600"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a621b704103eb3360230c860acf36e706"> 2600</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a621b704103eb3360230c860acf36e706">VMA_ALLOCATION_CREATE_STRATEGY_MIN_FRAGMENTATION_BIT</a> = <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ad242a04f802e25fef0b880afe8bb0a62">VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT</a>,</div>
 <div class="line"><a name="l02601"></a><span class="lineno"> 2601</span>&#160; </div>
-<div class="line"><a name="l02604"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a8af1210cf591784afa026d94998f735d"> 2604</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a8af1210cf591784afa026d94998f735d">VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT</a> = <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a839826775c62319466441f86496f036d">VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT</a>,</div>
-<div class="line"><a name="l02607"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a0729e932b7ea170e3a128cad96c5cf6d"> 2607</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a0729e932b7ea170e3a128cad96c5cf6d">VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT</a> = <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a33eb2052674f3ad92386c714a65fb777">VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT</a>,</div>
-<div class="line"><a name="l02610"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a621b704103eb3360230c860acf36e706"> 2610</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a621b704103eb3360230c860acf36e706">VMA_ALLOCATION_CREATE_STRATEGY_MIN_FRAGMENTATION_BIT</a> = <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ad242a04f802e25fef0b880afe8bb0a62">VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT</a>,</div>
-<div class="line"><a name="l02611"></a><span class="lineno"> 2611</span>&#160; </div>
-<div class="line"><a name="l02614"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a8e16845d81ae3d27c47106d4770d5c7e"> 2614</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a8e16845d81ae3d27c47106d4770d5c7e">VMA_ALLOCATION_CREATE_STRATEGY_MASK</a> =</div>
-<div class="line"><a name="l02615"></a><span class="lineno"> 2615</span>&#160;        <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a839826775c62319466441f86496f036d">VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT</a> |</div>
-<div class="line"><a name="l02616"></a><span class="lineno"> 2616</span>&#160;        <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ad242a04f802e25fef0b880afe8bb0a62">VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT</a> |</div>
-<div class="line"><a name="l02617"></a><span class="lineno"> 2617</span>&#160;        <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a33eb2052674f3ad92386c714a65fb777">VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT</a>,</div>
-<div class="line"><a name="l02618"></a><span class="lineno"> 2618</span>&#160; </div>
-<div class="line"><a name="l02619"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ae5633ec569f4899cf8f29e7385b2f882"> 2619</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ae5633ec569f4899cf8f29e7385b2f882">VMA_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM</a> = 0x7FFFFFFF</div>
-<div class="line"><a name="l02620"></a><span class="lineno"> 2620</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597">VmaAllocationCreateFlagBits</a>;</div>
-<div class="line"><a name="l02621"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a5225e5e11f8376f6a31a1791f3d6e817"> 2621</a></span>&#160;<span class="keyword">typedef</span> VkFlags <a class="code" href="vk__mem__alloc_8h.html#a5225e5e11f8376f6a31a1791f3d6e817">VmaAllocationCreateFlags</a>;</div>
-<div class="line"><a name="l02622"></a><span class="lineno"> 2622</span>&#160; </div>
-<div class="line"><a name="l02623"></a><span class="lineno"><a class="line" href="struct_vma_allocation_create_info.html"> 2623</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a></div>
-<div class="line"><a name="l02624"></a><span class="lineno"> 2624</span>&#160;{</div>
-<div class="line"><a name="l02626"></a><span class="lineno"><a class="line" href="struct_vma_allocation_create_info.html#add09658ac14fe290ace25470ddd6d41b"> 2626</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a5225e5e11f8376f6a31a1791f3d6e817">VmaAllocationCreateFlags</a> <a class="code" href="struct_vma_allocation_create_info.html#add09658ac14fe290ace25470ddd6d41b">flags</a>;</div>
-<div class="line"><a name="l02632"></a><span class="lineno"><a class="line" href="struct_vma_allocation_create_info.html#accb8b06b1f677d858cb9af20705fa910"> 2632</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cc">VmaMemoryUsage</a> <a class="code" href="struct_vma_allocation_create_info.html#accb8b06b1f677d858cb9af20705fa910">usage</a>;</div>
-<div class="line"><a name="l02637"></a><span class="lineno"><a class="line" href="struct_vma_allocation_create_info.html#a9166390303ff42d783305bc31c2b6b90"> 2637</a></span>&#160;    VkMemoryPropertyFlags <a class="code" href="struct_vma_allocation_create_info.html#a9166390303ff42d783305bc31c2b6b90">requiredFlags</a>;</div>
-<div class="line"><a name="l02642"></a><span class="lineno"><a class="line" href="struct_vma_allocation_create_info.html#a7fe8d81a1ad10b2a2faacacee5b15d6d"> 2642</a></span>&#160;    VkMemoryPropertyFlags <a class="code" href="struct_vma_allocation_create_info.html#a7fe8d81a1ad10b2a2faacacee5b15d6d">preferredFlags</a>;</div>
-<div class="line"><a name="l02650"></a><span class="lineno"><a class="line" href="struct_vma_allocation_create_info.html#a3bf940c0271d85d6ba32a4d820075055"> 2650</a></span>&#160;    uint32_t <a class="code" href="struct_vma_allocation_create_info.html#a3bf940c0271d85d6ba32a4d820075055">memoryTypeBits</a>;</div>
-<div class="line"><a name="l02656"></a><span class="lineno"><a class="line" href="struct_vma_allocation_create_info.html#a6272c0555cfd1fe28bff1afeb6190150"> 2656</a></span>&#160;    <a class="code" href="struct_vma_pool.html">VmaPool</a> <a class="code" href="struct_vma_allocation_create_info.html#a6272c0555cfd1fe28bff1afeb6190150">pool</a>;</div>
-<div class="line"><a name="l02663"></a><span class="lineno"><a class="line" href="struct_vma_allocation_create_info.html#a8259e85c272683434f4abb4ddddffe19"> 2663</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="struct_vma_allocation_create_info.html#a8259e85c272683434f4abb4ddddffe19">pUserData</a>;</div>
-<div class="line"><a name="l02664"></a><span class="lineno"> 2664</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a3bf110892ea2fb4649fedb68488d026a">VmaAllocationCreateInfo</a>;</div>
-<div class="line"><a name="l02665"></a><span class="lineno"> 2665</span>&#160; </div>
-<div class="line"><a name="l02682"></a><span class="lineno"> 2682</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#aef15a94b58fbcb0fe706d5720e84a74a">vmaFindMemoryTypeIndex</a>(</div>
-<div class="line"><a name="l02683"></a><span class="lineno"> 2683</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l02684"></a><span class="lineno"> 2684</span>&#160;    uint32_t memoryTypeBits,</div>
-<div class="line"><a name="l02685"></a><span class="lineno"> 2685</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a>* pAllocationCreateInfo,</div>
-<div class="line"><a name="l02686"></a><span class="lineno"> 2686</span>&#160;    uint32_t* pMemoryTypeIndex);</div>
-<div class="line"><a name="l02687"></a><span class="lineno"> 2687</span>&#160; </div>
-<div class="line"><a name="l02700"></a><span class="lineno"> 2700</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ae790ab9ffaf7667fb8f62523e6897888">vmaFindMemoryTypeIndexForBufferInfo</a>(</div>
-<div class="line"><a name="l02701"></a><span class="lineno"> 2701</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l02702"></a><span class="lineno"> 2702</span>&#160;    <span class="keyword">const</span> VkBufferCreateInfo* pBufferCreateInfo,</div>
-<div class="line"><a name="l02703"></a><span class="lineno"> 2703</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a>* pAllocationCreateInfo,</div>
-<div class="line"><a name="l02704"></a><span class="lineno"> 2704</span>&#160;    uint32_t* pMemoryTypeIndex);</div>
-<div class="line"><a name="l02705"></a><span class="lineno"> 2705</span>&#160; </div>
-<div class="line"><a name="l02718"></a><span class="lineno"> 2718</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a088da83d8eaf3ce9056d9ea0b981d472">vmaFindMemoryTypeIndexForImageInfo</a>(</div>
-<div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l02720"></a><span class="lineno"> 2720</span>&#160;    <span class="keyword">const</span> VkImageCreateInfo* pImageCreateInfo,</div>
-<div class="line"><a name="l02721"></a><span class="lineno"> 2721</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a>* pAllocationCreateInfo,</div>
-<div class="line"><a name="l02722"></a><span class="lineno"> 2722</span>&#160;    uint32_t* pMemoryTypeIndex);</div>
-<div class="line"><a name="l02723"></a><span class="lineno"> 2723</span>&#160; </div>
-<div class="line"><a name="l02725"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7"> 2725</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7">VmaPoolCreateFlagBits</a> {</div>
-<div class="line"><a name="l02743"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a9f1a499508a8edb4e8ba40aa0290a3d2"> 2743</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a9f1a499508a8edb4e8ba40aa0290a3d2">VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT</a> = 0x00000002,</div>
-<div class="line"><a name="l02744"></a><span class="lineno"> 2744</span>&#160; </div>
-<div class="line"><a name="l02760"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a13c8a444197c67866be9cb05599fc726"> 2760</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a13c8a444197c67866be9cb05599fc726">VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT</a> = 0x00000004,</div>
-<div class="line"><a name="l02761"></a><span class="lineno"> 2761</span>&#160; </div>
-<div class="line"><a name="l02771"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a97a0dc38e5161b780594d998d313d35e"> 2771</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a97a0dc38e5161b780594d998d313d35e">VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT</a> = 0x00000008,</div>
+<div class="line"><a name="l02604"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a8e16845d81ae3d27c47106d4770d5c7e"> 2604</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a8e16845d81ae3d27c47106d4770d5c7e">VMA_ALLOCATION_CREATE_STRATEGY_MASK</a> =</div>
+<div class="line"><a name="l02605"></a><span class="lineno"> 2605</span>&#160;        <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a839826775c62319466441f86496f036d">VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT</a> |</div>
+<div class="line"><a name="l02606"></a><span class="lineno"> 2606</span>&#160;        <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ad242a04f802e25fef0b880afe8bb0a62">VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT</a> |</div>
+<div class="line"><a name="l02607"></a><span class="lineno"> 2607</span>&#160;        <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597a33eb2052674f3ad92386c714a65fb777">VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT</a>,</div>
+<div class="line"><a name="l02608"></a><span class="lineno"> 2608</span>&#160; </div>
+<div class="line"><a name="l02609"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ae5633ec569f4899cf8f29e7385b2f882"> 2609</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597ae5633ec569f4899cf8f29e7385b2f882">VMA_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM</a> = 0x7FFFFFFF</div>
+<div class="line"><a name="l02610"></a><span class="lineno"> 2610</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#ad9889c10c798b040d59c92f257cae597">VmaAllocationCreateFlagBits</a>;</div>
+<div class="line"><a name="l02611"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a5225e5e11f8376f6a31a1791f3d6e817"> 2611</a></span>&#160;<span class="keyword">typedef</span> VkFlags <a class="code" href="vk__mem__alloc_8h.html#a5225e5e11f8376f6a31a1791f3d6e817">VmaAllocationCreateFlags</a>;</div>
+<div class="line"><a name="l02612"></a><span class="lineno"> 2612</span>&#160; </div>
+<div class="line"><a name="l02613"></a><span class="lineno"><a class="line" href="struct_vma_allocation_create_info.html"> 2613</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a></div>
+<div class="line"><a name="l02614"></a><span class="lineno"> 2614</span>&#160;{</div>
+<div class="line"><a name="l02616"></a><span class="lineno"><a class="line" href="struct_vma_allocation_create_info.html#add09658ac14fe290ace25470ddd6d41b"> 2616</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a5225e5e11f8376f6a31a1791f3d6e817">VmaAllocationCreateFlags</a> <a class="code" href="struct_vma_allocation_create_info.html#add09658ac14fe290ace25470ddd6d41b">flags</a>;</div>
+<div class="line"><a name="l02622"></a><span class="lineno"><a class="line" href="struct_vma_allocation_create_info.html#accb8b06b1f677d858cb9af20705fa910"> 2622</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#aa5846affa1e9da3800e3e78fae2305cc">VmaMemoryUsage</a> <a class="code" href="struct_vma_allocation_create_info.html#accb8b06b1f677d858cb9af20705fa910">usage</a>;</div>
+<div class="line"><a name="l02627"></a><span class="lineno"><a class="line" href="struct_vma_allocation_create_info.html#a9166390303ff42d783305bc31c2b6b90"> 2627</a></span>&#160;    VkMemoryPropertyFlags <a class="code" href="struct_vma_allocation_create_info.html#a9166390303ff42d783305bc31c2b6b90">requiredFlags</a>;</div>
+<div class="line"><a name="l02632"></a><span class="lineno"><a class="line" href="struct_vma_allocation_create_info.html#a7fe8d81a1ad10b2a2faacacee5b15d6d"> 2632</a></span>&#160;    VkMemoryPropertyFlags <a class="code" href="struct_vma_allocation_create_info.html#a7fe8d81a1ad10b2a2faacacee5b15d6d">preferredFlags</a>;</div>
+<div class="line"><a name="l02640"></a><span class="lineno"><a class="line" href="struct_vma_allocation_create_info.html#a3bf940c0271d85d6ba32a4d820075055"> 2640</a></span>&#160;    uint32_t <a class="code" href="struct_vma_allocation_create_info.html#a3bf940c0271d85d6ba32a4d820075055">memoryTypeBits</a>;</div>
+<div class="line"><a name="l02646"></a><span class="lineno"><a class="line" href="struct_vma_allocation_create_info.html#a6272c0555cfd1fe28bff1afeb6190150"> 2646</a></span>&#160;    <a class="code" href="struct_vma_pool.html">VmaPool</a> <a class="code" href="struct_vma_allocation_create_info.html#a6272c0555cfd1fe28bff1afeb6190150">pool</a>;</div>
+<div class="line"><a name="l02653"></a><span class="lineno"><a class="line" href="struct_vma_allocation_create_info.html#a8259e85c272683434f4abb4ddddffe19"> 2653</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="struct_vma_allocation_create_info.html#a8259e85c272683434f4abb4ddddffe19">pUserData</a>;</div>
+<div class="line"><a name="l02654"></a><span class="lineno"> 2654</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a3bf110892ea2fb4649fedb68488d026a">VmaAllocationCreateInfo</a>;</div>
+<div class="line"><a name="l02655"></a><span class="lineno"> 2655</span>&#160; </div>
+<div class="line"><a name="l02672"></a><span class="lineno"> 2672</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#aef15a94b58fbcb0fe706d5720e84a74a">vmaFindMemoryTypeIndex</a>(</div>
+<div class="line"><a name="l02673"></a><span class="lineno"> 2673</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l02674"></a><span class="lineno"> 2674</span>&#160;    uint32_t memoryTypeBits,</div>
+<div class="line"><a name="l02675"></a><span class="lineno"> 2675</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a>* pAllocationCreateInfo,</div>
+<div class="line"><a name="l02676"></a><span class="lineno"> 2676</span>&#160;    uint32_t* pMemoryTypeIndex);</div>
+<div class="line"><a name="l02677"></a><span class="lineno"> 2677</span>&#160; </div>
+<div class="line"><a name="l02690"></a><span class="lineno"> 2690</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ae790ab9ffaf7667fb8f62523e6897888">vmaFindMemoryTypeIndexForBufferInfo</a>(</div>
+<div class="line"><a name="l02691"></a><span class="lineno"> 2691</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l02692"></a><span class="lineno"> 2692</span>&#160;    <span class="keyword">const</span> VkBufferCreateInfo* pBufferCreateInfo,</div>
+<div class="line"><a name="l02693"></a><span class="lineno"> 2693</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a>* pAllocationCreateInfo,</div>
+<div class="line"><a name="l02694"></a><span class="lineno"> 2694</span>&#160;    uint32_t* pMemoryTypeIndex);</div>
+<div class="line"><a name="l02695"></a><span class="lineno"> 2695</span>&#160; </div>
+<div class="line"><a name="l02708"></a><span class="lineno"> 2708</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a088da83d8eaf3ce9056d9ea0b981d472">vmaFindMemoryTypeIndexForImageInfo</a>(</div>
+<div class="line"><a name="l02709"></a><span class="lineno"> 2709</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l02710"></a><span class="lineno"> 2710</span>&#160;    <span class="keyword">const</span> VkImageCreateInfo* pImageCreateInfo,</div>
+<div class="line"><a name="l02711"></a><span class="lineno"> 2711</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a>* pAllocationCreateInfo,</div>
+<div class="line"><a name="l02712"></a><span class="lineno"> 2712</span>&#160;    uint32_t* pMemoryTypeIndex);</div>
+<div class="line"><a name="l02713"></a><span class="lineno"> 2713</span>&#160; </div>
+<div class="line"><a name="l02715"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7"> 2715</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7">VmaPoolCreateFlagBits</a> {</div>
+<div class="line"><a name="l02733"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a9f1a499508a8edb4e8ba40aa0290a3d2"> 2733</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a9f1a499508a8edb4e8ba40aa0290a3d2">VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT</a> = 0x00000002,</div>
+<div class="line"><a name="l02734"></a><span class="lineno"> 2734</span>&#160; </div>
+<div class="line"><a name="l02750"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a13c8a444197c67866be9cb05599fc726"> 2750</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a13c8a444197c67866be9cb05599fc726">VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT</a> = 0x00000004,</div>
+<div class="line"><a name="l02751"></a><span class="lineno"> 2751</span>&#160; </div>
+<div class="line"><a name="l02761"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a97a0dc38e5161b780594d998d313d35e"> 2761</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a97a0dc38e5161b780594d998d313d35e">VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT</a> = 0x00000008,</div>
+<div class="line"><a name="l02762"></a><span class="lineno"> 2762</span>&#160; </div>
+<div class="line"><a name="l02765"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7af4d270f8f42517a0f70037ceb6ac1d9c"> 2765</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7af4d270f8f42517a0f70037ceb6ac1d9c">VMA_POOL_CREATE_ALGORITHM_MASK</a> =</div>
+<div class="line"><a name="l02766"></a><span class="lineno"> 2766</span>&#160;        <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a13c8a444197c67866be9cb05599fc726">VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT</a> |</div>
+<div class="line"><a name="l02767"></a><span class="lineno"> 2767</span>&#160;        <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a97a0dc38e5161b780594d998d313d35e">VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT</a>,</div>
+<div class="line"><a name="l02768"></a><span class="lineno"> 2768</span>&#160; </div>
+<div class="line"><a name="l02769"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a1c7312bea9ea246846b9054fd6bd6aec"> 2769</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a1c7312bea9ea246846b9054fd6bd6aec">VMA_POOL_CREATE_FLAG_BITS_MAX_ENUM</a> = 0x7FFFFFFF</div>
+<div class="line"><a name="l02770"></a><span class="lineno"> 2770</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7">VmaPoolCreateFlagBits</a>;</div>
+<div class="line"><a name="l02771"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a2770e325ea42e087c1b91fdf46d0292a"> 2771</a></span>&#160;<span class="keyword">typedef</span> VkFlags <a class="code" href="vk__mem__alloc_8h.html#a2770e325ea42e087c1b91fdf46d0292a">VmaPoolCreateFlags</a>;</div>
 <div class="line"><a name="l02772"></a><span class="lineno"> 2772</span>&#160; </div>
-<div class="line"><a name="l02775"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7af4d270f8f42517a0f70037ceb6ac1d9c"> 2775</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7af4d270f8f42517a0f70037ceb6ac1d9c">VMA_POOL_CREATE_ALGORITHM_MASK</a> =</div>
-<div class="line"><a name="l02776"></a><span class="lineno"> 2776</span>&#160;        <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a13c8a444197c67866be9cb05599fc726">VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT</a> |</div>
-<div class="line"><a name="l02777"></a><span class="lineno"> 2777</span>&#160;        <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a97a0dc38e5161b780594d998d313d35e">VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT</a>,</div>
-<div class="line"><a name="l02778"></a><span class="lineno"> 2778</span>&#160; </div>
-<div class="line"><a name="l02779"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a1c7312bea9ea246846b9054fd6bd6aec"> 2779</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a1c7312bea9ea246846b9054fd6bd6aec">VMA_POOL_CREATE_FLAG_BITS_MAX_ENUM</a> = 0x7FFFFFFF</div>
-<div class="line"><a name="l02780"></a><span class="lineno"> 2780</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7">VmaPoolCreateFlagBits</a>;</div>
-<div class="line"><a name="l02781"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a2770e325ea42e087c1b91fdf46d0292a"> 2781</a></span>&#160;<span class="keyword">typedef</span> VkFlags <a class="code" href="vk__mem__alloc_8h.html#a2770e325ea42e087c1b91fdf46d0292a">VmaPoolCreateFlags</a>;</div>
-<div class="line"><a name="l02782"></a><span class="lineno"> 2782</span>&#160; </div>
-<div class="line"><a name="l02785"></a><span class="lineno"><a class="line" href="struct_vma_pool_create_info.html"> 2785</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_pool_create_info.html">VmaPoolCreateInfo</a> {</div>
-<div class="line"><a name="l02788"></a><span class="lineno"><a class="line" href="struct_vma_pool_create_info.html#a596fa76b685d3f1f688f84a709a5b319"> 2788</a></span>&#160;    uint32_t <a class="code" href="struct_vma_pool_create_info.html#a596fa76b685d3f1f688f84a709a5b319">memoryTypeIndex</a>;</div>
-<div class="line"><a name="l02791"></a><span class="lineno"><a class="line" href="struct_vma_pool_create_info.html#a8405139f63d078340ae74513a59f5446"> 2791</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a2770e325ea42e087c1b91fdf46d0292a">VmaPoolCreateFlags</a> <a class="code" href="struct_vma_pool_create_info.html#a8405139f63d078340ae74513a59f5446">flags</a>;</div>
-<div class="line"><a name="l02800"></a><span class="lineno"><a class="line" href="struct_vma_pool_create_info.html#aa4265160536cdb9be821b7686c16c676"> 2800</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_pool_create_info.html#aa4265160536cdb9be821b7686c16c676">blockSize</a>;</div>
-<div class="line"><a name="l02805"></a><span class="lineno"><a class="line" href="struct_vma_pool_create_info.html#ad8006fb803185c0a699d30f3e9a865ae"> 2805</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="struct_vma_pool_create_info.html#ad8006fb803185c0a699d30f3e9a865ae">minBlockCount</a>;</div>
-<div class="line"><a name="l02813"></a><span class="lineno"><a class="line" href="struct_vma_pool_create_info.html#ae41142f2834fcdc82baa4883c187b75c"> 2813</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="struct_vma_pool_create_info.html#ae41142f2834fcdc82baa4883c187b75c">maxBlockCount</a>;</div>
-<div class="line"><a name="l02827"></a><span class="lineno"><a class="line" href="struct_vma_pool_create_info.html#a9437e43ffbb644dbbf7fc4e50cfad6aa"> 2827</a></span>&#160;    uint32_t <a class="code" href="struct_vma_pool_create_info.html#a9437e43ffbb644dbbf7fc4e50cfad6aa">frameInUseCount</a>;</div>
-<div class="line"><a name="l02828"></a><span class="lineno"> 2828</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a1017aa83489c0eee8d2163d2bf253f67">VmaPoolCreateInfo</a>;</div>
-<div class="line"><a name="l02829"></a><span class="lineno"> 2829</span>&#160; </div>
-<div class="line"><a name="l02832"></a><span class="lineno"><a class="line" href="struct_vma_pool_stats.html"> 2832</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_pool_stats.html">VmaPoolStats</a> {</div>
-<div class="line"><a name="l02835"></a><span class="lineno"><a class="line" href="struct_vma_pool_stats.html#a326807b2de2b0931cee4ed9a5f2e420c"> 2835</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_pool_stats.html#a326807b2de2b0931cee4ed9a5f2e420c">size</a>;</div>
-<div class="line"><a name="l02838"></a><span class="lineno"><a class="line" href="struct_vma_pool_stats.html#ad7c54874724fce7b06aba526202d82a8"> 2838</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_pool_stats.html#ad7c54874724fce7b06aba526202d82a8">unusedSize</a>;</div>
-<div class="line"><a name="l02841"></a><span class="lineno"><a class="line" href="struct_vma_pool_stats.html#ad1924eb54fffa45e9e0e65670c8fe5eb"> 2841</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="struct_vma_pool_stats.html#ad1924eb54fffa45e9e0e65670c8fe5eb">allocationCount</a>;</div>
-<div class="line"><a name="l02844"></a><span class="lineno"><a class="line" href="struct_vma_pool_stats.html#ae4f3546ffa4d1e598b64d8e6134854f4"> 2844</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="struct_vma_pool_stats.html#ae4f3546ffa4d1e598b64d8e6134854f4">unusedRangeCount</a>;</div>
-<div class="line"><a name="l02851"></a><span class="lineno"><a class="line" href="struct_vma_pool_stats.html#ab4c8f52dd42ab01998f60f0b6acc722b"> 2851</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_pool_stats.html#ab4c8f52dd42ab01998f60f0b6acc722b">unusedRangeSizeMax</a>;</div>
-<div class="line"><a name="l02854"></a><span class="lineno"><a class="line" href="struct_vma_pool_stats.html#aa0b5cb45cef6f18571cefb03b9a230e7"> 2854</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="struct_vma_pool_stats.html#aa0b5cb45cef6f18571cefb03b9a230e7">blockCount</a>;</div>
-<div class="line"><a name="l02855"></a><span class="lineno"> 2855</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a4759a2d9f99c19ba7627553c847132f1">VmaPoolStats</a>;</div>
-<div class="line"><a name="l02856"></a><span class="lineno"> 2856</span>&#160; </div>
-<div class="line"><a name="l02863"></a><span class="lineno"> 2863</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a5c8770ded7c59c8caac6de0c2cb00b50">vmaCreatePool</a>(</div>
-<div class="line"><a name="l02864"></a><span class="lineno"> 2864</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l02865"></a><span class="lineno"> 2865</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_pool_create_info.html">VmaPoolCreateInfo</a>* pCreateInfo,</div>
-<div class="line"><a name="l02866"></a><span class="lineno"> 2866</span>&#160;    <a class="code" href="struct_vma_pool.html">VmaPool</a>* pPool);</div>
-<div class="line"><a name="l02867"></a><span class="lineno"> 2867</span>&#160; </div>
-<div class="line"><a name="l02870"></a><span class="lineno"> 2870</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a5485779c8f1948238fc4e92232fa65e1">vmaDestroyPool</a>(</div>
+<div class="line"><a name="l02775"></a><span class="lineno"><a class="line" href="struct_vma_pool_create_info.html"> 2775</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_pool_create_info.html">VmaPoolCreateInfo</a> {</div>
+<div class="line"><a name="l02778"></a><span class="lineno"><a class="line" href="struct_vma_pool_create_info.html#a596fa76b685d3f1f688f84a709a5b319"> 2778</a></span>&#160;    uint32_t <a class="code" href="struct_vma_pool_create_info.html#a596fa76b685d3f1f688f84a709a5b319">memoryTypeIndex</a>;</div>
+<div class="line"><a name="l02781"></a><span class="lineno"><a class="line" href="struct_vma_pool_create_info.html#a8405139f63d078340ae74513a59f5446"> 2781</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a2770e325ea42e087c1b91fdf46d0292a">VmaPoolCreateFlags</a> <a class="code" href="struct_vma_pool_create_info.html#a8405139f63d078340ae74513a59f5446">flags</a>;</div>
+<div class="line"><a name="l02790"></a><span class="lineno"><a class="line" href="struct_vma_pool_create_info.html#aa4265160536cdb9be821b7686c16c676"> 2790</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_pool_create_info.html#aa4265160536cdb9be821b7686c16c676">blockSize</a>;</div>
+<div class="line"><a name="l02795"></a><span class="lineno"><a class="line" href="struct_vma_pool_create_info.html#ad8006fb803185c0a699d30f3e9a865ae"> 2795</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="struct_vma_pool_create_info.html#ad8006fb803185c0a699d30f3e9a865ae">minBlockCount</a>;</div>
+<div class="line"><a name="l02803"></a><span class="lineno"><a class="line" href="struct_vma_pool_create_info.html#ae41142f2834fcdc82baa4883c187b75c"> 2803</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="struct_vma_pool_create_info.html#ae41142f2834fcdc82baa4883c187b75c">maxBlockCount</a>;</div>
+<div class="line"><a name="l02817"></a><span class="lineno"><a class="line" href="struct_vma_pool_create_info.html#a9437e43ffbb644dbbf7fc4e50cfad6aa"> 2817</a></span>&#160;    uint32_t <a class="code" href="struct_vma_pool_create_info.html#a9437e43ffbb644dbbf7fc4e50cfad6aa">frameInUseCount</a>;</div>
+<div class="line"><a name="l02818"></a><span class="lineno"> 2818</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a1017aa83489c0eee8d2163d2bf253f67">VmaPoolCreateInfo</a>;</div>
+<div class="line"><a name="l02819"></a><span class="lineno"> 2819</span>&#160; </div>
+<div class="line"><a name="l02822"></a><span class="lineno"><a class="line" href="struct_vma_pool_stats.html"> 2822</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_pool_stats.html">VmaPoolStats</a> {</div>
+<div class="line"><a name="l02825"></a><span class="lineno"><a class="line" href="struct_vma_pool_stats.html#a326807b2de2b0931cee4ed9a5f2e420c"> 2825</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_pool_stats.html#a326807b2de2b0931cee4ed9a5f2e420c">size</a>;</div>
+<div class="line"><a name="l02828"></a><span class="lineno"><a class="line" href="struct_vma_pool_stats.html#ad7c54874724fce7b06aba526202d82a8"> 2828</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_pool_stats.html#ad7c54874724fce7b06aba526202d82a8">unusedSize</a>;</div>
+<div class="line"><a name="l02831"></a><span class="lineno"><a class="line" href="struct_vma_pool_stats.html#ad1924eb54fffa45e9e0e65670c8fe5eb"> 2831</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="struct_vma_pool_stats.html#ad1924eb54fffa45e9e0e65670c8fe5eb">allocationCount</a>;</div>
+<div class="line"><a name="l02834"></a><span class="lineno"><a class="line" href="struct_vma_pool_stats.html#ae4f3546ffa4d1e598b64d8e6134854f4"> 2834</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="struct_vma_pool_stats.html#ae4f3546ffa4d1e598b64d8e6134854f4">unusedRangeCount</a>;</div>
+<div class="line"><a name="l02841"></a><span class="lineno"><a class="line" href="struct_vma_pool_stats.html#ab4c8f52dd42ab01998f60f0b6acc722b"> 2841</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_pool_stats.html#ab4c8f52dd42ab01998f60f0b6acc722b">unusedRangeSizeMax</a>;</div>
+<div class="line"><a name="l02844"></a><span class="lineno"><a class="line" href="struct_vma_pool_stats.html#aa0b5cb45cef6f18571cefb03b9a230e7"> 2844</a></span>&#160;    <span class="keywordtype">size_t</span> <a class="code" href="struct_vma_pool_stats.html#aa0b5cb45cef6f18571cefb03b9a230e7">blockCount</a>;</div>
+<div class="line"><a name="l02845"></a><span class="lineno"> 2845</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a4759a2d9f99c19ba7627553c847132f1">VmaPoolStats</a>;</div>
+<div class="line"><a name="l02846"></a><span class="lineno"> 2846</span>&#160; </div>
+<div class="line"><a name="l02853"></a><span class="lineno"> 2853</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a5c8770ded7c59c8caac6de0c2cb00b50">vmaCreatePool</a>(</div>
+<div class="line"><a name="l02854"></a><span class="lineno"> 2854</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l02855"></a><span class="lineno"> 2855</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_pool_create_info.html">VmaPoolCreateInfo</a>* pCreateInfo,</div>
+<div class="line"><a name="l02856"></a><span class="lineno"> 2856</span>&#160;    <a class="code" href="struct_vma_pool.html">VmaPool</a>* pPool);</div>
+<div class="line"><a name="l02857"></a><span class="lineno"> 2857</span>&#160; </div>
+<div class="line"><a name="l02860"></a><span class="lineno"> 2860</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a5485779c8f1948238fc4e92232fa65e1">vmaDestroyPool</a>(</div>
+<div class="line"><a name="l02861"></a><span class="lineno"> 2861</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l02862"></a><span class="lineno"> 2862</span>&#160;    <a class="code" href="struct_vma_pool.html">VmaPool</a> pool);</div>
+<div class="line"><a name="l02863"></a><span class="lineno"> 2863</span>&#160; </div>
+<div class="line"><a name="l02870"></a><span class="lineno"> 2870</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ae8bf76997b234ef68aad922616df4153">vmaGetPoolStats</a>(</div>
 <div class="line"><a name="l02871"></a><span class="lineno"> 2871</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l02872"></a><span class="lineno"> 2872</span>&#160;    <a class="code" href="struct_vma_pool.html">VmaPool</a> pool);</div>
-<div class="line"><a name="l02873"></a><span class="lineno"> 2873</span>&#160; </div>
-<div class="line"><a name="l02880"></a><span class="lineno"> 2880</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ae8bf76997b234ef68aad922616df4153">vmaGetPoolStats</a>(</div>
-<div class="line"><a name="l02881"></a><span class="lineno"> 2881</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l02882"></a><span class="lineno"> 2882</span>&#160;    <a class="code" href="struct_vma_pool.html">VmaPool</a> pool,</div>
-<div class="line"><a name="l02883"></a><span class="lineno"> 2883</span>&#160;    <a class="code" href="struct_vma_pool_stats.html">VmaPoolStats</a>* pPoolStats);</div>
-<div class="line"><a name="l02884"></a><span class="lineno"> 2884</span>&#160; </div>
-<div class="line"><a name="l02891"></a><span class="lineno"> 2891</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a736bd6cbda886f36c891727e73bd4024">vmaMakePoolAllocationsLost</a>(</div>
-<div class="line"><a name="l02892"></a><span class="lineno"> 2892</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l02893"></a><span class="lineno"> 2893</span>&#160;    <a class="code" href="struct_vma_pool.html">VmaPool</a> pool,</div>
-<div class="line"><a name="l02894"></a><span class="lineno"> 2894</span>&#160;    <span class="keywordtype">size_t</span>* pLostAllocationCount);</div>
-<div class="line"><a name="l02895"></a><span class="lineno"> 2895</span>&#160; </div>
-<div class="line"><a name="l02910"></a><span class="lineno"> 2910</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ad535935619c7a549bf837e1bb0068f89">vmaCheckPoolCorruption</a>(<a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator, <a class="code" href="struct_vma_pool.html">VmaPool</a> pool);</div>
-<div class="line"><a name="l02911"></a><span class="lineno"> 2911</span>&#160; </div>
-<div class="line"><a name="l02918"></a><span class="lineno"> 2918</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#af09b4e4eafdbee812e8d73ddf960f030">vmaGetPoolName</a>(</div>
+<div class="line"><a name="l02872"></a><span class="lineno"> 2872</span>&#160;    <a class="code" href="struct_vma_pool.html">VmaPool</a> pool,</div>
+<div class="line"><a name="l02873"></a><span class="lineno"> 2873</span>&#160;    <a class="code" href="struct_vma_pool_stats.html">VmaPoolStats</a>* pPoolStats);</div>
+<div class="line"><a name="l02874"></a><span class="lineno"> 2874</span>&#160; </div>
+<div class="line"><a name="l02881"></a><span class="lineno"> 2881</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a736bd6cbda886f36c891727e73bd4024">vmaMakePoolAllocationsLost</a>(</div>
+<div class="line"><a name="l02882"></a><span class="lineno"> 2882</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l02883"></a><span class="lineno"> 2883</span>&#160;    <a class="code" href="struct_vma_pool.html">VmaPool</a> pool,</div>
+<div class="line"><a name="l02884"></a><span class="lineno"> 2884</span>&#160;    <span class="keywordtype">size_t</span>* pLostAllocationCount);</div>
+<div class="line"><a name="l02885"></a><span class="lineno"> 2885</span>&#160; </div>
+<div class="line"><a name="l02900"></a><span class="lineno"> 2900</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ad535935619c7a549bf837e1bb0068f89">vmaCheckPoolCorruption</a>(<a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator, <a class="code" href="struct_vma_pool.html">VmaPool</a> pool);</div>
+<div class="line"><a name="l02901"></a><span class="lineno"> 2901</span>&#160; </div>
+<div class="line"><a name="l02908"></a><span class="lineno"> 2908</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#af09b4e4eafdbee812e8d73ddf960f030">vmaGetPoolName</a>(</div>
+<div class="line"><a name="l02909"></a><span class="lineno"> 2909</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l02910"></a><span class="lineno"> 2910</span>&#160;    <a class="code" href="struct_vma_pool.html">VmaPool</a> pool,</div>
+<div class="line"><a name="l02911"></a><span class="lineno"> 2911</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>** ppName);</div>
+<div class="line"><a name="l02912"></a><span class="lineno"> 2912</span>&#160; </div>
+<div class="line"><a name="l02918"></a><span class="lineno"> 2918</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#adbae3a0b4ab078024462fc85c37f3b58">vmaSetPoolName</a>(</div>
 <div class="line"><a name="l02919"></a><span class="lineno"> 2919</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
 <div class="line"><a name="l02920"></a><span class="lineno"> 2920</span>&#160;    <a class="code" href="struct_vma_pool.html">VmaPool</a> pool,</div>
-<div class="line"><a name="l02921"></a><span class="lineno"> 2921</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>** ppName);</div>
+<div class="line"><a name="l02921"></a><span class="lineno"> 2921</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* pName);</div>
 <div class="line"><a name="l02922"></a><span class="lineno"> 2922</span>&#160; </div>
-<div class="line"><a name="l02928"></a><span class="lineno"> 2928</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#adbae3a0b4ab078024462fc85c37f3b58">vmaSetPoolName</a>(</div>
-<div class="line"><a name="l02929"></a><span class="lineno"> 2929</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l02930"></a><span class="lineno"> 2930</span>&#160;    <a class="code" href="struct_vma_pool.html">VmaPool</a> pool,</div>
-<div class="line"><a name="l02931"></a><span class="lineno"> 2931</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* pName);</div>
-<div class="line"><a name="l02932"></a><span class="lineno"> 2932</span>&#160; </div>
-<div class="line"><a name="l02957"></a><span class="lineno"> 2957</span>&#160;VK_DEFINE_HANDLE(<a class="code" href="struct_vma_allocation.html">VmaAllocation</a>)</div>
-<div class="line"><a name="l02958"></a><span class="lineno"> 2958</span>&#160; </div>
-<div class="line"><a name="l02959"></a><span class="lineno"> 2959</span>&#160; </div>
-<div class="line"><a name="l02961"></a><span class="lineno"><a class="line" href="struct_vma_allocation_info.html"> 2961</a></span>&#160;typedef struct <a class="code" href="struct_vma_allocation_info.html">VmaAllocationInfo</a> {</div>
-<div class="line"><a name="l02966"></a><span class="lineno"><a class="line" href="struct_vma_allocation_info.html#a7f6b0aa58c135e488e6b40a388dad9d5"> 2966</a></span>&#160;    uint32_t <a class="code" href="struct_vma_allocation_info.html#a7f6b0aa58c135e488e6b40a388dad9d5">memoryType</a>;</div>
-<div class="line"><a name="l02975"></a><span class="lineno"><a class="line" href="struct_vma_allocation_info.html#ae0bfb7dfdf79a76ffefc9a94677a2f67"> 2975</a></span>&#160;    VkDeviceMemory <a class="code" href="struct_vma_allocation_info.html#ae0bfb7dfdf79a76ffefc9a94677a2f67">deviceMemory</a>;</div>
-<div class="line"><a name="l02980"></a><span class="lineno"><a class="line" href="struct_vma_allocation_info.html#a4a3c732388dbdc7a23f9365b00825268"> 2980</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_allocation_info.html#a4a3c732388dbdc7a23f9365b00825268">offset</a>;</div>
-<div class="line"><a name="l02985"></a><span class="lineno"><a class="line" href="struct_vma_allocation_info.html#aac76d113a6a5ccbb09fea00fb25fd18f"> 2985</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_allocation_info.html#aac76d113a6a5ccbb09fea00fb25fd18f">size</a>;</div>
-<div class="line"><a name="l02994"></a><span class="lineno"><a class="line" href="struct_vma_allocation_info.html#a5eeffbe2d2f30f53370ff14aefbadbe2"> 2994</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="struct_vma_allocation_info.html#a5eeffbe2d2f30f53370ff14aefbadbe2">pMappedData</a>;</div>
-<div class="line"><a name="l02999"></a><span class="lineno"><a class="line" href="struct_vma_allocation_info.html#adc507656149c04de7ed95d0042ba2a13"> 2999</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="struct_vma_allocation_info.html#adc507656149c04de7ed95d0042ba2a13">pUserData</a>;</div>
-<div class="line"><a name="l03000"></a><span class="lineno"> 3000</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a1cf7774606721026a68aabe3af2e5b50">VmaAllocationInfo</a>;</div>
-<div class="line"><a name="l03001"></a><span class="lineno"> 3001</span>&#160; </div>
-<div class="line"><a name="l03012"></a><span class="lineno"> 3012</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#abf28077dbf82d0908b8acbe8ee8dd9b8">vmaAllocateMemory</a>(</div>
-<div class="line"><a name="l03013"></a><span class="lineno"> 3013</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03014"></a><span class="lineno"> 3014</span>&#160;    <span class="keyword">const</span> VkMemoryRequirements* pVkMemoryRequirements,</div>
-<div class="line"><a name="l03015"></a><span class="lineno"> 3015</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a>* pCreateInfo,</div>
-<div class="line"><a name="l03016"></a><span class="lineno"> 3016</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a>* pAllocation,</div>
-<div class="line"><a name="l03017"></a><span class="lineno"> 3017</span>&#160;    <a class="code" href="struct_vma_allocation_info.html">VmaAllocationInfo</a>* pAllocationInfo);</div>
-<div class="line"><a name="l03018"></a><span class="lineno"> 3018</span>&#160; </div>
-<div class="line"><a name="l03038"></a><span class="lineno"> 3038</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ad37e82e492b3de38fc3f4cffd9ad0ae1">vmaAllocateMemoryPages</a>(</div>
-<div class="line"><a name="l03039"></a><span class="lineno"> 3039</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03040"></a><span class="lineno"> 3040</span>&#160;    <span class="keyword">const</span> VkMemoryRequirements* pVkMemoryRequirements,</div>
-<div class="line"><a name="l03041"></a><span class="lineno"> 3041</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a>* pCreateInfo,</div>
-<div class="line"><a name="l03042"></a><span class="lineno"> 3042</span>&#160;    <span class="keywordtype">size_t</span> allocationCount,</div>
-<div class="line"><a name="l03043"></a><span class="lineno"> 3043</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a>* pAllocations,</div>
-<div class="line"><a name="l03044"></a><span class="lineno"> 3044</span>&#160;    <a class="code" href="struct_vma_allocation_info.html">VmaAllocationInfo</a>* pAllocationInfo);</div>
-<div class="line"><a name="l03045"></a><span class="lineno"> 3045</span>&#160; </div>
-<div class="line"><a name="l03052"></a><span class="lineno"> 3052</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a7fdf64415b6c3d83c454f28d2c53df7b">vmaAllocateMemoryForBuffer</a>(</div>
-<div class="line"><a name="l03053"></a><span class="lineno"> 3053</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03054"></a><span class="lineno"> 3054</span>&#160;    VkBuffer buffer,</div>
-<div class="line"><a name="l03055"></a><span class="lineno"> 3055</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a>* pCreateInfo,</div>
-<div class="line"><a name="l03056"></a><span class="lineno"> 3056</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a>* pAllocation,</div>
-<div class="line"><a name="l03057"></a><span class="lineno"> 3057</span>&#160;    <a class="code" href="struct_vma_allocation_info.html">VmaAllocationInfo</a>* pAllocationInfo);</div>
-<div class="line"><a name="l03058"></a><span class="lineno"> 3058</span>&#160; </div>
-<div class="line"><a name="l03060"></a><span class="lineno"> 3060</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a0faa3f9e5fb233d29d1e00390650febb">vmaAllocateMemoryForImage</a>(</div>
-<div class="line"><a name="l03061"></a><span class="lineno"> 3061</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03062"></a><span class="lineno"> 3062</span>&#160;    VkImage image,</div>
-<div class="line"><a name="l03063"></a><span class="lineno"> 3063</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a>* pCreateInfo,</div>
-<div class="line"><a name="l03064"></a><span class="lineno"> 3064</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a>* pAllocation,</div>
-<div class="line"><a name="l03065"></a><span class="lineno"> 3065</span>&#160;    <a class="code" href="struct_vma_allocation_info.html">VmaAllocationInfo</a>* pAllocationInfo);</div>
-<div class="line"><a name="l03066"></a><span class="lineno"> 3066</span>&#160; </div>
-<div class="line"><a name="l03071"></a><span class="lineno"> 3071</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a11f0fbc034fa81a4efedd73d61ce7568">vmaFreeMemory</a>(</div>
-<div class="line"><a name="l03072"></a><span class="lineno"> 3072</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03073"></a><span class="lineno"> 3073</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation);</div>
-<div class="line"><a name="l03074"></a><span class="lineno"> 3074</span>&#160; </div>
-<div class="line"><a name="l03085"></a><span class="lineno"> 3085</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ab9e709de044c5d8476bea77a4e755840">vmaFreeMemoryPages</a>(</div>
-<div class="line"><a name="l03086"></a><span class="lineno"> 3086</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03087"></a><span class="lineno"> 3087</span>&#160;    <span class="keywordtype">size_t</span> allocationCount,</div>
-<div class="line"><a name="l03088"></a><span class="lineno"> 3088</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a>* pAllocations);</div>
-<div class="line"><a name="l03089"></a><span class="lineno"> 3089</span>&#160; </div>
-<div class="line"><a name="l03097"></a><span class="lineno"> 3097</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a0ff488958ca72b28e545880463cb8696">vmaResizeAllocation</a>(</div>
-<div class="line"><a name="l03098"></a><span class="lineno"> 3098</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03099"></a><span class="lineno"> 3099</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation,</div>
-<div class="line"><a name="l03100"></a><span class="lineno"> 3100</span>&#160;    VkDeviceSize newSize);</div>
-<div class="line"><a name="l03101"></a><span class="lineno"> 3101</span>&#160; </div>
-<div class="line"><a name="l03118"></a><span class="lineno"> 3118</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a86dd08aba8633bfa4ad0df2e76481d8b">vmaGetAllocationInfo</a>(</div>
-<div class="line"><a name="l03119"></a><span class="lineno"> 3119</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03120"></a><span class="lineno"> 3120</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation,</div>
-<div class="line"><a name="l03121"></a><span class="lineno"> 3121</span>&#160;    <a class="code" href="struct_vma_allocation_info.html">VmaAllocationInfo</a>* pAllocationInfo);</div>
-<div class="line"><a name="l03122"></a><span class="lineno"> 3122</span>&#160; </div>
-<div class="line"><a name="l03137"></a><span class="lineno"> 3137</span>&#160;VMA_CALL_PRE VkBool32 VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a43d8ba9673c846f049089a5029d5c73a">vmaTouchAllocation</a>(</div>
-<div class="line"><a name="l03138"></a><span class="lineno"> 3138</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03139"></a><span class="lineno"> 3139</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation);</div>
-<div class="line"><a name="l03140"></a><span class="lineno"> 3140</span>&#160; </div>
-<div class="line"><a name="l03154"></a><span class="lineno"> 3154</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#af9147d31ffc11d62fc187bde283ed14f">vmaSetAllocationUserData</a>(</div>
-<div class="line"><a name="l03155"></a><span class="lineno"> 3155</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03156"></a><span class="lineno"> 3156</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation,</div>
-<div class="line"><a name="l03157"></a><span class="lineno"> 3157</span>&#160;    <span class="keywordtype">void</span>* pUserData);</div>
-<div class="line"><a name="l03158"></a><span class="lineno"> 3158</span>&#160; </div>
-<div class="line"><a name="l03169"></a><span class="lineno"> 3169</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ae5c9657d9e94756269145b01c05d16f1">vmaCreateLostAllocation</a>(</div>
-<div class="line"><a name="l03170"></a><span class="lineno"> 3170</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03171"></a><span class="lineno"> 3171</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a>* pAllocation);</div>
-<div class="line"><a name="l03172"></a><span class="lineno"> 3172</span>&#160; </div>
-<div class="line"><a name="l03211"></a><span class="lineno"> 3211</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ad5bd1243512d099706de88168992f069">vmaMapMemory</a>(</div>
-<div class="line"><a name="l03212"></a><span class="lineno"> 3212</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03213"></a><span class="lineno"> 3213</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation,</div>
-<div class="line"><a name="l03214"></a><span class="lineno"> 3214</span>&#160;    <span class="keywordtype">void</span>** ppData);</div>
-<div class="line"><a name="l03215"></a><span class="lineno"> 3215</span>&#160; </div>
-<div class="line"><a name="l03224"></a><span class="lineno"> 3224</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a9bc268595cb33f6ec4d519cfce81ff45">vmaUnmapMemory</a>(</div>
-<div class="line"><a name="l03225"></a><span class="lineno"> 3225</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03226"></a><span class="lineno"> 3226</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation);</div>
-<div class="line"><a name="l03227"></a><span class="lineno"> 3227</span>&#160; </div>
-<div class="line"><a name="l03246"></a><span class="lineno"> 3246</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#abc34ee6f021f459aff885f3758c435de">vmaFlushAllocation</a>(<a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator, <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation, VkDeviceSize offset, VkDeviceSize size);</div>
-<div class="line"><a name="l03247"></a><span class="lineno"> 3247</span>&#160; </div>
-<div class="line"><a name="l03266"></a><span class="lineno"> 3266</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a0d0eb0c1102268fa9a476d12ecbe4006">vmaInvalidateAllocation</a>(<a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator, <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation, VkDeviceSize offset, VkDeviceSize size);</div>
-<div class="line"><a name="l03267"></a><span class="lineno"> 3267</span>&#160; </div>
-<div class="line"><a name="l03284"></a><span class="lineno"> 3284</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a49329a7f030dafcf82f7b73334c22e98">vmaCheckCorruption</a>(<a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator, uint32_t memoryTypeBits);</div>
-<div class="line"><a name="l03285"></a><span class="lineno"> 3285</span>&#160; </div>
-<div class="line"><a name="l03292"></a><span class="lineno"> 3292</span>&#160;VK_DEFINE_HANDLE(<a class="code" href="struct_vma_defragmentation_context.html">VmaDefragmentationContext</a>)</div>
-<div class="line"><a name="l03293"></a><span class="lineno"> 3293</span>&#160; </div>
-<div class="line"><a name="l03294"></a><span class="lineno"> 3294</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="vk__mem__alloc_8h.html#a6552a65b71d16f378c6994b3ceaef50c">VmaDefragmentationFlagBits</a> {</div>
-<div class="line"><a name="l03296"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a6552a65b71d16f378c6994b3ceaef50ca31af49446af2459284a568ce2f3fdd33"> 3296</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a6552a65b71d16f378c6994b3ceaef50ca31af49446af2459284a568ce2f3fdd33">VMA_DEFRAGMENTATION_FLAG_INCREMENTAL</a> = 0x1,</div>
-<div class="line"><a name="l03297"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a6552a65b71d16f378c6994b3ceaef50cab87ec33154803bfeb5ac2b379f1d6a97"> 3297</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a6552a65b71d16f378c6994b3ceaef50cab87ec33154803bfeb5ac2b379f1d6a97">VMA_DEFRAGMENTATION_FLAG_BITS_MAX_ENUM</a> = 0x7FFFFFFF</div>
-<div class="line"><a name="l03298"></a><span class="lineno"> 3298</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a6552a65b71d16f378c6994b3ceaef50c">VmaDefragmentationFlagBits</a>;</div>
-<div class="line"><a name="l03299"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a88a77cef37e5d3c4fc9eb328885d048d"> 3299</a></span>&#160;<span class="keyword">typedef</span> VkFlags <a class="code" href="vk__mem__alloc_8h.html#a88a77cef37e5d3c4fc9eb328885d048d">VmaDefragmentationFlags</a>;</div>
-<div class="line"><a name="l03300"></a><span class="lineno"> 3300</span>&#160; </div>
-<div class="line"><a name="l03305"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html"> 3305</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_defragmentation_info2.html">VmaDefragmentationInfo2</a> {</div>
-<div class="line"><a name="l03308"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#a53e844ee5633e229cf6daf14b2d9fff9"> 3308</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a88a77cef37e5d3c4fc9eb328885d048d">VmaDefragmentationFlags</a> <a class="code" href="struct_vma_defragmentation_info2.html#a53e844ee5633e229cf6daf14b2d9fff9">flags</a>;</div>
-<div class="line"><a name="l03311"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#a3cf86ab32c1da779b4923d301a3056ba"> 3311</a></span>&#160;    uint32_t <a class="code" href="struct_vma_defragmentation_info2.html#a3cf86ab32c1da779b4923d301a3056ba">allocationCount</a>;</div>
-<div class="line"><a name="l03320"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#a8943f8d65969ce8e2189a1cdf3205e96"> 3320</a></span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a>* <a class="code" href="struct_vma_defragmentation_info2.html#a8943f8d65969ce8e2189a1cdf3205e96">pAllocations</a>;</div>
-<div class="line"><a name="l03326"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#a76d51a644dc7f5405d0cdd0025ecd0cc"> 3326</a></span>&#160;    VkBool32* <a class="code" href="struct_vma_defragmentation_info2.html#a76d51a644dc7f5405d0cdd0025ecd0cc">pAllocationsChanged</a>;</div>
-<div class="line"><a name="l03329"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#a7e70aa2a1081d849dcc7829b19d3ec9d"> 3329</a></span>&#160;    uint32_t <a class="code" href="struct_vma_defragmentation_info2.html#a7e70aa2a1081d849dcc7829b19d3ec9d">poolCount</a>;</div>
-<div class="line"><a name="l03345"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#a0b3effd57f3fcdeb2ed62210b4ef20e1"> 3345</a></span>&#160;    <a class="code" href="struct_vma_pool.html">VmaPool</a>* <a class="code" href="struct_vma_defragmentation_info2.html#a0b3effd57f3fcdeb2ed62210b4ef20e1">pPools</a>;</div>
-<div class="line"><a name="l03350"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#af78e1ea40c22d85137b65f6b384a4d0a"> 3350</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_defragmentation_info2.html#af78e1ea40c22d85137b65f6b384a4d0a">maxCpuBytesToMove</a>;</div>
-<div class="line"><a name="l03355"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#a94c2c7223d52878445a8cccce396b671"> 3355</a></span>&#160;    uint32_t <a class="code" href="struct_vma_defragmentation_info2.html#a94c2c7223d52878445a8cccce396b671">maxCpuAllocationsToMove</a>;</div>
-<div class="line"><a name="l03360"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#a4ddbc898d0afe1518f863a3763628f08"> 3360</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_defragmentation_info2.html#a4ddbc898d0afe1518f863a3763628f08">maxGpuBytesToMove</a>;</div>
-<div class="line"><a name="l03365"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#a40d53d33e71ba0b66f844ed63c05a3f6"> 3365</a></span>&#160;    uint32_t <a class="code" href="struct_vma_defragmentation_info2.html#a40d53d33e71ba0b66f844ed63c05a3f6">maxGpuAllocationsToMove</a>;</div>
-<div class="line"><a name="l03374"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#a7f71f39590c5316771493d2333f9c1bd"> 3374</a></span>&#160;    VkCommandBuffer <a class="code" href="struct_vma_defragmentation_info2.html#a7f71f39590c5316771493d2333f9c1bd">commandBuffer</a>;</div>
-<div class="line"><a name="l03375"></a><span class="lineno"> 3375</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#ad6daeffaa670ce6d11a203a6224c9937">VmaDefragmentationInfo2</a>;</div>
-<div class="line"><a name="l03376"></a><span class="lineno"> 3376</span>&#160; </div>
-<div class="line"><a name="l03377"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_pass_move_info.html"> 3377</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_defragmentation_pass_move_info.html">VmaDefragmentationPassMoveInfo</a> {</div>
-<div class="line"><a name="l03378"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_pass_move_info.html#ae885c861c2dd8d622e6c19e281d035cc"> 3378</a></span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> <a class="code" href="struct_vma_defragmentation_pass_move_info.html#ae885c861c2dd8d622e6c19e281d035cc">allocation</a>;</div>
-<div class="line"><a name="l03379"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_pass_move_info.html#a06eb0c8690aa0d3478a036753492e769"> 3379</a></span>&#160;    VkDeviceMemory <a class="code" href="struct_vma_defragmentation_pass_move_info.html#a06eb0c8690aa0d3478a036753492e769">memory</a>;</div>
-<div class="line"><a name="l03380"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_pass_move_info.html#a8ab4508bc03625b0653c880576be96c6"> 3380</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_defragmentation_pass_move_info.html#a8ab4508bc03625b0653c880576be96c6">offset</a>;</div>
-<div class="line"><a name="l03381"></a><span class="lineno"> 3381</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#ad6799e8e2b1527abfc84d33bc44aeaf5">VmaDefragmentationPassMoveInfo</a>;</div>
-<div class="line"><a name="l03382"></a><span class="lineno"> 3382</span>&#160; </div>
-<div class="line"><a name="l03387"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_pass_info.html"> 3387</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_defragmentation_pass_info.html">VmaDefragmentationPassInfo</a> {</div>
-<div class="line"><a name="l03388"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_pass_info.html#ac1086e657ba995f8d1f4e49b83dcfb6c"> 3388</a></span>&#160;    uint32_t <a class="code" href="struct_vma_defragmentation_pass_info.html#ac1086e657ba995f8d1f4e49b83dcfb6c">moveCount</a>;</div>
-<div class="line"><a name="l03389"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_pass_info.html#acbd42d4a3357999da130a95cd99a3792"> 3389</a></span>&#160;    <a class="code" href="struct_vma_defragmentation_pass_move_info.html">VmaDefragmentationPassMoveInfo</a>* <a class="code" href="struct_vma_defragmentation_pass_info.html#acbd42d4a3357999da130a95cd99a3792">pMoves</a>;</div>
-<div class="line"><a name="l03390"></a><span class="lineno"> 3390</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a72aebd522242d56abea67b4f47f6549e">VmaDefragmentationPassInfo</a>;</div>
-<div class="line"><a name="l03391"></a><span class="lineno"> 3391</span>&#160; </div>
-<div class="line"><a name="l03396"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info.html"> 3396</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_defragmentation_info.html">VmaDefragmentationInfo</a> {</div>
-<div class="line"><a name="l03401"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info.html#acb311c940a777270e67e1b81c5ab6a1d"> 3401</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_defragmentation_info.html#acb311c940a777270e67e1b81c5ab6a1d">maxBytesToMove</a>;</div>
-<div class="line"><a name="l03406"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info.html#aa7c7304e13c71f604c907196c4e28fbc"> 3406</a></span>&#160;    uint32_t <a class="code" href="struct_vma_defragmentation_info.html#aa7c7304e13c71f604c907196c4e28fbc">maxAllocationsToMove</a>;</div>
-<div class="line"><a name="l03407"></a><span class="lineno"> 3407</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a2bf47f96bf92bed2a49461bd9af3acfa">VmaDefragmentationInfo</a>;</div>
-<div class="line"><a name="l03408"></a><span class="lineno"> 3408</span>&#160; </div>
-<div class="line"><a name="l03410"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_stats.html"> 3410</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_defragmentation_stats.html">VmaDefragmentationStats</a> {</div>
-<div class="line"><a name="l03412"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_stats.html#a36f9d5df2a10ba2a36b16e126d60572d"> 3412</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_defragmentation_stats.html#a36f9d5df2a10ba2a36b16e126d60572d">bytesMoved</a>;</div>
-<div class="line"><a name="l03414"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_stats.html#ab0cb9ac0dbc106c77e384ea676422f28"> 3414</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_defragmentation_stats.html#ab0cb9ac0dbc106c77e384ea676422f28">bytesFreed</a>;</div>
-<div class="line"><a name="l03416"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_stats.html#aefeabf130022008eadd75999478af3f9"> 3416</a></span>&#160;    uint32_t <a class="code" href="struct_vma_defragmentation_stats.html#aefeabf130022008eadd75999478af3f9">allocationsMoved</a>;</div>
-<div class="line"><a name="l03418"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_stats.html#a0113f1877904a5d1ee8f409216ff276b"> 3418</a></span>&#160;    uint32_t <a class="code" href="struct_vma_defragmentation_stats.html#a0113f1877904a5d1ee8f409216ff276b">deviceMemoryBlocksFreed</a>;</div>
-<div class="line"><a name="l03419"></a><span class="lineno"> 3419</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#ad94034192259c2e34a4d1c5e27810403">VmaDefragmentationStats</a>;</div>
-<div class="line"><a name="l03420"></a><span class="lineno"> 3420</span>&#160; </div>
-<div class="line"><a name="l03450"></a><span class="lineno"> 3450</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a36ba776fd7fd5cb1e9359fdc0d8e6e8a">vmaDefragmentationBegin</a>(</div>
-<div class="line"><a name="l03451"></a><span class="lineno"> 3451</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03452"></a><span class="lineno"> 3452</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_defragmentation_info2.html">VmaDefragmentationInfo2</a>* pInfo,</div>
-<div class="line"><a name="l03453"></a><span class="lineno"> 3453</span>&#160;    <a class="code" href="struct_vma_defragmentation_stats.html">VmaDefragmentationStats</a>* pStats,</div>
-<div class="line"><a name="l03454"></a><span class="lineno"> 3454</span>&#160;    <a class="code" href="struct_vma_defragmentation_context.html">VmaDefragmentationContext</a> *pContext);</div>
-<div class="line"><a name="l03455"></a><span class="lineno"> 3455</span>&#160; </div>
-<div class="line"><a name="l03461"></a><span class="lineno"> 3461</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a8774e20e91e245aae959ba63efa15dd2">vmaDefragmentationEnd</a>(</div>
-<div class="line"><a name="l03462"></a><span class="lineno"> 3462</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03463"></a><span class="lineno"> 3463</span>&#160;    <a class="code" href="struct_vma_defragmentation_context.html">VmaDefragmentationContext</a> context);</div>
+<div class="line"><a name="l02947"></a><span class="lineno"> 2947</span>&#160;VK_DEFINE_HANDLE(<a class="code" href="struct_vma_allocation.html">VmaAllocation</a>)</div>
+<div class="line"><a name="l02948"></a><span class="lineno"> 2948</span>&#160; </div>
+<div class="line"><a name="l02949"></a><span class="lineno"> 2949</span>&#160; </div>
+<div class="line"><a name="l02951"></a><span class="lineno"><a class="line" href="struct_vma_allocation_info.html"> 2951</a></span>&#160;typedef struct <a class="code" href="struct_vma_allocation_info.html">VmaAllocationInfo</a> {</div>
+<div class="line"><a name="l02956"></a><span class="lineno"><a class="line" href="struct_vma_allocation_info.html#a7f6b0aa58c135e488e6b40a388dad9d5"> 2956</a></span>&#160;    uint32_t <a class="code" href="struct_vma_allocation_info.html#a7f6b0aa58c135e488e6b40a388dad9d5">memoryType</a>;</div>
+<div class="line"><a name="l02965"></a><span class="lineno"><a class="line" href="struct_vma_allocation_info.html#ae0bfb7dfdf79a76ffefc9a94677a2f67"> 2965</a></span>&#160;    VkDeviceMemory <a class="code" href="struct_vma_allocation_info.html#ae0bfb7dfdf79a76ffefc9a94677a2f67">deviceMemory</a>;</div>
+<div class="line"><a name="l02970"></a><span class="lineno"><a class="line" href="struct_vma_allocation_info.html#a4a3c732388dbdc7a23f9365b00825268"> 2970</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_allocation_info.html#a4a3c732388dbdc7a23f9365b00825268">offset</a>;</div>
+<div class="line"><a name="l02975"></a><span class="lineno"><a class="line" href="struct_vma_allocation_info.html#aac76d113a6a5ccbb09fea00fb25fd18f"> 2975</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_allocation_info.html#aac76d113a6a5ccbb09fea00fb25fd18f">size</a>;</div>
+<div class="line"><a name="l02984"></a><span class="lineno"><a class="line" href="struct_vma_allocation_info.html#a5eeffbe2d2f30f53370ff14aefbadbe2"> 2984</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="struct_vma_allocation_info.html#a5eeffbe2d2f30f53370ff14aefbadbe2">pMappedData</a>;</div>
+<div class="line"><a name="l02989"></a><span class="lineno"><a class="line" href="struct_vma_allocation_info.html#adc507656149c04de7ed95d0042ba2a13"> 2989</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="struct_vma_allocation_info.html#adc507656149c04de7ed95d0042ba2a13">pUserData</a>;</div>
+<div class="line"><a name="l02990"></a><span class="lineno"> 2990</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a1cf7774606721026a68aabe3af2e5b50">VmaAllocationInfo</a>;</div>
+<div class="line"><a name="l02991"></a><span class="lineno"> 2991</span>&#160; </div>
+<div class="line"><a name="l03002"></a><span class="lineno"> 3002</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#abf28077dbf82d0908b8acbe8ee8dd9b8">vmaAllocateMemory</a>(</div>
+<div class="line"><a name="l03003"></a><span class="lineno"> 3003</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03004"></a><span class="lineno"> 3004</span>&#160;    <span class="keyword">const</span> VkMemoryRequirements* pVkMemoryRequirements,</div>
+<div class="line"><a name="l03005"></a><span class="lineno"> 3005</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a>* pCreateInfo,</div>
+<div class="line"><a name="l03006"></a><span class="lineno"> 3006</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a>* pAllocation,</div>
+<div class="line"><a name="l03007"></a><span class="lineno"> 3007</span>&#160;    <a class="code" href="struct_vma_allocation_info.html">VmaAllocationInfo</a>* pAllocationInfo);</div>
+<div class="line"><a name="l03008"></a><span class="lineno"> 3008</span>&#160; </div>
+<div class="line"><a name="l03028"></a><span class="lineno"> 3028</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ad37e82e492b3de38fc3f4cffd9ad0ae1">vmaAllocateMemoryPages</a>(</div>
+<div class="line"><a name="l03029"></a><span class="lineno"> 3029</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03030"></a><span class="lineno"> 3030</span>&#160;    <span class="keyword">const</span> VkMemoryRequirements* pVkMemoryRequirements,</div>
+<div class="line"><a name="l03031"></a><span class="lineno"> 3031</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a>* pCreateInfo,</div>
+<div class="line"><a name="l03032"></a><span class="lineno"> 3032</span>&#160;    <span class="keywordtype">size_t</span> allocationCount,</div>
+<div class="line"><a name="l03033"></a><span class="lineno"> 3033</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a>* pAllocations,</div>
+<div class="line"><a name="l03034"></a><span class="lineno"> 3034</span>&#160;    <a class="code" href="struct_vma_allocation_info.html">VmaAllocationInfo</a>* pAllocationInfo);</div>
+<div class="line"><a name="l03035"></a><span class="lineno"> 3035</span>&#160; </div>
+<div class="line"><a name="l03042"></a><span class="lineno"> 3042</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a7fdf64415b6c3d83c454f28d2c53df7b">vmaAllocateMemoryForBuffer</a>(</div>
+<div class="line"><a name="l03043"></a><span class="lineno"> 3043</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03044"></a><span class="lineno"> 3044</span>&#160;    VkBuffer buffer,</div>
+<div class="line"><a name="l03045"></a><span class="lineno"> 3045</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a>* pCreateInfo,</div>
+<div class="line"><a name="l03046"></a><span class="lineno"> 3046</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a>* pAllocation,</div>
+<div class="line"><a name="l03047"></a><span class="lineno"> 3047</span>&#160;    <a class="code" href="struct_vma_allocation_info.html">VmaAllocationInfo</a>* pAllocationInfo);</div>
+<div class="line"><a name="l03048"></a><span class="lineno"> 3048</span>&#160; </div>
+<div class="line"><a name="l03050"></a><span class="lineno"> 3050</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a0faa3f9e5fb233d29d1e00390650febb">vmaAllocateMemoryForImage</a>(</div>
+<div class="line"><a name="l03051"></a><span class="lineno"> 3051</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03052"></a><span class="lineno"> 3052</span>&#160;    VkImage image,</div>
+<div class="line"><a name="l03053"></a><span class="lineno"> 3053</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a>* pCreateInfo,</div>
+<div class="line"><a name="l03054"></a><span class="lineno"> 3054</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a>* pAllocation,</div>
+<div class="line"><a name="l03055"></a><span class="lineno"> 3055</span>&#160;    <a class="code" href="struct_vma_allocation_info.html">VmaAllocationInfo</a>* pAllocationInfo);</div>
+<div class="line"><a name="l03056"></a><span class="lineno"> 3056</span>&#160; </div>
+<div class="line"><a name="l03061"></a><span class="lineno"> 3061</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a11f0fbc034fa81a4efedd73d61ce7568">vmaFreeMemory</a>(</div>
+<div class="line"><a name="l03062"></a><span class="lineno"> 3062</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03063"></a><span class="lineno"> 3063</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation);</div>
+<div class="line"><a name="l03064"></a><span class="lineno"> 3064</span>&#160; </div>
+<div class="line"><a name="l03075"></a><span class="lineno"> 3075</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ab9e709de044c5d8476bea77a4e755840">vmaFreeMemoryPages</a>(</div>
+<div class="line"><a name="l03076"></a><span class="lineno"> 3076</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03077"></a><span class="lineno"> 3077</span>&#160;    <span class="keywordtype">size_t</span> allocationCount,</div>
+<div class="line"><a name="l03078"></a><span class="lineno"> 3078</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a>* pAllocations);</div>
+<div class="line"><a name="l03079"></a><span class="lineno"> 3079</span>&#160; </div>
+<div class="line"><a name="l03087"></a><span class="lineno"> 3087</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a0ff488958ca72b28e545880463cb8696">vmaResizeAllocation</a>(</div>
+<div class="line"><a name="l03088"></a><span class="lineno"> 3088</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03089"></a><span class="lineno"> 3089</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation,</div>
+<div class="line"><a name="l03090"></a><span class="lineno"> 3090</span>&#160;    VkDeviceSize newSize);</div>
+<div class="line"><a name="l03091"></a><span class="lineno"> 3091</span>&#160; </div>
+<div class="line"><a name="l03108"></a><span class="lineno"> 3108</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a86dd08aba8633bfa4ad0df2e76481d8b">vmaGetAllocationInfo</a>(</div>
+<div class="line"><a name="l03109"></a><span class="lineno"> 3109</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03110"></a><span class="lineno"> 3110</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation,</div>
+<div class="line"><a name="l03111"></a><span class="lineno"> 3111</span>&#160;    <a class="code" href="struct_vma_allocation_info.html">VmaAllocationInfo</a>* pAllocationInfo);</div>
+<div class="line"><a name="l03112"></a><span class="lineno"> 3112</span>&#160; </div>
+<div class="line"><a name="l03127"></a><span class="lineno"> 3127</span>&#160;VMA_CALL_PRE VkBool32 VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a43d8ba9673c846f049089a5029d5c73a">vmaTouchAllocation</a>(</div>
+<div class="line"><a name="l03128"></a><span class="lineno"> 3128</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03129"></a><span class="lineno"> 3129</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation);</div>
+<div class="line"><a name="l03130"></a><span class="lineno"> 3130</span>&#160; </div>
+<div class="line"><a name="l03144"></a><span class="lineno"> 3144</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#af9147d31ffc11d62fc187bde283ed14f">vmaSetAllocationUserData</a>(</div>
+<div class="line"><a name="l03145"></a><span class="lineno"> 3145</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03146"></a><span class="lineno"> 3146</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation,</div>
+<div class="line"><a name="l03147"></a><span class="lineno"> 3147</span>&#160;    <span class="keywordtype">void</span>* pUserData);</div>
+<div class="line"><a name="l03148"></a><span class="lineno"> 3148</span>&#160; </div>
+<div class="line"><a name="l03159"></a><span class="lineno"> 3159</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ae5c9657d9e94756269145b01c05d16f1">vmaCreateLostAllocation</a>(</div>
+<div class="line"><a name="l03160"></a><span class="lineno"> 3160</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03161"></a><span class="lineno"> 3161</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a>* pAllocation);</div>
+<div class="line"><a name="l03162"></a><span class="lineno"> 3162</span>&#160; </div>
+<div class="line"><a name="l03201"></a><span class="lineno"> 3201</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ad5bd1243512d099706de88168992f069">vmaMapMemory</a>(</div>
+<div class="line"><a name="l03202"></a><span class="lineno"> 3202</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03203"></a><span class="lineno"> 3203</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation,</div>
+<div class="line"><a name="l03204"></a><span class="lineno"> 3204</span>&#160;    <span class="keywordtype">void</span>** ppData);</div>
+<div class="line"><a name="l03205"></a><span class="lineno"> 3205</span>&#160; </div>
+<div class="line"><a name="l03214"></a><span class="lineno"> 3214</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a9bc268595cb33f6ec4d519cfce81ff45">vmaUnmapMemory</a>(</div>
+<div class="line"><a name="l03215"></a><span class="lineno"> 3215</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03216"></a><span class="lineno"> 3216</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation);</div>
+<div class="line"><a name="l03217"></a><span class="lineno"> 3217</span>&#160; </div>
+<div class="line"><a name="l03236"></a><span class="lineno"> 3236</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#abc34ee6f021f459aff885f3758c435de">vmaFlushAllocation</a>(<a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator, <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation, VkDeviceSize offset, VkDeviceSize size);</div>
+<div class="line"><a name="l03237"></a><span class="lineno"> 3237</span>&#160; </div>
+<div class="line"><a name="l03256"></a><span class="lineno"> 3256</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a0d0eb0c1102268fa9a476d12ecbe4006">vmaInvalidateAllocation</a>(<a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator, <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation, VkDeviceSize offset, VkDeviceSize size);</div>
+<div class="line"><a name="l03257"></a><span class="lineno"> 3257</span>&#160; </div>
+<div class="line"><a name="l03274"></a><span class="lineno"> 3274</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a49329a7f030dafcf82f7b73334c22e98">vmaCheckCorruption</a>(<a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator, uint32_t memoryTypeBits);</div>
+<div class="line"><a name="l03275"></a><span class="lineno"> 3275</span>&#160; </div>
+<div class="line"><a name="l03282"></a><span class="lineno"> 3282</span>&#160;VK_DEFINE_HANDLE(<a class="code" href="struct_vma_defragmentation_context.html">VmaDefragmentationContext</a>)</div>
+<div class="line"><a name="l03283"></a><span class="lineno"> 3283</span>&#160; </div>
+<div class="line"><a name="l03284"></a><span class="lineno"> 3284</span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="vk__mem__alloc_8h.html#a6552a65b71d16f378c6994b3ceaef50c">VmaDefragmentationFlagBits</a> {</div>
+<div class="line"><a name="l03286"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a6552a65b71d16f378c6994b3ceaef50ca31af49446af2459284a568ce2f3fdd33"> 3286</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a6552a65b71d16f378c6994b3ceaef50ca31af49446af2459284a568ce2f3fdd33">VMA_DEFRAGMENTATION_FLAG_INCREMENTAL</a> = 0x1,</div>
+<div class="line"><a name="l03287"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a6552a65b71d16f378c6994b3ceaef50cab87ec33154803bfeb5ac2b379f1d6a97"> 3287</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a6552a65b71d16f378c6994b3ceaef50cab87ec33154803bfeb5ac2b379f1d6a97">VMA_DEFRAGMENTATION_FLAG_BITS_MAX_ENUM</a> = 0x7FFFFFFF</div>
+<div class="line"><a name="l03288"></a><span class="lineno"> 3288</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a6552a65b71d16f378c6994b3ceaef50c">VmaDefragmentationFlagBits</a>;</div>
+<div class="line"><a name="l03289"></a><span class="lineno"><a class="line" href="vk__mem__alloc_8h.html#a88a77cef37e5d3c4fc9eb328885d048d"> 3289</a></span>&#160;<span class="keyword">typedef</span> VkFlags <a class="code" href="vk__mem__alloc_8h.html#a88a77cef37e5d3c4fc9eb328885d048d">VmaDefragmentationFlags</a>;</div>
+<div class="line"><a name="l03290"></a><span class="lineno"> 3290</span>&#160; </div>
+<div class="line"><a name="l03295"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html"> 3295</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_defragmentation_info2.html">VmaDefragmentationInfo2</a> {</div>
+<div class="line"><a name="l03298"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#a53e844ee5633e229cf6daf14b2d9fff9"> 3298</a></span>&#160;    <a class="code" href="vk__mem__alloc_8h.html#a88a77cef37e5d3c4fc9eb328885d048d">VmaDefragmentationFlags</a> <a class="code" href="struct_vma_defragmentation_info2.html#a53e844ee5633e229cf6daf14b2d9fff9">flags</a>;</div>
+<div class="line"><a name="l03301"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#a3cf86ab32c1da779b4923d301a3056ba"> 3301</a></span>&#160;    uint32_t <a class="code" href="struct_vma_defragmentation_info2.html#a3cf86ab32c1da779b4923d301a3056ba">allocationCount</a>;</div>
+<div class="line"><a name="l03310"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#a8943f8d65969ce8e2189a1cdf3205e96"> 3310</a></span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a>* <a class="code" href="struct_vma_defragmentation_info2.html#a8943f8d65969ce8e2189a1cdf3205e96">pAllocations</a>;</div>
+<div class="line"><a name="l03316"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#a76d51a644dc7f5405d0cdd0025ecd0cc"> 3316</a></span>&#160;    VkBool32* <a class="code" href="struct_vma_defragmentation_info2.html#a76d51a644dc7f5405d0cdd0025ecd0cc">pAllocationsChanged</a>;</div>
+<div class="line"><a name="l03319"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#a7e70aa2a1081d849dcc7829b19d3ec9d"> 3319</a></span>&#160;    uint32_t <a class="code" href="struct_vma_defragmentation_info2.html#a7e70aa2a1081d849dcc7829b19d3ec9d">poolCount</a>;</div>
+<div class="line"><a name="l03335"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#a0b3effd57f3fcdeb2ed62210b4ef20e1"> 3335</a></span>&#160;    <a class="code" href="struct_vma_pool.html">VmaPool</a>* <a class="code" href="struct_vma_defragmentation_info2.html#a0b3effd57f3fcdeb2ed62210b4ef20e1">pPools</a>;</div>
+<div class="line"><a name="l03340"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#af78e1ea40c22d85137b65f6b384a4d0a"> 3340</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_defragmentation_info2.html#af78e1ea40c22d85137b65f6b384a4d0a">maxCpuBytesToMove</a>;</div>
+<div class="line"><a name="l03345"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#a94c2c7223d52878445a8cccce396b671"> 3345</a></span>&#160;    uint32_t <a class="code" href="struct_vma_defragmentation_info2.html#a94c2c7223d52878445a8cccce396b671">maxCpuAllocationsToMove</a>;</div>
+<div class="line"><a name="l03350"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#a4ddbc898d0afe1518f863a3763628f08"> 3350</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_defragmentation_info2.html#a4ddbc898d0afe1518f863a3763628f08">maxGpuBytesToMove</a>;</div>
+<div class="line"><a name="l03355"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#a40d53d33e71ba0b66f844ed63c05a3f6"> 3355</a></span>&#160;    uint32_t <a class="code" href="struct_vma_defragmentation_info2.html#a40d53d33e71ba0b66f844ed63c05a3f6">maxGpuAllocationsToMove</a>;</div>
+<div class="line"><a name="l03364"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info2.html#a7f71f39590c5316771493d2333f9c1bd"> 3364</a></span>&#160;    VkCommandBuffer <a class="code" href="struct_vma_defragmentation_info2.html#a7f71f39590c5316771493d2333f9c1bd">commandBuffer</a>;</div>
+<div class="line"><a name="l03365"></a><span class="lineno"> 3365</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#ad6daeffaa670ce6d11a203a6224c9937">VmaDefragmentationInfo2</a>;</div>
+<div class="line"><a name="l03366"></a><span class="lineno"> 3366</span>&#160; </div>
+<div class="line"><a name="l03367"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_pass_move_info.html"> 3367</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_defragmentation_pass_move_info.html">VmaDefragmentationPassMoveInfo</a> {</div>
+<div class="line"><a name="l03368"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_pass_move_info.html#ae885c861c2dd8d622e6c19e281d035cc"> 3368</a></span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> <a class="code" href="struct_vma_defragmentation_pass_move_info.html#ae885c861c2dd8d622e6c19e281d035cc">allocation</a>;</div>
+<div class="line"><a name="l03369"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_pass_move_info.html#a06eb0c8690aa0d3478a036753492e769"> 3369</a></span>&#160;    VkDeviceMemory <a class="code" href="struct_vma_defragmentation_pass_move_info.html#a06eb0c8690aa0d3478a036753492e769">memory</a>;</div>
+<div class="line"><a name="l03370"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_pass_move_info.html#a8ab4508bc03625b0653c880576be96c6"> 3370</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_defragmentation_pass_move_info.html#a8ab4508bc03625b0653c880576be96c6">offset</a>;</div>
+<div class="line"><a name="l03371"></a><span class="lineno"> 3371</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#ad6799e8e2b1527abfc84d33bc44aeaf5">VmaDefragmentationPassMoveInfo</a>;</div>
+<div class="line"><a name="l03372"></a><span class="lineno"> 3372</span>&#160; </div>
+<div class="line"><a name="l03377"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_pass_info.html"> 3377</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_defragmentation_pass_info.html">VmaDefragmentationPassInfo</a> {</div>
+<div class="line"><a name="l03378"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_pass_info.html#ac1086e657ba995f8d1f4e49b83dcfb6c"> 3378</a></span>&#160;    uint32_t <a class="code" href="struct_vma_defragmentation_pass_info.html#ac1086e657ba995f8d1f4e49b83dcfb6c">moveCount</a>;</div>
+<div class="line"><a name="l03379"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_pass_info.html#acbd42d4a3357999da130a95cd99a3792"> 3379</a></span>&#160;    <a class="code" href="struct_vma_defragmentation_pass_move_info.html">VmaDefragmentationPassMoveInfo</a>* <a class="code" href="struct_vma_defragmentation_pass_info.html#acbd42d4a3357999da130a95cd99a3792">pMoves</a>;</div>
+<div class="line"><a name="l03380"></a><span class="lineno"> 3380</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a72aebd522242d56abea67b4f47f6549e">VmaDefragmentationPassInfo</a>;</div>
+<div class="line"><a name="l03381"></a><span class="lineno"> 3381</span>&#160; </div>
+<div class="line"><a name="l03386"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info.html"> 3386</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_defragmentation_info.html">VmaDefragmentationInfo</a> {</div>
+<div class="line"><a name="l03391"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info.html#acb311c940a777270e67e1b81c5ab6a1d"> 3391</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_defragmentation_info.html#acb311c940a777270e67e1b81c5ab6a1d">maxBytesToMove</a>;</div>
+<div class="line"><a name="l03396"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_info.html#aa7c7304e13c71f604c907196c4e28fbc"> 3396</a></span>&#160;    uint32_t <a class="code" href="struct_vma_defragmentation_info.html#aa7c7304e13c71f604c907196c4e28fbc">maxAllocationsToMove</a>;</div>
+<div class="line"><a name="l03397"></a><span class="lineno"> 3397</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#a2bf47f96bf92bed2a49461bd9af3acfa">VmaDefragmentationInfo</a>;</div>
+<div class="line"><a name="l03398"></a><span class="lineno"> 3398</span>&#160; </div>
+<div class="line"><a name="l03400"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_stats.html"> 3400</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct_vma_defragmentation_stats.html">VmaDefragmentationStats</a> {</div>
+<div class="line"><a name="l03402"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_stats.html#a36f9d5df2a10ba2a36b16e126d60572d"> 3402</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_defragmentation_stats.html#a36f9d5df2a10ba2a36b16e126d60572d">bytesMoved</a>;</div>
+<div class="line"><a name="l03404"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_stats.html#ab0cb9ac0dbc106c77e384ea676422f28"> 3404</a></span>&#160;    VkDeviceSize <a class="code" href="struct_vma_defragmentation_stats.html#ab0cb9ac0dbc106c77e384ea676422f28">bytesFreed</a>;</div>
+<div class="line"><a name="l03406"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_stats.html#aefeabf130022008eadd75999478af3f9"> 3406</a></span>&#160;    uint32_t <a class="code" href="struct_vma_defragmentation_stats.html#aefeabf130022008eadd75999478af3f9">allocationsMoved</a>;</div>
+<div class="line"><a name="l03408"></a><span class="lineno"><a class="line" href="struct_vma_defragmentation_stats.html#a0113f1877904a5d1ee8f409216ff276b"> 3408</a></span>&#160;    uint32_t <a class="code" href="struct_vma_defragmentation_stats.html#a0113f1877904a5d1ee8f409216ff276b">deviceMemoryBlocksFreed</a>;</div>
+<div class="line"><a name="l03409"></a><span class="lineno"> 3409</span>&#160;} <a class="code" href="vk__mem__alloc_8h.html#ad94034192259c2e34a4d1c5e27810403">VmaDefragmentationStats</a>;</div>
+<div class="line"><a name="l03410"></a><span class="lineno"> 3410</span>&#160; </div>
+<div class="line"><a name="l03440"></a><span class="lineno"> 3440</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a36ba776fd7fd5cb1e9359fdc0d8e6e8a">vmaDefragmentationBegin</a>(</div>
+<div class="line"><a name="l03441"></a><span class="lineno"> 3441</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03442"></a><span class="lineno"> 3442</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_defragmentation_info2.html">VmaDefragmentationInfo2</a>* pInfo,</div>
+<div class="line"><a name="l03443"></a><span class="lineno"> 3443</span>&#160;    <a class="code" href="struct_vma_defragmentation_stats.html">VmaDefragmentationStats</a>* pStats,</div>
+<div class="line"><a name="l03444"></a><span class="lineno"> 3444</span>&#160;    <a class="code" href="struct_vma_defragmentation_context.html">VmaDefragmentationContext</a> *pContext);</div>
+<div class="line"><a name="l03445"></a><span class="lineno"> 3445</span>&#160; </div>
+<div class="line"><a name="l03451"></a><span class="lineno"> 3451</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a8774e20e91e245aae959ba63efa15dd2">vmaDefragmentationEnd</a>(</div>
+<div class="line"><a name="l03452"></a><span class="lineno"> 3452</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03453"></a><span class="lineno"> 3453</span>&#160;    <a class="code" href="struct_vma_defragmentation_context.html">VmaDefragmentationContext</a> context);</div>
+<div class="line"><a name="l03454"></a><span class="lineno"> 3454</span>&#160; </div>
+<div class="line"><a name="l03455"></a><span class="lineno"> 3455</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ac0f01545b6262f7d4d128fc8f8e5c77b">vmaBeginDefragmentationPass</a>(</div>
+<div class="line"><a name="l03456"></a><span class="lineno"> 3456</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03457"></a><span class="lineno"> 3457</span>&#160;    <a class="code" href="struct_vma_defragmentation_context.html">VmaDefragmentationContext</a> context,</div>
+<div class="line"><a name="l03458"></a><span class="lineno"> 3458</span>&#160;    <a class="code" href="struct_vma_defragmentation_pass_info.html">VmaDefragmentationPassInfo</a>* pInfo</div>
+<div class="line"><a name="l03459"></a><span class="lineno"> 3459</span>&#160;);</div>
+<div class="line"><a name="l03460"></a><span class="lineno"> 3460</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a1b9ffa538bed905af55c747cc48963bd">vmaEndDefragmentationPass</a>(</div>
+<div class="line"><a name="l03461"></a><span class="lineno"> 3461</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03462"></a><span class="lineno"> 3462</span>&#160;    <a class="code" href="struct_vma_defragmentation_context.html">VmaDefragmentationContext</a> context</div>
+<div class="line"><a name="l03463"></a><span class="lineno"> 3463</span>&#160;);</div>
 <div class="line"><a name="l03464"></a><span class="lineno"> 3464</span>&#160; </div>
-<div class="line"><a name="l03465"></a><span class="lineno"> 3465</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ac0f01545b6262f7d4d128fc8f8e5c77b">vmaBeginDefragmentationPass</a>(</div>
-<div class="line"><a name="l03466"></a><span class="lineno"> 3466</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03467"></a><span class="lineno"> 3467</span>&#160;    <a class="code" href="struct_vma_defragmentation_context.html">VmaDefragmentationContext</a> context,</div>
-<div class="line"><a name="l03468"></a><span class="lineno"> 3468</span>&#160;    <a class="code" href="struct_vma_defragmentation_pass_info.html">VmaDefragmentationPassInfo</a>* pInfo</div>
-<div class="line"><a name="l03469"></a><span class="lineno"> 3469</span>&#160;);</div>
-<div class="line"><a name="l03470"></a><span class="lineno"> 3470</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a1b9ffa538bed905af55c747cc48963bd">vmaEndDefragmentationPass</a>(</div>
-<div class="line"><a name="l03471"></a><span class="lineno"> 3471</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03472"></a><span class="lineno"> 3472</span>&#160;    <a class="code" href="struct_vma_defragmentation_context.html">VmaDefragmentationContext</a> context</div>
-<div class="line"><a name="l03473"></a><span class="lineno"> 3473</span>&#160;);</div>
-<div class="line"><a name="l03474"></a><span class="lineno"> 3474</span>&#160; </div>
-<div class="line"><a name="l03515"></a><span class="lineno"> 3515</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a6aced90fcc7b39882b6654a740a0b9bb">vmaDefragment</a>(</div>
-<div class="line"><a name="l03516"></a><span class="lineno"> 3516</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03517"></a><span class="lineno"> 3517</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a>* pAllocations,</div>
-<div class="line"><a name="l03518"></a><span class="lineno"> 3518</span>&#160;    <span class="keywordtype">size_t</span> allocationCount,</div>
-<div class="line"><a name="l03519"></a><span class="lineno"> 3519</span>&#160;    VkBool32* pAllocationsChanged,</div>
-<div class="line"><a name="l03520"></a><span class="lineno"> 3520</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_defragmentation_info.html">VmaDefragmentationInfo</a> *pDefragmentationInfo,</div>
-<div class="line"><a name="l03521"></a><span class="lineno"> 3521</span>&#160;    <a class="code" href="struct_vma_defragmentation_stats.html">VmaDefragmentationStats</a>* pDefragmentationStats);</div>
-<div class="line"><a name="l03522"></a><span class="lineno"> 3522</span>&#160; </div>
-<div class="line"><a name="l03535"></a><span class="lineno"> 3535</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a6b0929b914b60cf2d45cac4bf3547470">vmaBindBufferMemory</a>(</div>
-<div class="line"><a name="l03536"></a><span class="lineno"> 3536</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03537"></a><span class="lineno"> 3537</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation,</div>
-<div class="line"><a name="l03538"></a><span class="lineno"> 3538</span>&#160;    VkBuffer buffer);</div>
-<div class="line"><a name="l03539"></a><span class="lineno"> 3539</span>&#160; </div>
-<div class="line"><a name="l03550"></a><span class="lineno"> 3550</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a927c944f45e0f2941182abb6f608e64a">vmaBindBufferMemory2</a>(</div>
-<div class="line"><a name="l03551"></a><span class="lineno"> 3551</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03552"></a><span class="lineno"> 3552</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation,</div>
-<div class="line"><a name="l03553"></a><span class="lineno"> 3553</span>&#160;    VkDeviceSize allocationLocalOffset,</div>
-<div class="line"><a name="l03554"></a><span class="lineno"> 3554</span>&#160;    VkBuffer buffer,</div>
-<div class="line"><a name="l03555"></a><span class="lineno"> 3555</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">void</span>* pNext);</div>
-<div class="line"><a name="l03556"></a><span class="lineno"> 3556</span>&#160; </div>
-<div class="line"><a name="l03569"></a><span class="lineno"> 3569</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a3d3ca45799923aa5d138e9e5f9eb2da5">vmaBindImageMemory</a>(</div>
-<div class="line"><a name="l03570"></a><span class="lineno"> 3570</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03571"></a><span class="lineno"> 3571</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation,</div>
-<div class="line"><a name="l03572"></a><span class="lineno"> 3572</span>&#160;    VkImage image);</div>
-<div class="line"><a name="l03573"></a><span class="lineno"> 3573</span>&#160; </div>
-<div class="line"><a name="l03584"></a><span class="lineno"> 3584</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#aa8251ee81b0045a443e35b8e8aa021bc">vmaBindImageMemory2</a>(</div>
-<div class="line"><a name="l03585"></a><span class="lineno"> 3585</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03586"></a><span class="lineno"> 3586</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation,</div>
-<div class="line"><a name="l03587"></a><span class="lineno"> 3587</span>&#160;    VkDeviceSize allocationLocalOffset,</div>
-<div class="line"><a name="l03588"></a><span class="lineno"> 3588</span>&#160;    VkImage image,</div>
-<div class="line"><a name="l03589"></a><span class="lineno"> 3589</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">void</span>* pNext);</div>
-<div class="line"><a name="l03590"></a><span class="lineno"> 3590</span>&#160; </div>
-<div class="line"><a name="l03617"></a><span class="lineno"> 3617</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ac72ee55598617e8eecca384e746bab51">vmaCreateBuffer</a>(</div>
-<div class="line"><a name="l03618"></a><span class="lineno"> 3618</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03619"></a><span class="lineno"> 3619</span>&#160;    <span class="keyword">const</span> VkBufferCreateInfo* pBufferCreateInfo,</div>
-<div class="line"><a name="l03620"></a><span class="lineno"> 3620</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a>* pAllocationCreateInfo,</div>
-<div class="line"><a name="l03621"></a><span class="lineno"> 3621</span>&#160;    VkBuffer* pBuffer,</div>
-<div class="line"><a name="l03622"></a><span class="lineno"> 3622</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a>* pAllocation,</div>
-<div class="line"><a name="l03623"></a><span class="lineno"> 3623</span>&#160;    <a class="code" href="struct_vma_allocation_info.html">VmaAllocationInfo</a>* pAllocationInfo);</div>
-<div class="line"><a name="l03624"></a><span class="lineno"> 3624</span>&#160; </div>
-<div class="line"><a name="l03636"></a><span class="lineno"> 3636</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a0d9f4e4ba5bf9aab1f1c746387753d77">vmaDestroyBuffer</a>(</div>
-<div class="line"><a name="l03637"></a><span class="lineno"> 3637</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03638"></a><span class="lineno"> 3638</span>&#160;    VkBuffer buffer,</div>
-<div class="line"><a name="l03639"></a><span class="lineno"> 3639</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation);</div>
-<div class="line"><a name="l03640"></a><span class="lineno"> 3640</span>&#160; </div>
-<div class="line"><a name="l03642"></a><span class="lineno"> 3642</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a02a94f25679275851a53e82eacbcfc73">vmaCreateImage</a>(</div>
-<div class="line"><a name="l03643"></a><span class="lineno"> 3643</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03644"></a><span class="lineno"> 3644</span>&#160;    <span class="keyword">const</span> VkImageCreateInfo* pImageCreateInfo,</div>
-<div class="line"><a name="l03645"></a><span class="lineno"> 3645</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a>* pAllocationCreateInfo,</div>
-<div class="line"><a name="l03646"></a><span class="lineno"> 3646</span>&#160;    VkImage* pImage,</div>
-<div class="line"><a name="l03647"></a><span class="lineno"> 3647</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a>* pAllocation,</div>
-<div class="line"><a name="l03648"></a><span class="lineno"> 3648</span>&#160;    <a class="code" href="struct_vma_allocation_info.html">VmaAllocationInfo</a>* pAllocationInfo);</div>
-<div class="line"><a name="l03649"></a><span class="lineno"> 3649</span>&#160; </div>
-<div class="line"><a name="l03661"></a><span class="lineno"> 3661</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ae50d2cb3b4a3bfd4dd40987234e50e7e">vmaDestroyImage</a>(</div>
-<div class="line"><a name="l03662"></a><span class="lineno"> 3662</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
-<div class="line"><a name="l03663"></a><span class="lineno"> 3663</span>&#160;    VkImage image,</div>
-<div class="line"><a name="l03664"></a><span class="lineno"> 3664</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation);</div>
-<div class="line"><a name="l03665"></a><span class="lineno"> 3665</span>&#160; </div>
-<div class="line"><a name="l03666"></a><span class="lineno"> 3666</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l03667"></a><span class="lineno"> 3667</span>&#160;}</div>
-<div class="line"><a name="l03668"></a><span class="lineno"> 3668</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03505"></a><span class="lineno"> 3505</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a6aced90fcc7b39882b6654a740a0b9bb">vmaDefragment</a>(</div>
+<div class="line"><a name="l03506"></a><span class="lineno"> 3506</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03507"></a><span class="lineno"> 3507</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a>* pAllocations,</div>
+<div class="line"><a name="l03508"></a><span class="lineno"> 3508</span>&#160;    <span class="keywordtype">size_t</span> allocationCount,</div>
+<div class="line"><a name="l03509"></a><span class="lineno"> 3509</span>&#160;    VkBool32* pAllocationsChanged,</div>
+<div class="line"><a name="l03510"></a><span class="lineno"> 3510</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_defragmentation_info.html">VmaDefragmentationInfo</a> *pDefragmentationInfo,</div>
+<div class="line"><a name="l03511"></a><span class="lineno"> 3511</span>&#160;    <a class="code" href="struct_vma_defragmentation_stats.html">VmaDefragmentationStats</a>* pDefragmentationStats);</div>
+<div class="line"><a name="l03512"></a><span class="lineno"> 3512</span>&#160; </div>
+<div class="line"><a name="l03525"></a><span class="lineno"> 3525</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a6b0929b914b60cf2d45cac4bf3547470">vmaBindBufferMemory</a>(</div>
+<div class="line"><a name="l03526"></a><span class="lineno"> 3526</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03527"></a><span class="lineno"> 3527</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation,</div>
+<div class="line"><a name="l03528"></a><span class="lineno"> 3528</span>&#160;    VkBuffer buffer);</div>
+<div class="line"><a name="l03529"></a><span class="lineno"> 3529</span>&#160; </div>
+<div class="line"><a name="l03540"></a><span class="lineno"> 3540</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a927c944f45e0f2941182abb6f608e64a">vmaBindBufferMemory2</a>(</div>
+<div class="line"><a name="l03541"></a><span class="lineno"> 3541</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03542"></a><span class="lineno"> 3542</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation,</div>
+<div class="line"><a name="l03543"></a><span class="lineno"> 3543</span>&#160;    VkDeviceSize allocationLocalOffset,</div>
+<div class="line"><a name="l03544"></a><span class="lineno"> 3544</span>&#160;    VkBuffer buffer,</div>
+<div class="line"><a name="l03545"></a><span class="lineno"> 3545</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">void</span>* pNext);</div>
+<div class="line"><a name="l03546"></a><span class="lineno"> 3546</span>&#160; </div>
+<div class="line"><a name="l03559"></a><span class="lineno"> 3559</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a3d3ca45799923aa5d138e9e5f9eb2da5">vmaBindImageMemory</a>(</div>
+<div class="line"><a name="l03560"></a><span class="lineno"> 3560</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03561"></a><span class="lineno"> 3561</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation,</div>
+<div class="line"><a name="l03562"></a><span class="lineno"> 3562</span>&#160;    VkImage image);</div>
+<div class="line"><a name="l03563"></a><span class="lineno"> 3563</span>&#160; </div>
+<div class="line"><a name="l03574"></a><span class="lineno"> 3574</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#aa8251ee81b0045a443e35b8e8aa021bc">vmaBindImageMemory2</a>(</div>
+<div class="line"><a name="l03575"></a><span class="lineno"> 3575</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03576"></a><span class="lineno"> 3576</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation,</div>
+<div class="line"><a name="l03577"></a><span class="lineno"> 3577</span>&#160;    VkDeviceSize allocationLocalOffset,</div>
+<div class="line"><a name="l03578"></a><span class="lineno"> 3578</span>&#160;    VkImage image,</div>
+<div class="line"><a name="l03579"></a><span class="lineno"> 3579</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">void</span>* pNext);</div>
+<div class="line"><a name="l03580"></a><span class="lineno"> 3580</span>&#160; </div>
+<div class="line"><a name="l03607"></a><span class="lineno"> 3607</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ac72ee55598617e8eecca384e746bab51">vmaCreateBuffer</a>(</div>
+<div class="line"><a name="l03608"></a><span class="lineno"> 3608</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03609"></a><span class="lineno"> 3609</span>&#160;    <span class="keyword">const</span> VkBufferCreateInfo* pBufferCreateInfo,</div>
+<div class="line"><a name="l03610"></a><span class="lineno"> 3610</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a>* pAllocationCreateInfo,</div>
+<div class="line"><a name="l03611"></a><span class="lineno"> 3611</span>&#160;    VkBuffer* pBuffer,</div>
+<div class="line"><a name="l03612"></a><span class="lineno"> 3612</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a>* pAllocation,</div>
+<div class="line"><a name="l03613"></a><span class="lineno"> 3613</span>&#160;    <a class="code" href="struct_vma_allocation_info.html">VmaAllocationInfo</a>* pAllocationInfo);</div>
+<div class="line"><a name="l03614"></a><span class="lineno"> 3614</span>&#160; </div>
+<div class="line"><a name="l03626"></a><span class="lineno"> 3626</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a0d9f4e4ba5bf9aab1f1c746387753d77">vmaDestroyBuffer</a>(</div>
+<div class="line"><a name="l03627"></a><span class="lineno"> 3627</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03628"></a><span class="lineno"> 3628</span>&#160;    VkBuffer buffer,</div>
+<div class="line"><a name="l03629"></a><span class="lineno"> 3629</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation);</div>
+<div class="line"><a name="l03630"></a><span class="lineno"> 3630</span>&#160; </div>
+<div class="line"><a name="l03632"></a><span class="lineno"> 3632</span>&#160;VMA_CALL_PRE VkResult VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#a02a94f25679275851a53e82eacbcfc73">vmaCreateImage</a>(</div>
+<div class="line"><a name="l03633"></a><span class="lineno"> 3633</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03634"></a><span class="lineno"> 3634</span>&#160;    <span class="keyword">const</span> VkImageCreateInfo* pImageCreateInfo,</div>
+<div class="line"><a name="l03635"></a><span class="lineno"> 3635</span>&#160;    <span class="keyword">const</span> <a class="code" href="struct_vma_allocation_create_info.html">VmaAllocationCreateInfo</a>* pAllocationCreateInfo,</div>
+<div class="line"><a name="l03636"></a><span class="lineno"> 3636</span>&#160;    VkImage* pImage,</div>
+<div class="line"><a name="l03637"></a><span class="lineno"> 3637</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a>* pAllocation,</div>
+<div class="line"><a name="l03638"></a><span class="lineno"> 3638</span>&#160;    <a class="code" href="struct_vma_allocation_info.html">VmaAllocationInfo</a>* pAllocationInfo);</div>
+<div class="line"><a name="l03639"></a><span class="lineno"> 3639</span>&#160; </div>
+<div class="line"><a name="l03651"></a><span class="lineno"> 3651</span>&#160;VMA_CALL_PRE <span class="keywordtype">void</span> VMA_CALL_POST <a class="code" href="vk__mem__alloc_8h.html#ae50d2cb3b4a3bfd4dd40987234e50e7e">vmaDestroyImage</a>(</div>
+<div class="line"><a name="l03652"></a><span class="lineno"> 3652</span>&#160;    <a class="code" href="struct_vma_allocator.html">VmaAllocator</a> allocator,</div>
+<div class="line"><a name="l03653"></a><span class="lineno"> 3653</span>&#160;    VkImage image,</div>
+<div class="line"><a name="l03654"></a><span class="lineno"> 3654</span>&#160;    <a class="code" href="struct_vma_allocation.html">VmaAllocation</a> allocation);</div>
+<div class="line"><a name="l03655"></a><span class="lineno"> 3655</span>&#160; </div>
+<div class="line"><a name="l03656"></a><span class="lineno"> 3656</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l03657"></a><span class="lineno"> 3657</span>&#160;}</div>
+<div class="line"><a name="l03658"></a><span class="lineno"> 3658</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03659"></a><span class="lineno"> 3659</span>&#160; </div>
+<div class="line"><a name="l03660"></a><span class="lineno"> 3660</span>&#160;<span class="preprocessor">#endif // AMD_VULKAN_MEMORY_ALLOCATOR_H</span></div>
+<div class="line"><a name="l03661"></a><span class="lineno"> 3661</span>&#160; </div>
+<div class="line"><a name="l03662"></a><span class="lineno"> 3662</span>&#160;<span class="comment">// For Visual Studio IntelliSense.</span></div>
+<div class="line"><a name="l03663"></a><span class="lineno"> 3663</span>&#160;<span class="preprocessor">#if defined(__cplusplus) &amp;&amp; defined(__INTELLISENSE__)</span></div>
+<div class="line"><a name="l03664"></a><span class="lineno"> 3664</span>&#160;<span class="preprocessor">#define VMA_IMPLEMENTATION</span></div>
+<div class="line"><a name="l03665"></a><span class="lineno"> 3665</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03666"></a><span class="lineno"> 3666</span>&#160; </div>
+<div class="line"><a name="l03667"></a><span class="lineno"> 3667</span>&#160;<span class="preprocessor">#ifdef VMA_IMPLEMENTATION</span></div>
+<div class="line"><a name="l03668"></a><span class="lineno"> 3668</span>&#160;<span class="preprocessor">#undef VMA_IMPLEMENTATION</span></div>
 <div class="line"><a name="l03669"></a><span class="lineno"> 3669</span>&#160; </div>
-<div class="line"><a name="l03670"></a><span class="lineno"> 3670</span>&#160;<span class="preprocessor">#endif // AMD_VULKAN_MEMORY_ALLOCATOR_H</span></div>
-<div class="line"><a name="l03671"></a><span class="lineno"> 3671</span>&#160; </div>
-<div class="line"><a name="l03672"></a><span class="lineno"> 3672</span>&#160;<span class="comment">// For Visual Studio IntelliSense.</span></div>
-<div class="line"><a name="l03673"></a><span class="lineno"> 3673</span>&#160;<span class="preprocessor">#if defined(__cplusplus) &amp;&amp; defined(__INTELLISENSE__)</span></div>
-<div class="line"><a name="l03674"></a><span class="lineno"> 3674</span>&#160;<span class="preprocessor">#define VMA_IMPLEMENTATION</span></div>
-<div class="line"><a name="l03675"></a><span class="lineno"> 3675</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03676"></a><span class="lineno"> 3676</span>&#160; </div>
-<div class="line"><a name="l03677"></a><span class="lineno"> 3677</span>&#160;<span class="preprocessor">#ifdef VMA_IMPLEMENTATION</span></div>
-<div class="line"><a name="l03678"></a><span class="lineno"> 3678</span>&#160;<span class="preprocessor">#undef VMA_IMPLEMENTATION</span></div>
-<div class="line"><a name="l03679"></a><span class="lineno"> 3679</span>&#160; </div>
-<div class="line"><a name="l03680"></a><span class="lineno"> 3680</span>&#160;<span class="preprocessor">#include &lt;cstdint&gt;</span></div>
-<div class="line"><a name="l03681"></a><span class="lineno"> 3681</span>&#160;<span class="preprocessor">#include &lt;cstdlib&gt;</span></div>
-<div class="line"><a name="l03682"></a><span class="lineno"> 3682</span>&#160;<span class="preprocessor">#include &lt;cstring&gt;</span></div>
-<div class="line"><a name="l03683"></a><span class="lineno"> 3683</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div>
+<div class="line"><a name="l03670"></a><span class="lineno"> 3670</span>&#160;<span class="preprocessor">#include &lt;cstdint&gt;</span></div>
+<div class="line"><a name="l03671"></a><span class="lineno"> 3671</span>&#160;<span class="preprocessor">#include &lt;cstdlib&gt;</span></div>
+<div class="line"><a name="l03672"></a><span class="lineno"> 3672</span>&#160;<span class="preprocessor">#include &lt;cstring&gt;</span></div>
+<div class="line"><a name="l03673"></a><span class="lineno"> 3673</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div>
+<div class="line"><a name="l03674"></a><span class="lineno"> 3674</span>&#160; </div>
+<div class="line"><a name="l03675"></a><span class="lineno"> 3675</span>&#160;<span class="comment">/*******************************************************************************</span></div>
+<div class="line"><a name="l03676"></a><span class="lineno"> 3676</span>&#160;<span class="comment">CONFIGURATION SECTION</span></div>
+<div class="line"><a name="l03677"></a><span class="lineno"> 3677</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l03678"></a><span class="lineno"> 3678</span>&#160;<span class="comment">Define some of these macros before each #include of this header or change them</span></div>
+<div class="line"><a name="l03679"></a><span class="lineno"> 3679</span>&#160;<span class="comment">here if you need other then default behavior depending on your environment.</span></div>
+<div class="line"><a name="l03680"></a><span class="lineno"> 3680</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l03681"></a><span class="lineno"> 3681</span>&#160; </div>
+<div class="line"><a name="l03682"></a><span class="lineno"> 3682</span>&#160;<span class="comment">// Define this macro to 1 to make the library use STL containers instead of its own implementation.</span></div>
+<div class="line"><a name="l03683"></a><span class="lineno"> 3683</span>&#160;<span class="comment">//#define VMA_USE_STL_CONTAINERS 1</span></div>
 <div class="line"><a name="l03684"></a><span class="lineno"> 3684</span>&#160; </div>
-<div class="line"><a name="l03685"></a><span class="lineno"> 3685</span>&#160;<span class="comment">/*******************************************************************************</span></div>
-<div class="line"><a name="l03686"></a><span class="lineno"> 3686</span>&#160;<span class="comment">CONFIGURATION SECTION</span></div>
+<div class="line"><a name="l03685"></a><span class="lineno"> 3685</span>&#160;<span class="comment">/* Set this macro to 1 to make the library including and using STL containers:</span></div>
+<div class="line"><a name="l03686"></a><span class="lineno"> 3686</span>&#160;<span class="comment">std::pair, std::vector, std::list, std::unordered_map.</span></div>
 <div class="line"><a name="l03687"></a><span class="lineno"> 3687</span>&#160;<span class="comment"></span> </div>
-<div class="line"><a name="l03688"></a><span class="lineno"> 3688</span>&#160;<span class="comment">Define some of these macros before each #include of this header or change them</span></div>
-<div class="line"><a name="l03689"></a><span class="lineno"> 3689</span>&#160;<span class="comment">here if you need other then default behavior depending on your environment.</span></div>
+<div class="line"><a name="l03688"></a><span class="lineno"> 3688</span>&#160;<span class="comment">Set it to 0 or undefined to make the library using its own implementation of</span></div>
+<div class="line"><a name="l03689"></a><span class="lineno"> 3689</span>&#160;<span class="comment">the containers.</span></div>
 <div class="line"><a name="l03690"></a><span class="lineno"> 3690</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l03691"></a><span class="lineno"> 3691</span>&#160; </div>
-<div class="line"><a name="l03692"></a><span class="lineno"> 3692</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l03693"></a><span class="lineno"> 3693</span>&#160;<span class="comment">Define this macro to 1 to make the library fetch pointers to Vulkan functions</span></div>
-<div class="line"><a name="l03694"></a><span class="lineno"> 3694</span>&#160;<span class="comment">internally, like:</span></div>
-<div class="line"><a name="l03695"></a><span class="lineno"> 3695</span>&#160;<span class="comment"></span> </div>
-<div class="line"><a name="l03696"></a><span class="lineno"> 3696</span>&#160;<span class="comment">    vulkanFunctions. = &amp;vkAllocateMemory;</span></div>
-<div class="line"><a name="l03697"></a><span class="lineno"> 3697</span>&#160;<span class="comment"></span> </div>
-<div class="line"><a name="l03698"></a><span class="lineno"> 3698</span>&#160;<span class="comment">Define to 0 if you are going to provide you own pointers to Vulkan functions via</span></div>
-<div class="line"><a name="l03699"></a><span class="lineno"> 3699</span>&#160;<span class="comment">VmaAllocatorCreateInfo::pVulkanFunctions.</span></div>
-<div class="line"><a name="l03700"></a><span class="lineno"> 3700</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l03701"></a><span class="lineno"> 3701</span>&#160;<span class="preprocessor">#if !defined(VMA_STATIC_VULKAN_FUNCTIONS) &amp;&amp; !defined(VK_NO_PROTOTYPES)</span></div>
-<div class="line"><a name="l03702"></a><span class="lineno"> 3702</span>&#160;<span class="preprocessor">#define VMA_STATIC_VULKAN_FUNCTIONS 1</span></div>
-<div class="line"><a name="l03703"></a><span class="lineno"> 3703</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03704"></a><span class="lineno"> 3704</span>&#160; </div>
-<div class="line"><a name="l03705"></a><span class="lineno"> 3705</span>&#160;<span class="comment">// Define this macro to 1 to make the library use STL containers instead of its own implementation.</span></div>
-<div class="line"><a name="l03706"></a><span class="lineno"> 3706</span>&#160;<span class="comment">//#define VMA_USE_STL_CONTAINERS 1</span></div>
-<div class="line"><a name="l03707"></a><span class="lineno"> 3707</span>&#160; </div>
-<div class="line"><a name="l03708"></a><span class="lineno"> 3708</span>&#160;<span class="comment">/* Set this macro to 1 to make the library including and using STL containers:</span></div>
-<div class="line"><a name="l03709"></a><span class="lineno"> 3709</span>&#160;<span class="comment">std::pair, std::vector, std::list, std::unordered_map.</span></div>
-<div class="line"><a name="l03710"></a><span class="lineno"> 3710</span>&#160;<span class="comment"></span> </div>
-<div class="line"><a name="l03711"></a><span class="lineno"> 3711</span>&#160;<span class="comment">Set it to 0 or undefined to make the library using its own implementation of</span></div>
-<div class="line"><a name="l03712"></a><span class="lineno"> 3712</span>&#160;<span class="comment">the containers.</span></div>
-<div class="line"><a name="l03713"></a><span class="lineno"> 3713</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l03714"></a><span class="lineno"> 3714</span>&#160;<span class="preprocessor">#if VMA_USE_STL_CONTAINERS</span></div>
-<div class="line"><a name="l03715"></a><span class="lineno"> 3715</span>&#160;<span class="preprocessor">   #define VMA_USE_STL_VECTOR 1</span></div>
-<div class="line"><a name="l03716"></a><span class="lineno"> 3716</span>&#160;<span class="preprocessor">   #define VMA_USE_STL_UNORDERED_MAP 1</span></div>
-<div class="line"><a name="l03717"></a><span class="lineno"> 3717</span>&#160;<span class="preprocessor">   #define VMA_USE_STL_LIST 1</span></div>
-<div class="line"><a name="l03718"></a><span class="lineno"> 3718</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03719"></a><span class="lineno"> 3719</span>&#160; </div>
-<div class="line"><a name="l03720"></a><span class="lineno"> 3720</span>&#160;<span class="preprocessor">#ifndef VMA_USE_STL_SHARED_MUTEX</span></div>
-<div class="line"><a name="l03721"></a><span class="lineno"> 3721</span>&#160;    <span class="comment">// Compiler conforms to C++17.</span></div>
-<div class="line"><a name="l03722"></a><span class="lineno"> 3722</span>&#160;<span class="preprocessor">    #if __cplusplus &gt;= 201703L</span></div>
-<div class="line"><a name="l03723"></a><span class="lineno"> 3723</span>&#160;<span class="preprocessor">        #define VMA_USE_STL_SHARED_MUTEX 1</span></div>
-<div class="line"><a name="l03724"></a><span class="lineno"> 3724</span>&#160;    <span class="comment">// Visual studio defines __cplusplus properly only when passed additional parameter: /Zc:__cplusplus</span></div>
-<div class="line"><a name="l03725"></a><span class="lineno"> 3725</span>&#160;    <span class="comment">// Otherwise it&#39;s always 199711L, despite shared_mutex works since Visual Studio 2015 Update 2.</span></div>
-<div class="line"><a name="l03726"></a><span class="lineno"> 3726</span>&#160;    <span class="comment">// See: https://blogs.msdn.microsoft.com/vcblog/2018/04/09/msvc-now-correctly-reports-__cplusplus/</span></div>
-<div class="line"><a name="l03727"></a><span class="lineno"> 3727</span>&#160;<span class="preprocessor">    #elif defined(_MSC_FULL_VER) &amp;&amp; _MSC_FULL_VER &gt;= 190023918 &amp;&amp; __cplusplus == 199711L &amp;&amp; _MSVC_LANG &gt;= 201703L</span></div>
-<div class="line"><a name="l03728"></a><span class="lineno"> 3728</span>&#160;<span class="preprocessor">        #define VMA_USE_STL_SHARED_MUTEX 1</span></div>
-<div class="line"><a name="l03729"></a><span class="lineno"> 3729</span>&#160;<span class="preprocessor">    #else</span></div>
-<div class="line"><a name="l03730"></a><span class="lineno"> 3730</span>&#160;<span class="preprocessor">        #define VMA_USE_STL_SHARED_MUTEX 0</span></div>
-<div class="line"><a name="l03731"></a><span class="lineno"> 3731</span>&#160;<span class="preprocessor">    #endif</span></div>
-<div class="line"><a name="l03732"></a><span class="lineno"> 3732</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03733"></a><span class="lineno"> 3733</span>&#160; </div>
-<div class="line"><a name="l03734"></a><span class="lineno"> 3734</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l03735"></a><span class="lineno"> 3735</span>&#160;<span class="comment">THESE INCLUDES ARE NOT ENABLED BY DEFAULT.</span></div>
-<div class="line"><a name="l03736"></a><span class="lineno"> 3736</span>&#160;<span class="comment">Library has its own container implementation.</span></div>
-<div class="line"><a name="l03737"></a><span class="lineno"> 3737</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l03738"></a><span class="lineno"> 3738</span>&#160;<span class="preprocessor">#if VMA_USE_STL_VECTOR</span></div>
-<div class="line"><a name="l03739"></a><span class="lineno"> 3739</span>&#160;<span class="preprocessor">   #include &lt;vector&gt;</span></div>
-<div class="line"><a name="l03740"></a><span class="lineno"> 3740</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03741"></a><span class="lineno"> 3741</span>&#160; </div>
-<div class="line"><a name="l03742"></a><span class="lineno"> 3742</span>&#160;<span class="preprocessor">#if VMA_USE_STL_UNORDERED_MAP</span></div>
-<div class="line"><a name="l03743"></a><span class="lineno"> 3743</span>&#160;<span class="preprocessor">   #include &lt;unordered_map&gt;</span></div>
-<div class="line"><a name="l03744"></a><span class="lineno"> 3744</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03745"></a><span class="lineno"> 3745</span>&#160; </div>
-<div class="line"><a name="l03746"></a><span class="lineno"> 3746</span>&#160;<span class="preprocessor">#if VMA_USE_STL_LIST</span></div>
-<div class="line"><a name="l03747"></a><span class="lineno"> 3747</span>&#160;<span class="preprocessor">   #include &lt;list&gt;</span></div>
-<div class="line"><a name="l03748"></a><span class="lineno"> 3748</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03691"></a><span class="lineno"> 3691</span>&#160;<span class="preprocessor">#if VMA_USE_STL_CONTAINERS</span></div>
+<div class="line"><a name="l03692"></a><span class="lineno"> 3692</span>&#160;<span class="preprocessor">   #define VMA_USE_STL_VECTOR 1</span></div>
+<div class="line"><a name="l03693"></a><span class="lineno"> 3693</span>&#160;<span class="preprocessor">   #define VMA_USE_STL_UNORDERED_MAP 1</span></div>
+<div class="line"><a name="l03694"></a><span class="lineno"> 3694</span>&#160;<span class="preprocessor">   #define VMA_USE_STL_LIST 1</span></div>
+<div class="line"><a name="l03695"></a><span class="lineno"> 3695</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03696"></a><span class="lineno"> 3696</span>&#160; </div>
+<div class="line"><a name="l03697"></a><span class="lineno"> 3697</span>&#160;<span class="preprocessor">#ifndef VMA_USE_STL_SHARED_MUTEX</span></div>
+<div class="line"><a name="l03698"></a><span class="lineno"> 3698</span>&#160;    <span class="comment">// Compiler conforms to C++17.</span></div>
+<div class="line"><a name="l03699"></a><span class="lineno"> 3699</span>&#160;<span class="preprocessor">    #if __cplusplus &gt;= 201703L</span></div>
+<div class="line"><a name="l03700"></a><span class="lineno"> 3700</span>&#160;<span class="preprocessor">        #define VMA_USE_STL_SHARED_MUTEX 1</span></div>
+<div class="line"><a name="l03701"></a><span class="lineno"> 3701</span>&#160;    <span class="comment">// Visual studio defines __cplusplus properly only when passed additional parameter: /Zc:__cplusplus</span></div>
+<div class="line"><a name="l03702"></a><span class="lineno"> 3702</span>&#160;    <span class="comment">// Otherwise it&#39;s always 199711L, despite shared_mutex works since Visual Studio 2015 Update 2.</span></div>
+<div class="line"><a name="l03703"></a><span class="lineno"> 3703</span>&#160;    <span class="comment">// See: https://blogs.msdn.microsoft.com/vcblog/2018/04/09/msvc-now-correctly-reports-__cplusplus/</span></div>
+<div class="line"><a name="l03704"></a><span class="lineno"> 3704</span>&#160;<span class="preprocessor">    #elif defined(_MSC_FULL_VER) &amp;&amp; _MSC_FULL_VER &gt;= 190023918 &amp;&amp; __cplusplus == 199711L &amp;&amp; _MSVC_LANG &gt;= 201703L</span></div>
+<div class="line"><a name="l03705"></a><span class="lineno"> 3705</span>&#160;<span class="preprocessor">        #define VMA_USE_STL_SHARED_MUTEX 1</span></div>
+<div class="line"><a name="l03706"></a><span class="lineno"> 3706</span>&#160;<span class="preprocessor">    #else</span></div>
+<div class="line"><a name="l03707"></a><span class="lineno"> 3707</span>&#160;<span class="preprocessor">        #define VMA_USE_STL_SHARED_MUTEX 0</span></div>
+<div class="line"><a name="l03708"></a><span class="lineno"> 3708</span>&#160;<span class="preprocessor">    #endif</span></div>
+<div class="line"><a name="l03709"></a><span class="lineno"> 3709</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03710"></a><span class="lineno"> 3710</span>&#160; </div>
+<div class="line"><a name="l03711"></a><span class="lineno"> 3711</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l03712"></a><span class="lineno"> 3712</span>&#160;<span class="comment">THESE INCLUDES ARE NOT ENABLED BY DEFAULT.</span></div>
+<div class="line"><a name="l03713"></a><span class="lineno"> 3713</span>&#160;<span class="comment">Library has its own container implementation.</span></div>
+<div class="line"><a name="l03714"></a><span class="lineno"> 3714</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l03715"></a><span class="lineno"> 3715</span>&#160;<span class="preprocessor">#if VMA_USE_STL_VECTOR</span></div>
+<div class="line"><a name="l03716"></a><span class="lineno"> 3716</span>&#160;<span class="preprocessor">   #include &lt;vector&gt;</span></div>
+<div class="line"><a name="l03717"></a><span class="lineno"> 3717</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03718"></a><span class="lineno"> 3718</span>&#160; </div>
+<div class="line"><a name="l03719"></a><span class="lineno"> 3719</span>&#160;<span class="preprocessor">#if VMA_USE_STL_UNORDERED_MAP</span></div>
+<div class="line"><a name="l03720"></a><span class="lineno"> 3720</span>&#160;<span class="preprocessor">   #include &lt;unordered_map&gt;</span></div>
+<div class="line"><a name="l03721"></a><span class="lineno"> 3721</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03722"></a><span class="lineno"> 3722</span>&#160; </div>
+<div class="line"><a name="l03723"></a><span class="lineno"> 3723</span>&#160;<span class="preprocessor">#if VMA_USE_STL_LIST</span></div>
+<div class="line"><a name="l03724"></a><span class="lineno"> 3724</span>&#160;<span class="preprocessor">   #include &lt;list&gt;</span></div>
+<div class="line"><a name="l03725"></a><span class="lineno"> 3725</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03726"></a><span class="lineno"> 3726</span>&#160; </div>
+<div class="line"><a name="l03727"></a><span class="lineno"> 3727</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l03728"></a><span class="lineno"> 3728</span>&#160;<span class="comment">Following headers are used in this CONFIGURATION section only, so feel free to</span></div>
+<div class="line"><a name="l03729"></a><span class="lineno"> 3729</span>&#160;<span class="comment">remove them if not needed.</span></div>
+<div class="line"><a name="l03730"></a><span class="lineno"> 3730</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l03731"></a><span class="lineno"> 3731</span>&#160;<span class="preprocessor">#include &lt;cassert&gt;</span> <span class="comment">// for assert</span></div>
+<div class="line"><a name="l03732"></a><span class="lineno"> 3732</span>&#160;<span class="preprocessor">#include &lt;algorithm&gt;</span> <span class="comment">// for min, max</span></div>
+<div class="line"><a name="l03733"></a><span class="lineno"> 3733</span>&#160;<span class="preprocessor">#include &lt;mutex&gt;</span></div>
+<div class="line"><a name="l03734"></a><span class="lineno"> 3734</span>&#160; </div>
+<div class="line"><a name="l03735"></a><span class="lineno"> 3735</span>&#160;<span class="preprocessor">#ifndef VMA_NULL</span></div>
+<div class="line"><a name="l03736"></a><span class="lineno"> 3736</span>&#160;   <span class="comment">// Value used as null pointer. Define it to e.g.: nullptr, NULL, 0, (void*)0.</span></div>
+<div class="line"><a name="l03737"></a><span class="lineno"> 3737</span>&#160;<span class="preprocessor">   #define VMA_NULL   nullptr</span></div>
+<div class="line"><a name="l03738"></a><span class="lineno"> 3738</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03739"></a><span class="lineno"> 3739</span>&#160; </div>
+<div class="line"><a name="l03740"></a><span class="lineno"> 3740</span>&#160;<span class="preprocessor">#if defined(__ANDROID_API__) &amp;&amp; (__ANDROID_API__ &lt; 16)</span></div>
+<div class="line"><a name="l03741"></a><span class="lineno"> 3741</span>&#160;<span class="preprocessor">#include &lt;cstdlib&gt;</span></div>
+<div class="line"><a name="l03742"></a><span class="lineno"> 3742</span>&#160;<span class="keywordtype">void</span> *aligned_alloc(<span class="keywordtype">size_t</span> alignment, <span class="keywordtype">size_t</span> size)</div>
+<div class="line"><a name="l03743"></a><span class="lineno"> 3743</span>&#160;{</div>
+<div class="line"><a name="l03744"></a><span class="lineno"> 3744</span>&#160;    <span class="comment">// alignment must be &gt;= sizeof(void*)</span></div>
+<div class="line"><a name="l03745"></a><span class="lineno"> 3745</span>&#160;    <span class="keywordflow">if</span>(alignment &lt; <span class="keyword">sizeof</span>(<span class="keywordtype">void</span>*))</div>
+<div class="line"><a name="l03746"></a><span class="lineno"> 3746</span>&#160;    {</div>
+<div class="line"><a name="l03747"></a><span class="lineno"> 3747</span>&#160;        alignment = <span class="keyword">sizeof</span>(<span class="keywordtype">void</span>*);</div>
+<div class="line"><a name="l03748"></a><span class="lineno"> 3748</span>&#160;    }</div>
 <div class="line"><a name="l03749"></a><span class="lineno"> 3749</span>&#160; </div>
-<div class="line"><a name="l03750"></a><span class="lineno"> 3750</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l03751"></a><span class="lineno"> 3751</span>&#160;<span class="comment">Following headers are used in this CONFIGURATION section only, so feel free to</span></div>
-<div class="line"><a name="l03752"></a><span class="lineno"> 3752</span>&#160;<span class="comment">remove them if not needed.</span></div>
-<div class="line"><a name="l03753"></a><span class="lineno"> 3753</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l03754"></a><span class="lineno"> 3754</span>&#160;<span class="preprocessor">#include &lt;cassert&gt;</span> <span class="comment">// for assert</span></div>
-<div class="line"><a name="l03755"></a><span class="lineno"> 3755</span>&#160;<span class="preprocessor">#include &lt;algorithm&gt;</span> <span class="comment">// for min, max</span></div>
-<div class="line"><a name="l03756"></a><span class="lineno"> 3756</span>&#160;<span class="preprocessor">#include &lt;mutex&gt;</span></div>
-<div class="line"><a name="l03757"></a><span class="lineno"> 3757</span>&#160; </div>
-<div class="line"><a name="l03758"></a><span class="lineno"> 3758</span>&#160;<span class="preprocessor">#ifndef VMA_NULL</span></div>
-<div class="line"><a name="l03759"></a><span class="lineno"> 3759</span>&#160;   <span class="comment">// Value used as null pointer. Define it to e.g.: nullptr, NULL, 0, (void*)0.</span></div>
-<div class="line"><a name="l03760"></a><span class="lineno"> 3760</span>&#160;<span class="preprocessor">   #define VMA_NULL   nullptr</span></div>
-<div class="line"><a name="l03761"></a><span class="lineno"> 3761</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03762"></a><span class="lineno"> 3762</span>&#160; </div>
-<div class="line"><a name="l03763"></a><span class="lineno"> 3763</span>&#160;<span class="preprocessor">#if defined(__ANDROID_API__) &amp;&amp; (__ANDROID_API__ &lt; 16)</span></div>
-<div class="line"><a name="l03764"></a><span class="lineno"> 3764</span>&#160;<span class="preprocessor">#include &lt;cstdlib&gt;</span></div>
-<div class="line"><a name="l03765"></a><span class="lineno"> 3765</span>&#160;<span class="keywordtype">void</span> *aligned_alloc(<span class="keywordtype">size_t</span> alignment, <span class="keywordtype">size_t</span> size)</div>
-<div class="line"><a name="l03766"></a><span class="lineno"> 3766</span>&#160;{</div>
-<div class="line"><a name="l03767"></a><span class="lineno"> 3767</span>&#160;    <span class="comment">// alignment must be &gt;= sizeof(void*)</span></div>
-<div class="line"><a name="l03768"></a><span class="lineno"> 3768</span>&#160;    <span class="keywordflow">if</span>(alignment &lt; <span class="keyword">sizeof</span>(<span class="keywordtype">void</span>*))</div>
-<div class="line"><a name="l03769"></a><span class="lineno"> 3769</span>&#160;    {</div>
-<div class="line"><a name="l03770"></a><span class="lineno"> 3770</span>&#160;        alignment = <span class="keyword">sizeof</span>(<span class="keywordtype">void</span>*);</div>
-<div class="line"><a name="l03771"></a><span class="lineno"> 3771</span>&#160;    }</div>
-<div class="line"><a name="l03772"></a><span class="lineno"> 3772</span>&#160; </div>
-<div class="line"><a name="l03773"></a><span class="lineno"> 3773</span>&#160;    <span class="keywordflow">return</span> memalign(alignment, size);</div>
-<div class="line"><a name="l03774"></a><span class="lineno"> 3774</span>&#160;}</div>
-<div class="line"><a name="l03775"></a><span class="lineno"> 3775</span>&#160;<span class="preprocessor">#elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) &amp;&amp; defined(__GLIBCXX__) &amp;&amp; !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC))</span></div>
-<div class="line"><a name="l03776"></a><span class="lineno"> 3776</span>&#160;<span class="preprocessor">#include &lt;cstdlib&gt;</span></div>
-<div class="line"><a name="l03777"></a><span class="lineno"> 3777</span>&#160;<span class="keywordtype">void</span> *aligned_alloc(<span class="keywordtype">size_t</span> alignment, <span class="keywordtype">size_t</span> size)</div>
-<div class="line"><a name="l03778"></a><span class="lineno"> 3778</span>&#160;{</div>
-<div class="line"><a name="l03779"></a><span class="lineno"> 3779</span>&#160;    <span class="comment">// alignment must be &gt;= sizeof(void*)</span></div>
-<div class="line"><a name="l03780"></a><span class="lineno"> 3780</span>&#160;    <span class="keywordflow">if</span>(alignment &lt; <span class="keyword">sizeof</span>(<span class="keywordtype">void</span>*))</div>
-<div class="line"><a name="l03781"></a><span class="lineno"> 3781</span>&#160;    {</div>
-<div class="line"><a name="l03782"></a><span class="lineno"> 3782</span>&#160;        alignment = <span class="keyword">sizeof</span>(<span class="keywordtype">void</span>*);</div>
-<div class="line"><a name="l03783"></a><span class="lineno"> 3783</span>&#160;    }</div>
-<div class="line"><a name="l03784"></a><span class="lineno"> 3784</span>&#160; </div>
-<div class="line"><a name="l03785"></a><span class="lineno"> 3785</span>&#160;    <span class="keywordtype">void</span> *pointer;</div>
-<div class="line"><a name="l03786"></a><span class="lineno"> 3786</span>&#160;    <span class="keywordflow">if</span>(posix_memalign(&amp;pointer, alignment, size) == 0)</div>
-<div class="line"><a name="l03787"></a><span class="lineno"> 3787</span>&#160;        <span class="keywordflow">return</span> pointer;</div>
-<div class="line"><a name="l03788"></a><span class="lineno"> 3788</span>&#160;    <span class="keywordflow">return</span> VMA_NULL;</div>
-<div class="line"><a name="l03789"></a><span class="lineno"> 3789</span>&#160;}</div>
-<div class="line"><a name="l03790"></a><span class="lineno"> 3790</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03791"></a><span class="lineno"> 3791</span>&#160; </div>
-<div class="line"><a name="l03792"></a><span class="lineno"> 3792</span>&#160;<span class="comment">// If your compiler is not compatible with C++11 and definition of</span></div>
-<div class="line"><a name="l03793"></a><span class="lineno"> 3793</span>&#160;<span class="comment">// aligned_alloc() function is missing, uncommeting following line may help:</span></div>
-<div class="line"><a name="l03794"></a><span class="lineno"> 3794</span>&#160; </div>
-<div class="line"><a name="l03795"></a><span class="lineno"> 3795</span>&#160;<span class="comment">//#include &lt;malloc.h&gt;</span></div>
+<div class="line"><a name="l03750"></a><span class="lineno"> 3750</span>&#160;    <span class="keywordflow">return</span> memalign(alignment, size);</div>
+<div class="line"><a name="l03751"></a><span class="lineno"> 3751</span>&#160;}</div>
+<div class="line"><a name="l03752"></a><span class="lineno"> 3752</span>&#160;<span class="preprocessor">#elif defined(__APPLE__) || defined(__ANDROID__) || (defined(__linux__) &amp;&amp; defined(__GLIBCXX__) &amp;&amp; !defined(_GLIBCXX_HAVE_ALIGNED_ALLOC))</span></div>
+<div class="line"><a name="l03753"></a><span class="lineno"> 3753</span>&#160;<span class="preprocessor">#include &lt;cstdlib&gt;</span></div>
+<div class="line"><a name="l03754"></a><span class="lineno"> 3754</span>&#160;<span class="keywordtype">void</span> *aligned_alloc(<span class="keywordtype">size_t</span> alignment, <span class="keywordtype">size_t</span> size)</div>
+<div class="line"><a name="l03755"></a><span class="lineno"> 3755</span>&#160;{</div>
+<div class="line"><a name="l03756"></a><span class="lineno"> 3756</span>&#160;    <span class="comment">// alignment must be &gt;= sizeof(void*)</span></div>
+<div class="line"><a name="l03757"></a><span class="lineno"> 3757</span>&#160;    <span class="keywordflow">if</span>(alignment &lt; <span class="keyword">sizeof</span>(<span class="keywordtype">void</span>*))</div>
+<div class="line"><a name="l03758"></a><span class="lineno"> 3758</span>&#160;    {</div>
+<div class="line"><a name="l03759"></a><span class="lineno"> 3759</span>&#160;        alignment = <span class="keyword">sizeof</span>(<span class="keywordtype">void</span>*);</div>
+<div class="line"><a name="l03760"></a><span class="lineno"> 3760</span>&#160;    }</div>
+<div class="line"><a name="l03761"></a><span class="lineno"> 3761</span>&#160; </div>
+<div class="line"><a name="l03762"></a><span class="lineno"> 3762</span>&#160;    <span class="keywordtype">void</span> *pointer;</div>
+<div class="line"><a name="l03763"></a><span class="lineno"> 3763</span>&#160;    <span class="keywordflow">if</span>(posix_memalign(&amp;pointer, alignment, size) == 0)</div>
+<div class="line"><a name="l03764"></a><span class="lineno"> 3764</span>&#160;        <span class="keywordflow">return</span> pointer;</div>
+<div class="line"><a name="l03765"></a><span class="lineno"> 3765</span>&#160;    <span class="keywordflow">return</span> VMA_NULL;</div>
+<div class="line"><a name="l03766"></a><span class="lineno"> 3766</span>&#160;}</div>
+<div class="line"><a name="l03767"></a><span class="lineno"> 3767</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03768"></a><span class="lineno"> 3768</span>&#160; </div>
+<div class="line"><a name="l03769"></a><span class="lineno"> 3769</span>&#160;<span class="comment">// If your compiler is not compatible with C++11 and definition of</span></div>
+<div class="line"><a name="l03770"></a><span class="lineno"> 3770</span>&#160;<span class="comment">// aligned_alloc() function is missing, uncommeting following line may help:</span></div>
+<div class="line"><a name="l03771"></a><span class="lineno"> 3771</span>&#160; </div>
+<div class="line"><a name="l03772"></a><span class="lineno"> 3772</span>&#160;<span class="comment">//#include &lt;malloc.h&gt;</span></div>
+<div class="line"><a name="l03773"></a><span class="lineno"> 3773</span>&#160; </div>
+<div class="line"><a name="l03774"></a><span class="lineno"> 3774</span>&#160;<span class="comment">// Normal assert to check for programmer&#39;s errors, especially in Debug configuration.</span></div>
+<div class="line"><a name="l03775"></a><span class="lineno"> 3775</span>&#160;<span class="preprocessor">#ifndef VMA_ASSERT</span></div>
+<div class="line"><a name="l03776"></a><span class="lineno"> 3776</span>&#160;<span class="preprocessor">   #ifdef NDEBUG</span></div>
+<div class="line"><a name="l03777"></a><span class="lineno"> 3777</span>&#160;<span class="preprocessor">       #define VMA_ASSERT(expr)</span></div>
+<div class="line"><a name="l03778"></a><span class="lineno"> 3778</span>&#160;<span class="preprocessor">   #else</span></div>
+<div class="line"><a name="l03779"></a><span class="lineno"> 3779</span>&#160;<span class="preprocessor">       #define VMA_ASSERT(expr)         assert(expr)</span></div>
+<div class="line"><a name="l03780"></a><span class="lineno"> 3780</span>&#160;<span class="preprocessor">   #endif</span></div>
+<div class="line"><a name="l03781"></a><span class="lineno"> 3781</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03782"></a><span class="lineno"> 3782</span>&#160; </div>
+<div class="line"><a name="l03783"></a><span class="lineno"> 3783</span>&#160;<span class="comment">// Assert that will be called very often, like inside data structures e.g. operator[].</span></div>
+<div class="line"><a name="l03784"></a><span class="lineno"> 3784</span>&#160;<span class="comment">// Making it non-empty can make program slow.</span></div>
+<div class="line"><a name="l03785"></a><span class="lineno"> 3785</span>&#160;<span class="preprocessor">#ifndef VMA_HEAVY_ASSERT</span></div>
+<div class="line"><a name="l03786"></a><span class="lineno"> 3786</span>&#160;<span class="preprocessor">   #ifdef NDEBUG</span></div>
+<div class="line"><a name="l03787"></a><span class="lineno"> 3787</span>&#160;<span class="preprocessor">       #define VMA_HEAVY_ASSERT(expr)</span></div>
+<div class="line"><a name="l03788"></a><span class="lineno"> 3788</span>&#160;<span class="preprocessor">   #else</span></div>
+<div class="line"><a name="l03789"></a><span class="lineno"> 3789</span>&#160;<span class="preprocessor">       #define VMA_HEAVY_ASSERT(expr)   //VMA_ASSERT(expr)</span></div>
+<div class="line"><a name="l03790"></a><span class="lineno"> 3790</span>&#160;<span class="preprocessor">   #endif</span></div>
+<div class="line"><a name="l03791"></a><span class="lineno"> 3791</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03792"></a><span class="lineno"> 3792</span>&#160; </div>
+<div class="line"><a name="l03793"></a><span class="lineno"> 3793</span>&#160;<span class="preprocessor">#ifndef VMA_ALIGN_OF</span></div>
+<div class="line"><a name="l03794"></a><span class="lineno"> 3794</span>&#160;<span class="preprocessor">   #define VMA_ALIGN_OF(type)       (__alignof(type))</span></div>
+<div class="line"><a name="l03795"></a><span class="lineno"> 3795</span>&#160;<span class="preprocessor">#endif</span></div>
 <div class="line"><a name="l03796"></a><span class="lineno"> 3796</span>&#160; </div>
-<div class="line"><a name="l03797"></a><span class="lineno"> 3797</span>&#160;<span class="comment">// Normal assert to check for programmer&#39;s errors, especially in Debug configuration.</span></div>
-<div class="line"><a name="l03798"></a><span class="lineno"> 3798</span>&#160;<span class="preprocessor">#ifndef VMA_ASSERT</span></div>
-<div class="line"><a name="l03799"></a><span class="lineno"> 3799</span>&#160;<span class="preprocessor">   #ifdef NDEBUG</span></div>
-<div class="line"><a name="l03800"></a><span class="lineno"> 3800</span>&#160;<span class="preprocessor">       #define VMA_ASSERT(expr)</span></div>
-<div class="line"><a name="l03801"></a><span class="lineno"> 3801</span>&#160;<span class="preprocessor">   #else</span></div>
-<div class="line"><a name="l03802"></a><span class="lineno"> 3802</span>&#160;<span class="preprocessor">       #define VMA_ASSERT(expr)         assert(expr)</span></div>
-<div class="line"><a name="l03803"></a><span class="lineno"> 3803</span>&#160;<span class="preprocessor">   #endif</span></div>
-<div class="line"><a name="l03804"></a><span class="lineno"> 3804</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03805"></a><span class="lineno"> 3805</span>&#160; </div>
-<div class="line"><a name="l03806"></a><span class="lineno"> 3806</span>&#160;<span class="comment">// Assert that will be called very often, like inside data structures e.g. operator[].</span></div>
-<div class="line"><a name="l03807"></a><span class="lineno"> 3807</span>&#160;<span class="comment">// Making it non-empty can make program slow.</span></div>
-<div class="line"><a name="l03808"></a><span class="lineno"> 3808</span>&#160;<span class="preprocessor">#ifndef VMA_HEAVY_ASSERT</span></div>
-<div class="line"><a name="l03809"></a><span class="lineno"> 3809</span>&#160;<span class="preprocessor">   #ifdef NDEBUG</span></div>
-<div class="line"><a name="l03810"></a><span class="lineno"> 3810</span>&#160;<span class="preprocessor">       #define VMA_HEAVY_ASSERT(expr)</span></div>
-<div class="line"><a name="l03811"></a><span class="lineno"> 3811</span>&#160;<span class="preprocessor">   #else</span></div>
-<div class="line"><a name="l03812"></a><span class="lineno"> 3812</span>&#160;<span class="preprocessor">       #define VMA_HEAVY_ASSERT(expr)   //VMA_ASSERT(expr)</span></div>
-<div class="line"><a name="l03813"></a><span class="lineno"> 3813</span>&#160;<span class="preprocessor">   #endif</span></div>
-<div class="line"><a name="l03814"></a><span class="lineno"> 3814</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03815"></a><span class="lineno"> 3815</span>&#160; </div>
-<div class="line"><a name="l03816"></a><span class="lineno"> 3816</span>&#160;<span class="preprocessor">#ifndef VMA_ALIGN_OF</span></div>
-<div class="line"><a name="l03817"></a><span class="lineno"> 3817</span>&#160;<span class="preprocessor">   #define VMA_ALIGN_OF(type)       (__alignof(type))</span></div>
-<div class="line"><a name="l03818"></a><span class="lineno"> 3818</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03819"></a><span class="lineno"> 3819</span>&#160; </div>
-<div class="line"><a name="l03820"></a><span class="lineno"> 3820</span>&#160;<span class="preprocessor">#ifndef VMA_SYSTEM_ALIGNED_MALLOC</span></div>
-<div class="line"><a name="l03821"></a><span class="lineno"> 3821</span>&#160;<span class="preprocessor">   #if defined(_WIN32)</span></div>
-<div class="line"><a name="l03822"></a><span class="lineno"> 3822</span>&#160;<span class="preprocessor">       #define VMA_SYSTEM_ALIGNED_MALLOC(size, alignment)   (_aligned_malloc((size), (alignment)))</span></div>
-<div class="line"><a name="l03823"></a><span class="lineno"> 3823</span>&#160;<span class="preprocessor">   #else</span></div>
-<div class="line"><a name="l03824"></a><span class="lineno"> 3824</span>&#160;<span class="preprocessor">       #define VMA_SYSTEM_ALIGNED_MALLOC(size, alignment)   (aligned_alloc((alignment), (size) ))</span></div>
-<div class="line"><a name="l03825"></a><span class="lineno"> 3825</span>&#160;<span class="preprocessor">   #endif</span></div>
-<div class="line"><a name="l03826"></a><span class="lineno"> 3826</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03827"></a><span class="lineno"> 3827</span>&#160; </div>
-<div class="line"><a name="l03828"></a><span class="lineno"> 3828</span>&#160;<span class="preprocessor">#ifndef VMA_SYSTEM_FREE</span></div>
-<div class="line"><a name="l03829"></a><span class="lineno"> 3829</span>&#160;<span class="preprocessor">   #if defined(_WIN32)</span></div>
-<div class="line"><a name="l03830"></a><span class="lineno"> 3830</span>&#160;<span class="preprocessor">       #define VMA_SYSTEM_FREE(ptr)   _aligned_free(ptr)</span></div>
-<div class="line"><a name="l03831"></a><span class="lineno"> 3831</span>&#160;<span class="preprocessor">   #else</span></div>
-<div class="line"><a name="l03832"></a><span class="lineno"> 3832</span>&#160;<span class="preprocessor">       #define VMA_SYSTEM_FREE(ptr)   free(ptr)</span></div>
-<div class="line"><a name="l03833"></a><span class="lineno"> 3833</span>&#160;<span class="preprocessor">   #endif</span></div>
-<div class="line"><a name="l03834"></a><span class="lineno"> 3834</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03835"></a><span class="lineno"> 3835</span>&#160; </div>
-<div class="line"><a name="l03836"></a><span class="lineno"> 3836</span>&#160;<span class="preprocessor">#ifndef VMA_MIN</span></div>
-<div class="line"><a name="l03837"></a><span class="lineno"> 3837</span>&#160;<span class="preprocessor">   #define VMA_MIN(v1, v2)    (std::min((v1), (v2)))</span></div>
-<div class="line"><a name="l03838"></a><span class="lineno"> 3838</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03839"></a><span class="lineno"> 3839</span>&#160; </div>
-<div class="line"><a name="l03840"></a><span class="lineno"> 3840</span>&#160;<span class="preprocessor">#ifndef VMA_MAX</span></div>
-<div class="line"><a name="l03841"></a><span class="lineno"> 3841</span>&#160;<span class="preprocessor">   #define VMA_MAX(v1, v2)    (std::max((v1), (v2)))</span></div>
-<div class="line"><a name="l03842"></a><span class="lineno"> 3842</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03843"></a><span class="lineno"> 3843</span>&#160; </div>
-<div class="line"><a name="l03844"></a><span class="lineno"> 3844</span>&#160;<span class="preprocessor">#ifndef VMA_SWAP</span></div>
-<div class="line"><a name="l03845"></a><span class="lineno"> 3845</span>&#160;<span class="preprocessor">   #define VMA_SWAP(v1, v2)   std::swap((v1), (v2))</span></div>
-<div class="line"><a name="l03846"></a><span class="lineno"> 3846</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03847"></a><span class="lineno"> 3847</span>&#160; </div>
-<div class="line"><a name="l03848"></a><span class="lineno"> 3848</span>&#160;<span class="preprocessor">#ifndef VMA_SORT</span></div>
-<div class="line"><a name="l03849"></a><span class="lineno"> 3849</span>&#160;<span class="preprocessor">   #define VMA_SORT(beg, end, cmp)  std::sort(beg, end, cmp)</span></div>
-<div class="line"><a name="l03850"></a><span class="lineno"> 3850</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03851"></a><span class="lineno"> 3851</span>&#160; </div>
-<div class="line"><a name="l03852"></a><span class="lineno"> 3852</span>&#160;<span class="preprocessor">#ifndef VMA_DEBUG_LOG</span></div>
-<div class="line"><a name="l03853"></a><span class="lineno"> 3853</span>&#160;<span class="preprocessor">   #define VMA_DEBUG_LOG(format, ...)</span></div>
-<div class="line"><a name="l03854"></a><span class="lineno"> 3854</span>&#160;   <span class="comment">/*</span></div>
-<div class="line"><a name="l03855"></a><span class="lineno"> 3855</span>&#160;<span class="comment">   #define VMA_DEBUG_LOG(format, ...) do { \</span></div>
-<div class="line"><a name="l03856"></a><span class="lineno"> 3856</span>&#160;<span class="comment">       printf(format, __VA_ARGS__); \</span></div>
-<div class="line"><a name="l03857"></a><span class="lineno"> 3857</span>&#160;<span class="comment">       printf(&quot;\n&quot;); \</span></div>
-<div class="line"><a name="l03858"></a><span class="lineno"> 3858</span>&#160;<span class="comment">   } while(false)</span></div>
-<div class="line"><a name="l03859"></a><span class="lineno"> 3859</span>&#160;<span class="comment">   */</span></div>
-<div class="line"><a name="l03860"></a><span class="lineno"> 3860</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03861"></a><span class="lineno"> 3861</span>&#160; </div>
-<div class="line"><a name="l03862"></a><span class="lineno"> 3862</span>&#160;<span class="comment">// Define this macro to 1 to enable functions: vmaBuildStatsString, vmaFreeStatsString.</span></div>
-<div class="line"><a name="l03863"></a><span class="lineno"> 3863</span>&#160;<span class="preprocessor">#if VMA_STATS_STRING_ENABLED</span></div>
-<div class="line"><a name="l03864"></a><span class="lineno"> 3864</span>&#160;    <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> VmaUint32ToStr(<span class="keywordtype">char</span>* outStr, <span class="keywordtype">size_t</span> strLen, uint32_t num)</div>
-<div class="line"><a name="l03865"></a><span class="lineno"> 3865</span>&#160;    {</div>
-<div class="line"><a name="l03866"></a><span class="lineno"> 3866</span>&#160;        snprintf(outStr, strLen, <span class="stringliteral">&quot;%u&quot;</span>, <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">int</span><span class="keyword">&gt;</span>(num));</div>
-<div class="line"><a name="l03867"></a><span class="lineno"> 3867</span>&#160;    }</div>
-<div class="line"><a name="l03868"></a><span class="lineno"> 3868</span>&#160;    <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> VmaUint64ToStr(<span class="keywordtype">char</span>* outStr, <span class="keywordtype">size_t</span> strLen, uint64_t num)</div>
-<div class="line"><a name="l03869"></a><span class="lineno"> 3869</span>&#160;    {</div>
-<div class="line"><a name="l03870"></a><span class="lineno"> 3870</span>&#160;        snprintf(outStr, strLen, <span class="stringliteral">&quot;%llu&quot;</span>, <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span><span class="keyword">&gt;</span>(num));</div>
-<div class="line"><a name="l03871"></a><span class="lineno"> 3871</span>&#160;    }</div>
-<div class="line"><a name="l03872"></a><span class="lineno"> 3872</span>&#160;    <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> VmaPtrToStr(<span class="keywordtype">char</span>* outStr, <span class="keywordtype">size_t</span> strLen, <span class="keyword">const</span> <span class="keywordtype">void</span>* ptr)</div>
-<div class="line"><a name="l03873"></a><span class="lineno"> 3873</span>&#160;    {</div>
-<div class="line"><a name="l03874"></a><span class="lineno"> 3874</span>&#160;        snprintf(outStr, strLen, <span class="stringliteral">&quot;%p&quot;</span>, ptr);</div>
-<div class="line"><a name="l03875"></a><span class="lineno"> 3875</span>&#160;    }</div>
-<div class="line"><a name="l03876"></a><span class="lineno"> 3876</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03877"></a><span class="lineno"> 3877</span>&#160; </div>
-<div class="line"><a name="l03878"></a><span class="lineno"> 3878</span>&#160;<span class="preprocessor">#ifndef VMA_MUTEX</span></div>
-<div class="line"><a name="l03879"></a><span class="lineno"> 3879</span>&#160;    <span class="keyword">class </span>VmaMutex</div>
-<div class="line"><a name="l03880"></a><span class="lineno"> 3880</span>&#160;    {</div>
-<div class="line"><a name="l03881"></a><span class="lineno"> 3881</span>&#160;    <span class="keyword">public</span>:</div>
-<div class="line"><a name="l03882"></a><span class="lineno"> 3882</span>&#160;        <span class="keywordtype">void</span> Lock() { m_Mutex.lock(); }</div>
-<div class="line"><a name="l03883"></a><span class="lineno"> 3883</span>&#160;        <span class="keywordtype">void</span> Unlock() { m_Mutex.unlock(); }</div>
-<div class="line"><a name="l03884"></a><span class="lineno"> 3884</span>&#160;        <span class="keywordtype">bool</span> TryLock() { <span class="keywordflow">return</span> m_Mutex.try_lock(); }</div>
-<div class="line"><a name="l03885"></a><span class="lineno"> 3885</span>&#160;    <span class="keyword">private</span>:</div>
-<div class="line"><a name="l03886"></a><span class="lineno"> 3886</span>&#160;        std::mutex m_Mutex;</div>
-<div class="line"><a name="l03887"></a><span class="lineno"> 3887</span>&#160;    };</div>
-<div class="line"><a name="l03888"></a><span class="lineno"> 3888</span>&#160;<span class="preprocessor">    #define VMA_MUTEX VmaMutex</span></div>
-<div class="line"><a name="l03889"></a><span class="lineno"> 3889</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03890"></a><span class="lineno"> 3890</span>&#160; </div>
-<div class="line"><a name="l03891"></a><span class="lineno"> 3891</span>&#160;<span class="comment">// Read-write mutex, where &quot;read&quot; is shared access, &quot;write&quot; is exclusive access.</span></div>
-<div class="line"><a name="l03892"></a><span class="lineno"> 3892</span>&#160;<span class="preprocessor">#ifndef VMA_RW_MUTEX</span></div>
-<div class="line"><a name="l03893"></a><span class="lineno"> 3893</span>&#160;<span class="preprocessor">    #if VMA_USE_STL_SHARED_MUTEX</span></div>
-<div class="line"><a name="l03894"></a><span class="lineno"> 3894</span>&#160;        <span class="comment">// Use std::shared_mutex from C++17.</span></div>
-<div class="line"><a name="l03895"></a><span class="lineno"> 3895</span>&#160;<span class="preprocessor">        #include &lt;shared_mutex&gt;</span></div>
-<div class="line"><a name="l03896"></a><span class="lineno"> 3896</span>&#160;        <span class="keyword">class </span>VmaRWMutex</div>
-<div class="line"><a name="l03897"></a><span class="lineno"> 3897</span>&#160;        {</div>
-<div class="line"><a name="l03898"></a><span class="lineno"> 3898</span>&#160;        <span class="keyword">public</span>:</div>
-<div class="line"><a name="l03899"></a><span class="lineno"> 3899</span>&#160;            <span class="keywordtype">void</span> LockRead() { m_Mutex.lock_shared(); }</div>
-<div class="line"><a name="l03900"></a><span class="lineno"> 3900</span>&#160;            <span class="keywordtype">void</span> UnlockRead() { m_Mutex.unlock_shared(); }</div>
-<div class="line"><a name="l03901"></a><span class="lineno"> 3901</span>&#160;            <span class="keywordtype">bool</span> TryLockRead() { <span class="keywordflow">return</span> m_Mutex.try_lock_shared(); }</div>
-<div class="line"><a name="l03902"></a><span class="lineno"> 3902</span>&#160;            <span class="keywordtype">void</span> LockWrite() { m_Mutex.lock(); }</div>
-<div class="line"><a name="l03903"></a><span class="lineno"> 3903</span>&#160;            <span class="keywordtype">void</span> UnlockWrite() { m_Mutex.unlock(); }</div>
-<div class="line"><a name="l03904"></a><span class="lineno"> 3904</span>&#160;            <span class="keywordtype">bool</span> TryLockWrite() { <span class="keywordflow">return</span> m_Mutex.try_lock(); }</div>
-<div class="line"><a name="l03905"></a><span class="lineno"> 3905</span>&#160;        <span class="keyword">private</span>:</div>
-<div class="line"><a name="l03906"></a><span class="lineno"> 3906</span>&#160;            std::shared_mutex m_Mutex;</div>
-<div class="line"><a name="l03907"></a><span class="lineno"> 3907</span>&#160;        };</div>
-<div class="line"><a name="l03908"></a><span class="lineno"> 3908</span>&#160;<span class="preprocessor">        #define VMA_RW_MUTEX VmaRWMutex</span></div>
-<div class="line"><a name="l03909"></a><span class="lineno"> 3909</span>&#160;<span class="preprocessor">    #elif defined(_WIN32) &amp;&amp; defined(WINVER) &amp;&amp; WINVER &gt;= 0x0600</span></div>
-<div class="line"><a name="l03910"></a><span class="lineno"> 3910</span>&#160;        <span class="comment">// Use SRWLOCK from WinAPI.</span></div>
-<div class="line"><a name="l03911"></a><span class="lineno"> 3911</span>&#160;        <span class="comment">// Minimum supported client = Windows Vista, server = Windows Server 2008.</span></div>
-<div class="line"><a name="l03912"></a><span class="lineno"> 3912</span>&#160;        <span class="keyword">class </span>VmaRWMutex</div>
-<div class="line"><a name="l03913"></a><span class="lineno"> 3913</span>&#160;        {</div>
-<div class="line"><a name="l03914"></a><span class="lineno"> 3914</span>&#160;        <span class="keyword">public</span>:</div>
-<div class="line"><a name="l03915"></a><span class="lineno"> 3915</span>&#160;            VmaRWMutex() { InitializeSRWLock(&amp;m_Lock); }</div>
-<div class="line"><a name="l03916"></a><span class="lineno"> 3916</span>&#160;            <span class="keywordtype">void</span> LockRead() { AcquireSRWLockShared(&amp;m_Lock); }</div>
-<div class="line"><a name="l03917"></a><span class="lineno"> 3917</span>&#160;            <span class="keywordtype">void</span> UnlockRead() { ReleaseSRWLockShared(&amp;m_Lock); }</div>
-<div class="line"><a name="l03918"></a><span class="lineno"> 3918</span>&#160;            <span class="keywordtype">bool</span> TryLockRead() { <span class="keywordflow">return</span> TryAcquireSRWLockShared(&amp;m_Lock) != FALSE; }</div>
-<div class="line"><a name="l03919"></a><span class="lineno"> 3919</span>&#160;            <span class="keywordtype">void</span> LockWrite() { AcquireSRWLockExclusive(&amp;m_Lock); }</div>
-<div class="line"><a name="l03920"></a><span class="lineno"> 3920</span>&#160;            <span class="keywordtype">void</span> UnlockWrite() { ReleaseSRWLockExclusive(&amp;m_Lock); }</div>
-<div class="line"><a name="l03921"></a><span class="lineno"> 3921</span>&#160;            <span class="keywordtype">bool</span> TryLockWrite() { <span class="keywordflow">return</span> TryAcquireSRWLockExclusive(&amp;m_Lock) != FALSE; }</div>
-<div class="line"><a name="l03922"></a><span class="lineno"> 3922</span>&#160;        <span class="keyword">private</span>:</div>
-<div class="line"><a name="l03923"></a><span class="lineno"> 3923</span>&#160;            SRWLOCK m_Lock;</div>
-<div class="line"><a name="l03924"></a><span class="lineno"> 3924</span>&#160;        };</div>
-<div class="line"><a name="l03925"></a><span class="lineno"> 3925</span>&#160;<span class="preprocessor">        #define VMA_RW_MUTEX VmaRWMutex</span></div>
-<div class="line"><a name="l03926"></a><span class="lineno"> 3926</span>&#160;<span class="preprocessor">    #else</span></div>
-<div class="line"><a name="l03927"></a><span class="lineno"> 3927</span>&#160;        <span class="comment">// Less efficient fallback: Use normal mutex.</span></div>
-<div class="line"><a name="l03928"></a><span class="lineno"> 3928</span>&#160;        <span class="keyword">class </span>VmaRWMutex</div>
-<div class="line"><a name="l03929"></a><span class="lineno"> 3929</span>&#160;        {</div>
-<div class="line"><a name="l03930"></a><span class="lineno"> 3930</span>&#160;        <span class="keyword">public</span>:</div>
-<div class="line"><a name="l03931"></a><span class="lineno"> 3931</span>&#160;            <span class="keywordtype">void</span> LockRead() { m_Mutex.Lock(); }</div>
-<div class="line"><a name="l03932"></a><span class="lineno"> 3932</span>&#160;            <span class="keywordtype">void</span> UnlockRead() { m_Mutex.Unlock(); }</div>
-<div class="line"><a name="l03933"></a><span class="lineno"> 3933</span>&#160;            <span class="keywordtype">bool</span> TryLockRead() { <span class="keywordflow">return</span> m_Mutex.TryLock(); }</div>
-<div class="line"><a name="l03934"></a><span class="lineno"> 3934</span>&#160;            <span class="keywordtype">void</span> LockWrite() { m_Mutex.Lock(); }</div>
-<div class="line"><a name="l03935"></a><span class="lineno"> 3935</span>&#160;            <span class="keywordtype">void</span> UnlockWrite() { m_Mutex.Unlock(); }</div>
-<div class="line"><a name="l03936"></a><span class="lineno"> 3936</span>&#160;            <span class="keywordtype">bool</span> TryLockWrite() { <span class="keywordflow">return</span> m_Mutex.TryLock(); }</div>
-<div class="line"><a name="l03937"></a><span class="lineno"> 3937</span>&#160;        <span class="keyword">private</span>:</div>
-<div class="line"><a name="l03938"></a><span class="lineno"> 3938</span>&#160;            VMA_MUTEX m_Mutex;</div>
-<div class="line"><a name="l03939"></a><span class="lineno"> 3939</span>&#160;        };</div>
-<div class="line"><a name="l03940"></a><span class="lineno"> 3940</span>&#160;<span class="preprocessor">        #define VMA_RW_MUTEX VmaRWMutex</span></div>
-<div class="line"><a name="l03941"></a><span class="lineno"> 3941</span>&#160;<span class="preprocessor">    #endif // #if VMA_USE_STL_SHARED_MUTEX</span></div>
-<div class="line"><a name="l03942"></a><span class="lineno"> 3942</span>&#160;<span class="preprocessor">#endif // #ifndef VMA_RW_MUTEX</span></div>
+<div class="line"><a name="l03797"></a><span class="lineno"> 3797</span>&#160;<span class="preprocessor">#ifndef VMA_SYSTEM_ALIGNED_MALLOC</span></div>
+<div class="line"><a name="l03798"></a><span class="lineno"> 3798</span>&#160;<span class="preprocessor">   #if defined(_WIN32)</span></div>
+<div class="line"><a name="l03799"></a><span class="lineno"> 3799</span>&#160;<span class="preprocessor">       #define VMA_SYSTEM_ALIGNED_MALLOC(size, alignment)   (_aligned_malloc((size), (alignment)))</span></div>
+<div class="line"><a name="l03800"></a><span class="lineno"> 3800</span>&#160;<span class="preprocessor">   #else</span></div>
+<div class="line"><a name="l03801"></a><span class="lineno"> 3801</span>&#160;<span class="preprocessor">       #define VMA_SYSTEM_ALIGNED_MALLOC(size, alignment)   (aligned_alloc((alignment), (size) ))</span></div>
+<div class="line"><a name="l03802"></a><span class="lineno"> 3802</span>&#160;<span class="preprocessor">   #endif</span></div>
+<div class="line"><a name="l03803"></a><span class="lineno"> 3803</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03804"></a><span class="lineno"> 3804</span>&#160; </div>
+<div class="line"><a name="l03805"></a><span class="lineno"> 3805</span>&#160;<span class="preprocessor">#ifndef VMA_SYSTEM_FREE</span></div>
+<div class="line"><a name="l03806"></a><span class="lineno"> 3806</span>&#160;<span class="preprocessor">   #if defined(_WIN32)</span></div>
+<div class="line"><a name="l03807"></a><span class="lineno"> 3807</span>&#160;<span class="preprocessor">       #define VMA_SYSTEM_FREE(ptr)   _aligned_free(ptr)</span></div>
+<div class="line"><a name="l03808"></a><span class="lineno"> 3808</span>&#160;<span class="preprocessor">   #else</span></div>
+<div class="line"><a name="l03809"></a><span class="lineno"> 3809</span>&#160;<span class="preprocessor">       #define VMA_SYSTEM_FREE(ptr)   free(ptr)</span></div>
+<div class="line"><a name="l03810"></a><span class="lineno"> 3810</span>&#160;<span class="preprocessor">   #endif</span></div>
+<div class="line"><a name="l03811"></a><span class="lineno"> 3811</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03812"></a><span class="lineno"> 3812</span>&#160; </div>
+<div class="line"><a name="l03813"></a><span class="lineno"> 3813</span>&#160;<span class="preprocessor">#ifndef VMA_MIN</span></div>
+<div class="line"><a name="l03814"></a><span class="lineno"> 3814</span>&#160;<span class="preprocessor">   #define VMA_MIN(v1, v2)    (std::min((v1), (v2)))</span></div>
+<div class="line"><a name="l03815"></a><span class="lineno"> 3815</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03816"></a><span class="lineno"> 3816</span>&#160; </div>
+<div class="line"><a name="l03817"></a><span class="lineno"> 3817</span>&#160;<span class="preprocessor">#ifndef VMA_MAX</span></div>
+<div class="line"><a name="l03818"></a><span class="lineno"> 3818</span>&#160;<span class="preprocessor">   #define VMA_MAX(v1, v2)    (std::max((v1), (v2)))</span></div>
+<div class="line"><a name="l03819"></a><span class="lineno"> 3819</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03820"></a><span class="lineno"> 3820</span>&#160; </div>
+<div class="line"><a name="l03821"></a><span class="lineno"> 3821</span>&#160;<span class="preprocessor">#ifndef VMA_SWAP</span></div>
+<div class="line"><a name="l03822"></a><span class="lineno"> 3822</span>&#160;<span class="preprocessor">   #define VMA_SWAP(v1, v2)   std::swap((v1), (v2))</span></div>
+<div class="line"><a name="l03823"></a><span class="lineno"> 3823</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03824"></a><span class="lineno"> 3824</span>&#160; </div>
+<div class="line"><a name="l03825"></a><span class="lineno"> 3825</span>&#160;<span class="preprocessor">#ifndef VMA_SORT</span></div>
+<div class="line"><a name="l03826"></a><span class="lineno"> 3826</span>&#160;<span class="preprocessor">   #define VMA_SORT(beg, end, cmp)  std::sort(beg, end, cmp)</span></div>
+<div class="line"><a name="l03827"></a><span class="lineno"> 3827</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03828"></a><span class="lineno"> 3828</span>&#160; </div>
+<div class="line"><a name="l03829"></a><span class="lineno"> 3829</span>&#160;<span class="preprocessor">#ifndef VMA_DEBUG_LOG</span></div>
+<div class="line"><a name="l03830"></a><span class="lineno"> 3830</span>&#160;<span class="preprocessor">   #define VMA_DEBUG_LOG(format, ...)</span></div>
+<div class="line"><a name="l03831"></a><span class="lineno"> 3831</span>&#160;   <span class="comment">/*</span></div>
+<div class="line"><a name="l03832"></a><span class="lineno"> 3832</span>&#160;<span class="comment">   #define VMA_DEBUG_LOG(format, ...) do { \</span></div>
+<div class="line"><a name="l03833"></a><span class="lineno"> 3833</span>&#160;<span class="comment">       printf(format, __VA_ARGS__); \</span></div>
+<div class="line"><a name="l03834"></a><span class="lineno"> 3834</span>&#160;<span class="comment">       printf(&quot;\n&quot;); \</span></div>
+<div class="line"><a name="l03835"></a><span class="lineno"> 3835</span>&#160;<span class="comment">   } while(false)</span></div>
+<div class="line"><a name="l03836"></a><span class="lineno"> 3836</span>&#160;<span class="comment">   */</span></div>
+<div class="line"><a name="l03837"></a><span class="lineno"> 3837</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03838"></a><span class="lineno"> 3838</span>&#160; </div>
+<div class="line"><a name="l03839"></a><span class="lineno"> 3839</span>&#160;<span class="comment">// Define this macro to 1 to enable functions: vmaBuildStatsString, vmaFreeStatsString.</span></div>
+<div class="line"><a name="l03840"></a><span class="lineno"> 3840</span>&#160;<span class="preprocessor">#if VMA_STATS_STRING_ENABLED</span></div>
+<div class="line"><a name="l03841"></a><span class="lineno"> 3841</span>&#160;    <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> VmaUint32ToStr(<span class="keywordtype">char</span>* outStr, <span class="keywordtype">size_t</span> strLen, uint32_t num)</div>
+<div class="line"><a name="l03842"></a><span class="lineno"> 3842</span>&#160;    {</div>
+<div class="line"><a name="l03843"></a><span class="lineno"> 3843</span>&#160;        snprintf(outStr, strLen, <span class="stringliteral">&quot;%u&quot;</span>, <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">int</span><span class="keyword">&gt;</span>(num));</div>
+<div class="line"><a name="l03844"></a><span class="lineno"> 3844</span>&#160;    }</div>
+<div class="line"><a name="l03845"></a><span class="lineno"> 3845</span>&#160;    <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> VmaUint64ToStr(<span class="keywordtype">char</span>* outStr, <span class="keywordtype">size_t</span> strLen, uint64_t num)</div>
+<div class="line"><a name="l03846"></a><span class="lineno"> 3846</span>&#160;    {</div>
+<div class="line"><a name="l03847"></a><span class="lineno"> 3847</span>&#160;        snprintf(outStr, strLen, <span class="stringliteral">&quot;%llu&quot;</span>, <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">long</span><span class="keyword">&gt;</span>(num));</div>
+<div class="line"><a name="l03848"></a><span class="lineno"> 3848</span>&#160;    }</div>
+<div class="line"><a name="l03849"></a><span class="lineno"> 3849</span>&#160;    <span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> VmaPtrToStr(<span class="keywordtype">char</span>* outStr, <span class="keywordtype">size_t</span> strLen, <span class="keyword">const</span> <span class="keywordtype">void</span>* ptr)</div>
+<div class="line"><a name="l03850"></a><span class="lineno"> 3850</span>&#160;    {</div>
+<div class="line"><a name="l03851"></a><span class="lineno"> 3851</span>&#160;        snprintf(outStr, strLen, <span class="stringliteral">&quot;%p&quot;</span>, ptr);</div>
+<div class="line"><a name="l03852"></a><span class="lineno"> 3852</span>&#160;    }</div>
+<div class="line"><a name="l03853"></a><span class="lineno"> 3853</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03854"></a><span class="lineno"> 3854</span>&#160; </div>
+<div class="line"><a name="l03855"></a><span class="lineno"> 3855</span>&#160;<span class="preprocessor">#ifndef VMA_MUTEX</span></div>
+<div class="line"><a name="l03856"></a><span class="lineno"> 3856</span>&#160;    <span class="keyword">class </span>VmaMutex</div>
+<div class="line"><a name="l03857"></a><span class="lineno"> 3857</span>&#160;    {</div>
+<div class="line"><a name="l03858"></a><span class="lineno"> 3858</span>&#160;    <span class="keyword">public</span>:</div>
+<div class="line"><a name="l03859"></a><span class="lineno"> 3859</span>&#160;        <span class="keywordtype">void</span> Lock() { m_Mutex.lock(); }</div>
+<div class="line"><a name="l03860"></a><span class="lineno"> 3860</span>&#160;        <span class="keywordtype">void</span> Unlock() { m_Mutex.unlock(); }</div>
+<div class="line"><a name="l03861"></a><span class="lineno"> 3861</span>&#160;        <span class="keywordtype">bool</span> TryLock() { <span class="keywordflow">return</span> m_Mutex.try_lock(); }</div>
+<div class="line"><a name="l03862"></a><span class="lineno"> 3862</span>&#160;    <span class="keyword">private</span>:</div>
+<div class="line"><a name="l03863"></a><span class="lineno"> 3863</span>&#160;        std::mutex m_Mutex;</div>
+<div class="line"><a name="l03864"></a><span class="lineno"> 3864</span>&#160;    };</div>
+<div class="line"><a name="l03865"></a><span class="lineno"> 3865</span>&#160;<span class="preprocessor">    #define VMA_MUTEX VmaMutex</span></div>
+<div class="line"><a name="l03866"></a><span class="lineno"> 3866</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03867"></a><span class="lineno"> 3867</span>&#160; </div>
+<div class="line"><a name="l03868"></a><span class="lineno"> 3868</span>&#160;<span class="comment">// Read-write mutex, where &quot;read&quot; is shared access, &quot;write&quot; is exclusive access.</span></div>
+<div class="line"><a name="l03869"></a><span class="lineno"> 3869</span>&#160;<span class="preprocessor">#ifndef VMA_RW_MUTEX</span></div>
+<div class="line"><a name="l03870"></a><span class="lineno"> 3870</span>&#160;<span class="preprocessor">    #if VMA_USE_STL_SHARED_MUTEX</span></div>
+<div class="line"><a name="l03871"></a><span class="lineno"> 3871</span>&#160;        <span class="comment">// Use std::shared_mutex from C++17.</span></div>
+<div class="line"><a name="l03872"></a><span class="lineno"> 3872</span>&#160;<span class="preprocessor">        #include &lt;shared_mutex&gt;</span></div>
+<div class="line"><a name="l03873"></a><span class="lineno"> 3873</span>&#160;        <span class="keyword">class </span>VmaRWMutex</div>
+<div class="line"><a name="l03874"></a><span class="lineno"> 3874</span>&#160;        {</div>
+<div class="line"><a name="l03875"></a><span class="lineno"> 3875</span>&#160;        <span class="keyword">public</span>:</div>
+<div class="line"><a name="l03876"></a><span class="lineno"> 3876</span>&#160;            <span class="keywordtype">void</span> LockRead() { m_Mutex.lock_shared(); }</div>
+<div class="line"><a name="l03877"></a><span class="lineno"> 3877</span>&#160;            <span class="keywordtype">void</span> UnlockRead() { m_Mutex.unlock_shared(); }</div>
+<div class="line"><a name="l03878"></a><span class="lineno"> 3878</span>&#160;            <span class="keywordtype">bool</span> TryLockRead() { <span class="keywordflow">return</span> m_Mutex.try_lock_shared(); }</div>
+<div class="line"><a name="l03879"></a><span class="lineno"> 3879</span>&#160;            <span class="keywordtype">void</span> LockWrite() { m_Mutex.lock(); }</div>
+<div class="line"><a name="l03880"></a><span class="lineno"> 3880</span>&#160;            <span class="keywordtype">void</span> UnlockWrite() { m_Mutex.unlock(); }</div>
+<div class="line"><a name="l03881"></a><span class="lineno"> 3881</span>&#160;            <span class="keywordtype">bool</span> TryLockWrite() { <span class="keywordflow">return</span> m_Mutex.try_lock(); }</div>
+<div class="line"><a name="l03882"></a><span class="lineno"> 3882</span>&#160;        <span class="keyword">private</span>:</div>
+<div class="line"><a name="l03883"></a><span class="lineno"> 3883</span>&#160;            std::shared_mutex m_Mutex;</div>
+<div class="line"><a name="l03884"></a><span class="lineno"> 3884</span>&#160;        };</div>
+<div class="line"><a name="l03885"></a><span class="lineno"> 3885</span>&#160;<span class="preprocessor">        #define VMA_RW_MUTEX VmaRWMutex</span></div>
+<div class="line"><a name="l03886"></a><span class="lineno"> 3886</span>&#160;<span class="preprocessor">    #elif defined(_WIN32) &amp;&amp; defined(WINVER) &amp;&amp; WINVER &gt;= 0x0600</span></div>
+<div class="line"><a name="l03887"></a><span class="lineno"> 3887</span>&#160;        <span class="comment">// Use SRWLOCK from WinAPI.</span></div>
+<div class="line"><a name="l03888"></a><span class="lineno"> 3888</span>&#160;        <span class="comment">// Minimum supported client = Windows Vista, server = Windows Server 2008.</span></div>
+<div class="line"><a name="l03889"></a><span class="lineno"> 3889</span>&#160;        <span class="keyword">class </span>VmaRWMutex</div>
+<div class="line"><a name="l03890"></a><span class="lineno"> 3890</span>&#160;        {</div>
+<div class="line"><a name="l03891"></a><span class="lineno"> 3891</span>&#160;        <span class="keyword">public</span>:</div>
+<div class="line"><a name="l03892"></a><span class="lineno"> 3892</span>&#160;            VmaRWMutex() { InitializeSRWLock(&amp;m_Lock); }</div>
+<div class="line"><a name="l03893"></a><span class="lineno"> 3893</span>&#160;            <span class="keywordtype">void</span> LockRead() { AcquireSRWLockShared(&amp;m_Lock); }</div>
+<div class="line"><a name="l03894"></a><span class="lineno"> 3894</span>&#160;            <span class="keywordtype">void</span> UnlockRead() { ReleaseSRWLockShared(&amp;m_Lock); }</div>
+<div class="line"><a name="l03895"></a><span class="lineno"> 3895</span>&#160;            <span class="keywordtype">bool</span> TryLockRead() { <span class="keywordflow">return</span> TryAcquireSRWLockShared(&amp;m_Lock) != FALSE; }</div>
+<div class="line"><a name="l03896"></a><span class="lineno"> 3896</span>&#160;            <span class="keywordtype">void</span> LockWrite() { AcquireSRWLockExclusive(&amp;m_Lock); }</div>
+<div class="line"><a name="l03897"></a><span class="lineno"> 3897</span>&#160;            <span class="keywordtype">void</span> UnlockWrite() { ReleaseSRWLockExclusive(&amp;m_Lock); }</div>
+<div class="line"><a name="l03898"></a><span class="lineno"> 3898</span>&#160;            <span class="keywordtype">bool</span> TryLockWrite() { <span class="keywordflow">return</span> TryAcquireSRWLockExclusive(&amp;m_Lock) != FALSE; }</div>
+<div class="line"><a name="l03899"></a><span class="lineno"> 3899</span>&#160;        <span class="keyword">private</span>:</div>
+<div class="line"><a name="l03900"></a><span class="lineno"> 3900</span>&#160;            SRWLOCK m_Lock;</div>
+<div class="line"><a name="l03901"></a><span class="lineno"> 3901</span>&#160;        };</div>
+<div class="line"><a name="l03902"></a><span class="lineno"> 3902</span>&#160;<span class="preprocessor">        #define VMA_RW_MUTEX VmaRWMutex</span></div>
+<div class="line"><a name="l03903"></a><span class="lineno"> 3903</span>&#160;<span class="preprocessor">    #else</span></div>
+<div class="line"><a name="l03904"></a><span class="lineno"> 3904</span>&#160;        <span class="comment">// Less efficient fallback: Use normal mutex.</span></div>
+<div class="line"><a name="l03905"></a><span class="lineno"> 3905</span>&#160;        <span class="keyword">class </span>VmaRWMutex</div>
+<div class="line"><a name="l03906"></a><span class="lineno"> 3906</span>&#160;        {</div>
+<div class="line"><a name="l03907"></a><span class="lineno"> 3907</span>&#160;        <span class="keyword">public</span>:</div>
+<div class="line"><a name="l03908"></a><span class="lineno"> 3908</span>&#160;            <span class="keywordtype">void</span> LockRead() { m_Mutex.Lock(); }</div>
+<div class="line"><a name="l03909"></a><span class="lineno"> 3909</span>&#160;            <span class="keywordtype">void</span> UnlockRead() { m_Mutex.Unlock(); }</div>
+<div class="line"><a name="l03910"></a><span class="lineno"> 3910</span>&#160;            <span class="keywordtype">bool</span> TryLockRead() { <span class="keywordflow">return</span> m_Mutex.TryLock(); }</div>
+<div class="line"><a name="l03911"></a><span class="lineno"> 3911</span>&#160;            <span class="keywordtype">void</span> LockWrite() { m_Mutex.Lock(); }</div>
+<div class="line"><a name="l03912"></a><span class="lineno"> 3912</span>&#160;            <span class="keywordtype">void</span> UnlockWrite() { m_Mutex.Unlock(); }</div>
+<div class="line"><a name="l03913"></a><span class="lineno"> 3913</span>&#160;            <span class="keywordtype">bool</span> TryLockWrite() { <span class="keywordflow">return</span> m_Mutex.TryLock(); }</div>
+<div class="line"><a name="l03914"></a><span class="lineno"> 3914</span>&#160;        <span class="keyword">private</span>:</div>
+<div class="line"><a name="l03915"></a><span class="lineno"> 3915</span>&#160;            VMA_MUTEX m_Mutex;</div>
+<div class="line"><a name="l03916"></a><span class="lineno"> 3916</span>&#160;        };</div>
+<div class="line"><a name="l03917"></a><span class="lineno"> 3917</span>&#160;<span class="preprocessor">        #define VMA_RW_MUTEX VmaRWMutex</span></div>
+<div class="line"><a name="l03918"></a><span class="lineno"> 3918</span>&#160;<span class="preprocessor">    #endif // #if VMA_USE_STL_SHARED_MUTEX</span></div>
+<div class="line"><a name="l03919"></a><span class="lineno"> 3919</span>&#160;<span class="preprocessor">#endif // #ifndef VMA_RW_MUTEX</span></div>
+<div class="line"><a name="l03920"></a><span class="lineno"> 3920</span>&#160; </div>
+<div class="line"><a name="l03921"></a><span class="lineno"> 3921</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l03922"></a><span class="lineno"> 3922</span>&#160;<span class="comment">If providing your own implementation, you need to implement a subset of std::atomic.</span></div>
+<div class="line"><a name="l03923"></a><span class="lineno"> 3923</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l03924"></a><span class="lineno"> 3924</span>&#160;<span class="preprocessor">#ifndef VMA_ATOMIC_UINT32</span></div>
+<div class="line"><a name="l03925"></a><span class="lineno"> 3925</span>&#160;<span class="preprocessor">    #include &lt;atomic&gt;</span></div>
+<div class="line"><a name="l03926"></a><span class="lineno"> 3926</span>&#160;<span class="preprocessor">    #define VMA_ATOMIC_UINT32 std::atomic&lt;uint32_t&gt;</span></div>
+<div class="line"><a name="l03927"></a><span class="lineno"> 3927</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03928"></a><span class="lineno"> 3928</span>&#160; </div>
+<div class="line"><a name="l03929"></a><span class="lineno"> 3929</span>&#160;<span class="preprocessor">#ifndef VMA_ATOMIC_UINT64</span></div>
+<div class="line"><a name="l03930"></a><span class="lineno"> 3930</span>&#160;<span class="preprocessor">    #include &lt;atomic&gt;</span></div>
+<div class="line"><a name="l03931"></a><span class="lineno"> 3931</span>&#160;<span class="preprocessor">    #define VMA_ATOMIC_UINT64 std::atomic&lt;uint64_t&gt;</span></div>
+<div class="line"><a name="l03932"></a><span class="lineno"> 3932</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03933"></a><span class="lineno"> 3933</span>&#160; </div>
+<div class="line"><a name="l03934"></a><span class="lineno"> 3934</span>&#160;<span class="preprocessor">#ifndef VMA_DEBUG_ALWAYS_DEDICATED_MEMORY</span></div>
+<div class="line"><a name="l03935"></a><span class="lineno"> 3935</span>&#160; </div>
+<div class="line"><a name="l03939"></a><span class="lineno"> 3939</span>&#160;<span class="preprocessor">    #define VMA_DEBUG_ALWAYS_DEDICATED_MEMORY (0)</span></div>
+<div class="line"><a name="l03940"></a><span class="lineno"> 3940</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03941"></a><span class="lineno"> 3941</span>&#160; </div>
+<div class="line"><a name="l03942"></a><span class="lineno"> 3942</span>&#160;<span class="preprocessor">#ifndef VMA_DEBUG_ALIGNMENT</span></div>
 <div class="line"><a name="l03943"></a><span class="lineno"> 3943</span>&#160; </div>
-<div class="line"><a name="l03944"></a><span class="lineno"> 3944</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l03945"></a><span class="lineno"> 3945</span>&#160;<span class="comment">If providing your own implementation, you need to implement a subset of std::atomic.</span></div>
-<div class="line"><a name="l03946"></a><span class="lineno"> 3946</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l03947"></a><span class="lineno"> 3947</span>&#160;<span class="preprocessor">#ifndef VMA_ATOMIC_UINT32</span></div>
-<div class="line"><a name="l03948"></a><span class="lineno"> 3948</span>&#160;<span class="preprocessor">    #include &lt;atomic&gt;</span></div>
-<div class="line"><a name="l03949"></a><span class="lineno"> 3949</span>&#160;<span class="preprocessor">    #define VMA_ATOMIC_UINT32 std::atomic&lt;uint32_t&gt;</span></div>
-<div class="line"><a name="l03950"></a><span class="lineno"> 3950</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03947"></a><span class="lineno"> 3947</span>&#160;<span class="preprocessor">    #define VMA_DEBUG_ALIGNMENT (1)</span></div>
+<div class="line"><a name="l03948"></a><span class="lineno"> 3948</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03949"></a><span class="lineno"> 3949</span>&#160; </div>
+<div class="line"><a name="l03950"></a><span class="lineno"> 3950</span>&#160;<span class="preprocessor">#ifndef VMA_DEBUG_MARGIN</span></div>
 <div class="line"><a name="l03951"></a><span class="lineno"> 3951</span>&#160; </div>
-<div class="line"><a name="l03952"></a><span class="lineno"> 3952</span>&#160;<span class="preprocessor">#ifndef VMA_ATOMIC_UINT64</span></div>
-<div class="line"><a name="l03953"></a><span class="lineno"> 3953</span>&#160;<span class="preprocessor">    #include &lt;atomic&gt;</span></div>
-<div class="line"><a name="l03954"></a><span class="lineno"> 3954</span>&#160;<span class="preprocessor">    #define VMA_ATOMIC_UINT64 std::atomic&lt;uint64_t&gt;</span></div>
-<div class="line"><a name="l03955"></a><span class="lineno"> 3955</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03956"></a><span class="lineno"> 3956</span>&#160; </div>
-<div class="line"><a name="l03957"></a><span class="lineno"> 3957</span>&#160;<span class="preprocessor">#ifndef VMA_DEBUG_ALWAYS_DEDICATED_MEMORY</span></div>
-<div class="line"><a name="l03958"></a><span class="lineno"> 3958</span>&#160; </div>
-<div class="line"><a name="l03962"></a><span class="lineno"> 3962</span>&#160;<span class="preprocessor">    #define VMA_DEBUG_ALWAYS_DEDICATED_MEMORY (0)</span></div>
-<div class="line"><a name="l03963"></a><span class="lineno"> 3963</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03964"></a><span class="lineno"> 3964</span>&#160; </div>
-<div class="line"><a name="l03965"></a><span class="lineno"> 3965</span>&#160;<span class="preprocessor">#ifndef VMA_DEBUG_ALIGNMENT</span></div>
-<div class="line"><a name="l03966"></a><span class="lineno"> 3966</span>&#160; </div>
-<div class="line"><a name="l03970"></a><span class="lineno"> 3970</span>&#160;<span class="preprocessor">    #define VMA_DEBUG_ALIGNMENT (1)</span></div>
-<div class="line"><a name="l03971"></a><span class="lineno"> 3971</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03972"></a><span class="lineno"> 3972</span>&#160; </div>
-<div class="line"><a name="l03973"></a><span class="lineno"> 3973</span>&#160;<span class="preprocessor">#ifndef VMA_DEBUG_MARGIN</span></div>
+<div class="line"><a name="l03955"></a><span class="lineno"> 3955</span>&#160;<span class="preprocessor">    #define VMA_DEBUG_MARGIN (0)</span></div>
+<div class="line"><a name="l03956"></a><span class="lineno"> 3956</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03957"></a><span class="lineno"> 3957</span>&#160; </div>
+<div class="line"><a name="l03958"></a><span class="lineno"> 3958</span>&#160;<span class="preprocessor">#ifndef VMA_DEBUG_INITIALIZE_ALLOCATIONS</span></div>
+<div class="line"><a name="l03959"></a><span class="lineno"> 3959</span>&#160; </div>
+<div class="line"><a name="l03963"></a><span class="lineno"> 3963</span>&#160;<span class="preprocessor">    #define VMA_DEBUG_INITIALIZE_ALLOCATIONS (0)</span></div>
+<div class="line"><a name="l03964"></a><span class="lineno"> 3964</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03965"></a><span class="lineno"> 3965</span>&#160; </div>
+<div class="line"><a name="l03966"></a><span class="lineno"> 3966</span>&#160;<span class="preprocessor">#ifndef VMA_DEBUG_DETECT_CORRUPTION</span></div>
+<div class="line"><a name="l03967"></a><span class="lineno"> 3967</span>&#160; </div>
+<div class="line"><a name="l03972"></a><span class="lineno"> 3972</span>&#160;<span class="preprocessor">    #define VMA_DEBUG_DETECT_CORRUPTION (0)</span></div>
+<div class="line"><a name="l03973"></a><span class="lineno"> 3973</span>&#160;<span class="preprocessor">#endif</span></div>
 <div class="line"><a name="l03974"></a><span class="lineno"> 3974</span>&#160; </div>
-<div class="line"><a name="l03978"></a><span class="lineno"> 3978</span>&#160;<span class="preprocessor">    #define VMA_DEBUG_MARGIN (0)</span></div>
-<div class="line"><a name="l03979"></a><span class="lineno"> 3979</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03980"></a><span class="lineno"> 3980</span>&#160; </div>
-<div class="line"><a name="l03981"></a><span class="lineno"> 3981</span>&#160;<span class="preprocessor">#ifndef VMA_DEBUG_INITIALIZE_ALLOCATIONS</span></div>
+<div class="line"><a name="l03975"></a><span class="lineno"> 3975</span>&#160;<span class="preprocessor">#ifndef VMA_DEBUG_GLOBAL_MUTEX</span></div>
+<div class="line"><a name="l03976"></a><span class="lineno"> 3976</span>&#160; </div>
+<div class="line"><a name="l03980"></a><span class="lineno"> 3980</span>&#160;<span class="preprocessor">    #define VMA_DEBUG_GLOBAL_MUTEX (0)</span></div>
+<div class="line"><a name="l03981"></a><span class="lineno"> 3981</span>&#160;<span class="preprocessor">#endif</span></div>
 <div class="line"><a name="l03982"></a><span class="lineno"> 3982</span>&#160; </div>
-<div class="line"><a name="l03986"></a><span class="lineno"> 3986</span>&#160;<span class="preprocessor">    #define VMA_DEBUG_INITIALIZE_ALLOCATIONS (0)</span></div>
-<div class="line"><a name="l03987"></a><span class="lineno"> 3987</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03988"></a><span class="lineno"> 3988</span>&#160; </div>
-<div class="line"><a name="l03989"></a><span class="lineno"> 3989</span>&#160;<span class="preprocessor">#ifndef VMA_DEBUG_DETECT_CORRUPTION</span></div>
+<div class="line"><a name="l03983"></a><span class="lineno"> 3983</span>&#160;<span class="preprocessor">#ifndef VMA_DEBUG_MIN_BUFFER_IMAGE_GRANULARITY</span></div>
+<div class="line"><a name="l03984"></a><span class="lineno"> 3984</span>&#160; </div>
+<div class="line"><a name="l03988"></a><span class="lineno"> 3988</span>&#160;<span class="preprocessor">    #define VMA_DEBUG_MIN_BUFFER_IMAGE_GRANULARITY (1)</span></div>
+<div class="line"><a name="l03989"></a><span class="lineno"> 3989</span>&#160;<span class="preprocessor">#endif</span></div>
 <div class="line"><a name="l03990"></a><span class="lineno"> 3990</span>&#160; </div>
-<div class="line"><a name="l03995"></a><span class="lineno"> 3995</span>&#160;<span class="preprocessor">    #define VMA_DEBUG_DETECT_CORRUPTION (0)</span></div>
-<div class="line"><a name="l03996"></a><span class="lineno"> 3996</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l03997"></a><span class="lineno"> 3997</span>&#160; </div>
-<div class="line"><a name="l03998"></a><span class="lineno"> 3998</span>&#160;<span class="preprocessor">#ifndef VMA_DEBUG_GLOBAL_MUTEX</span></div>
-<div class="line"><a name="l03999"></a><span class="lineno"> 3999</span>&#160; </div>
-<div class="line"><a name="l04003"></a><span class="lineno"> 4003</span>&#160;<span class="preprocessor">    #define VMA_DEBUG_GLOBAL_MUTEX (0)</span></div>
-<div class="line"><a name="l04004"></a><span class="lineno"> 4004</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l04005"></a><span class="lineno"> 4005</span>&#160; </div>
-<div class="line"><a name="l04006"></a><span class="lineno"> 4006</span>&#160;<span class="preprocessor">#ifndef VMA_DEBUG_MIN_BUFFER_IMAGE_GRANULARITY</span></div>
+<div class="line"><a name="l03991"></a><span class="lineno"> 3991</span>&#160;<span class="preprocessor">#ifndef VMA_SMALL_HEAP_MAX_SIZE</span></div>
+<div class="line"><a name="l03992"></a><span class="lineno"> 3992</span>&#160;<span class="preprocessor">   #define VMA_SMALL_HEAP_MAX_SIZE (1024ull * 1024 * 1024)</span></div>
+<div class="line"><a name="l03994"></a><span class="lineno"> 3994</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l03995"></a><span class="lineno"> 3995</span>&#160; </div>
+<div class="line"><a name="l03996"></a><span class="lineno"> 3996</span>&#160;<span class="preprocessor">#ifndef VMA_DEFAULT_LARGE_HEAP_BLOCK_SIZE</span></div>
+<div class="line"><a name="l03997"></a><span class="lineno"> 3997</span>&#160;<span class="preprocessor">   #define VMA_DEFAULT_LARGE_HEAP_BLOCK_SIZE (256ull * 1024 * 1024)</span></div>
+<div class="line"><a name="l03999"></a><span class="lineno"> 3999</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l04000"></a><span class="lineno"> 4000</span>&#160; </div>
+<div class="line"><a name="l04001"></a><span class="lineno"> 4001</span>&#160;<span class="preprocessor">#ifndef VMA_CLASS_NO_COPY</span></div>
+<div class="line"><a name="l04002"></a><span class="lineno"> 4002</span>&#160;<span class="preprocessor">    #define VMA_CLASS_NO_COPY(className) \</span></div>
+<div class="line"><a name="l04003"></a><span class="lineno"> 4003</span>&#160;<span class="preprocessor">        private: \</span></div>
+<div class="line"><a name="l04004"></a><span class="lineno"> 4004</span>&#160;<span class="preprocessor">            className(const className&amp;) = delete; \</span></div>
+<div class="line"><a name="l04005"></a><span class="lineno"> 4005</span>&#160;<span class="preprocessor">            className&amp; operator=(const className&amp;) = delete;</span></div>
+<div class="line"><a name="l04006"></a><span class="lineno"> 4006</span>&#160;<span class="preprocessor">#endif</span></div>
 <div class="line"><a name="l04007"></a><span class="lineno"> 4007</span>&#160; </div>
-<div class="line"><a name="l04011"></a><span class="lineno"> 4011</span>&#160;<span class="preprocessor">    #define VMA_DEBUG_MIN_BUFFER_IMAGE_GRANULARITY (1)</span></div>
-<div class="line"><a name="l04012"></a><span class="lineno"> 4012</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l04013"></a><span class="lineno"> 4013</span>&#160; </div>
-<div class="line"><a name="l04014"></a><span class="lineno"> 4014</span>&#160;<span class="preprocessor">#ifndef VMA_SMALL_HEAP_MAX_SIZE</span></div>
-<div class="line"><a name="l04015"></a><span class="lineno"> 4015</span>&#160;<span class="preprocessor">   #define VMA_SMALL_HEAP_MAX_SIZE (1024ull * 1024 * 1024)</span></div>
-<div class="line"><a name="l04017"></a><span class="lineno"> 4017</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l04018"></a><span class="lineno"> 4018</span>&#160; </div>
-<div class="line"><a name="l04019"></a><span class="lineno"> 4019</span>&#160;<span class="preprocessor">#ifndef VMA_DEFAULT_LARGE_HEAP_BLOCK_SIZE</span></div>
-<div class="line"><a name="l04020"></a><span class="lineno"> 4020</span>&#160;<span class="preprocessor">   #define VMA_DEFAULT_LARGE_HEAP_BLOCK_SIZE (256ull * 1024 * 1024)</span></div>
-<div class="line"><a name="l04022"></a><span class="lineno"> 4022</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l04023"></a><span class="lineno"> 4023</span>&#160; </div>
-<div class="line"><a name="l04024"></a><span class="lineno"> 4024</span>&#160;<span class="preprocessor">#ifndef VMA_CLASS_NO_COPY</span></div>
-<div class="line"><a name="l04025"></a><span class="lineno"> 4025</span>&#160;<span class="preprocessor">    #define VMA_CLASS_NO_COPY(className) \</span></div>
-<div class="line"><a name="l04026"></a><span class="lineno"> 4026</span>&#160;<span class="preprocessor">        private: \</span></div>
-<div class="line"><a name="l04027"></a><span class="lineno"> 4027</span>&#160;<span class="preprocessor">            className(const className&amp;) = delete; \</span></div>
-<div class="line"><a name="l04028"></a><span class="lineno"> 4028</span>&#160;<span class="preprocessor">            className&amp; operator=(const className&amp;) = delete;</span></div>
-<div class="line"><a name="l04029"></a><span class="lineno"> 4029</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l04008"></a><span class="lineno"> 4008</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> uint32_t VMA_FRAME_INDEX_LOST = UINT32_MAX;</div>
+<div class="line"><a name="l04009"></a><span class="lineno"> 4009</span>&#160; </div>
+<div class="line"><a name="l04010"></a><span class="lineno"> 4010</span>&#160;<span class="comment">// Decimal 2139416166, float NaN, little-endian binary 66 E6 84 7F.</span></div>
+<div class="line"><a name="l04011"></a><span class="lineno"> 4011</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> uint32_t VMA_CORRUPTION_DETECTION_MAGIC_VALUE = 0x7F84E666;</div>
+<div class="line"><a name="l04012"></a><span class="lineno"> 4012</span>&#160; </div>
+<div class="line"><a name="l04013"></a><span class="lineno"> 4013</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> uint8_t VMA_ALLOCATION_FILL_PATTERN_CREATED   = 0xDC;</div>
+<div class="line"><a name="l04014"></a><span class="lineno"> 4014</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> uint8_t VMA_ALLOCATION_FILL_PATTERN_DESTROYED = 0xEF;</div>
+<div class="line"><a name="l04015"></a><span class="lineno"> 4015</span>&#160; </div>
+<div class="line"><a name="l04016"></a><span class="lineno"> 4016</span>&#160;<span class="comment">/*******************************************************************************</span></div>
+<div class="line"><a name="l04017"></a><span class="lineno"> 4017</span>&#160;<span class="comment">END OF CONFIGURATION</span></div>
+<div class="line"><a name="l04018"></a><span class="lineno"> 4018</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l04019"></a><span class="lineno"> 4019</span>&#160; </div>
+<div class="line"><a name="l04020"></a><span class="lineno"> 4020</span>&#160;<span class="comment">// # Copy of some Vulkan definitions so we don&#39;t need to check their existence just to handle few constants.</span></div>
+<div class="line"><a name="l04021"></a><span class="lineno"> 4021</span>&#160; </div>
+<div class="line"><a name="l04022"></a><span class="lineno"> 4022</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> uint32_t VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD_COPY = 0x00000040;</div>
+<div class="line"><a name="l04023"></a><span class="lineno"> 4023</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> uint32_t VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD_COPY = 0x00000080;</div>
+<div class="line"><a name="l04024"></a><span class="lineno"> 4024</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> uint32_t VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_COPY = 0x00020000;</div>
+<div class="line"><a name="l04025"></a><span class="lineno"> 4025</span>&#160; </div>
+<div class="line"><a name="l04026"></a><span class="lineno"> 4026</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> uint32_t VMA_ALLOCATION_INTERNAL_STRATEGY_MIN_OFFSET = 0x10000000u;</div>
+<div class="line"><a name="l04027"></a><span class="lineno"> 4027</span>&#160; </div>
+<div class="line"><a name="l04028"></a><span class="lineno"> 4028</span>&#160;<span class="keyword">static</span> VkAllocationCallbacks VmaEmptyAllocationCallbacks = {</div>
+<div class="line"><a name="l04029"></a><span class="lineno"> 4029</span>&#160;    VMA_NULL, VMA_NULL, VMA_NULL, VMA_NULL, VMA_NULL, VMA_NULL };</div>
 <div class="line"><a name="l04030"></a><span class="lineno"> 4030</span>&#160; </div>
-<div class="line"><a name="l04031"></a><span class="lineno"> 4031</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> uint32_t VMA_FRAME_INDEX_LOST = UINT32_MAX;</div>
-<div class="line"><a name="l04032"></a><span class="lineno"> 4032</span>&#160; </div>
-<div class="line"><a name="l04033"></a><span class="lineno"> 4033</span>&#160;<span class="comment">// Decimal 2139416166, float NaN, little-endian binary 66 E6 84 7F.</span></div>
-<div class="line"><a name="l04034"></a><span class="lineno"> 4034</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> uint32_t VMA_CORRUPTION_DETECTION_MAGIC_VALUE = 0x7F84E666;</div>
-<div class="line"><a name="l04035"></a><span class="lineno"> 4035</span>&#160; </div>
-<div class="line"><a name="l04036"></a><span class="lineno"> 4036</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> uint8_t VMA_ALLOCATION_FILL_PATTERN_CREATED   = 0xDC;</div>
-<div class="line"><a name="l04037"></a><span class="lineno"> 4037</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> uint8_t VMA_ALLOCATION_FILL_PATTERN_DESTROYED = 0xEF;</div>
-<div class="line"><a name="l04038"></a><span class="lineno"> 4038</span>&#160; </div>
-<div class="line"><a name="l04039"></a><span class="lineno"> 4039</span>&#160;<span class="comment">/*******************************************************************************</span></div>
-<div class="line"><a name="l04040"></a><span class="lineno"> 4040</span>&#160;<span class="comment">END OF CONFIGURATION</span></div>
-<div class="line"><a name="l04041"></a><span class="lineno"> 4041</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l04042"></a><span class="lineno"> 4042</span>&#160; </div>
-<div class="line"><a name="l04043"></a><span class="lineno"> 4043</span>&#160;<span class="comment">// # Copy of some Vulkan definitions so we don&#39;t need to check their existence just to handle few constants.</span></div>
-<div class="line"><a name="l04044"></a><span class="lineno"> 4044</span>&#160; </div>
-<div class="line"><a name="l04045"></a><span class="lineno"> 4045</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> uint32_t VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD_COPY = 0x00000040;</div>
-<div class="line"><a name="l04046"></a><span class="lineno"> 4046</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> uint32_t VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD_COPY = 0x00000080;</div>
-<div class="line"><a name="l04047"></a><span class="lineno"> 4047</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> uint32_t VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_COPY = 0x00020000;</div>
-<div class="line"><a name="l04048"></a><span class="lineno"> 4048</span>&#160; </div>
-<div class="line"><a name="l04049"></a><span class="lineno"> 4049</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> uint32_t VMA_ALLOCATION_INTERNAL_STRATEGY_MIN_OFFSET = 0x10000000u;</div>
-<div class="line"><a name="l04050"></a><span class="lineno"> 4050</span>&#160; </div>
-<div class="line"><a name="l04051"></a><span class="lineno"> 4051</span>&#160;<span class="keyword">static</span> VkAllocationCallbacks VmaEmptyAllocationCallbacks = {</div>
-<div class="line"><a name="l04052"></a><span class="lineno"> 4052</span>&#160;    VMA_NULL, VMA_NULL, VMA_NULL, VMA_NULL, VMA_NULL, VMA_NULL };</div>
-<div class="line"><a name="l04053"></a><span class="lineno"> 4053</span>&#160; </div>
-<div class="line"><a name="l04054"></a><span class="lineno"> 4054</span>&#160;<span class="comment">// Returns number of bits set to 1 in (v).</span></div>
-<div class="line"><a name="l04055"></a><span class="lineno"> 4055</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> uint32_t VmaCountBitsSet(uint32_t v)</div>
-<div class="line"><a name="l04056"></a><span class="lineno"> 4056</span>&#160;{</div>
-<div class="line"><a name="l04057"></a><span class="lineno"> 4057</span>&#160;    uint32_t c = v - ((v &gt;&gt; 1) &amp; 0x55555555);</div>
-<div class="line"><a name="l04058"></a><span class="lineno"> 4058</span>&#160;    c = ((c &gt;&gt;  2) &amp; 0x33333333) + (c &amp; 0x33333333);</div>
-<div class="line"><a name="l04059"></a><span class="lineno"> 4059</span>&#160;    c = ((c &gt;&gt;  4) + c) &amp; 0x0F0F0F0F;</div>
-<div class="line"><a name="l04060"></a><span class="lineno"> 4060</span>&#160;    c = ((c &gt;&gt;  8) + c) &amp; 0x00FF00FF;</div>
-<div class="line"><a name="l04061"></a><span class="lineno"> 4061</span>&#160;    c = ((c &gt;&gt; 16) + c) &amp; 0x0000FFFF;</div>
-<div class="line"><a name="l04062"></a><span class="lineno"> 4062</span>&#160;    <span class="keywordflow">return</span> c;</div>
-<div class="line"><a name="l04063"></a><span class="lineno"> 4063</span>&#160;}</div>
-<div class="line"><a name="l04064"></a><span class="lineno"> 4064</span>&#160; </div>
-<div class="line"><a name="l04065"></a><span class="lineno"> 4065</span>&#160;<span class="comment">// Aligns given value up to nearest multiply of align value. For example: VmaAlignUp(11, 8) = 16.</span></div>
-<div class="line"><a name="l04066"></a><span class="lineno"> 4066</span>&#160;<span class="comment">// Use types like uint32_t, uint64_t as T.</span></div>
-<div class="line"><a name="l04067"></a><span class="lineno"> 4067</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l04068"></a><span class="lineno"> 4068</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> T VmaAlignUp(T val, T align)</div>
-<div class="line"><a name="l04069"></a><span class="lineno"> 4069</span>&#160;{</div>
-<div class="line"><a name="l04070"></a><span class="lineno"> 4070</span>&#160;    <span class="keywordflow">return</span> (val + align - 1) / align * align;</div>
-<div class="line"><a name="l04071"></a><span class="lineno"> 4071</span>&#160;}</div>
-<div class="line"><a name="l04072"></a><span class="lineno"> 4072</span>&#160;<span class="comment">// Aligns given value down to nearest multiply of align value. For example: VmaAlignUp(11, 8) = 8.</span></div>
-<div class="line"><a name="l04073"></a><span class="lineno"> 4073</span>&#160;<span class="comment">// Use types like uint32_t, uint64_t as T.</span></div>
-<div class="line"><a name="l04074"></a><span class="lineno"> 4074</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l04075"></a><span class="lineno"> 4075</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> T VmaAlignDown(T val, T align)</div>
-<div class="line"><a name="l04076"></a><span class="lineno"> 4076</span>&#160;{</div>
-<div class="line"><a name="l04077"></a><span class="lineno"> 4077</span>&#160;    <span class="keywordflow">return</span> val / align * align;</div>
-<div class="line"><a name="l04078"></a><span class="lineno"> 4078</span>&#160;}</div>
-<div class="line"><a name="l04079"></a><span class="lineno"> 4079</span>&#160; </div>
-<div class="line"><a name="l04080"></a><span class="lineno"> 4080</span>&#160;<span class="comment">// Division with mathematical rounding to nearest number.</span></div>
-<div class="line"><a name="l04081"></a><span class="lineno"> 4081</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l04082"></a><span class="lineno"> 4082</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> T VmaRoundDiv(T x, T y)</div>
-<div class="line"><a name="l04083"></a><span class="lineno"> 4083</span>&#160;{</div>
-<div class="line"><a name="l04084"></a><span class="lineno"> 4084</span>&#160;    <span class="keywordflow">return</span> (x + (y / (T)2)) / y;</div>
-<div class="line"><a name="l04085"></a><span class="lineno"> 4085</span>&#160;}</div>
-<div class="line"><a name="l04086"></a><span class="lineno"> 4086</span>&#160; </div>
-<div class="line"><a name="l04087"></a><span class="lineno"> 4087</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l04088"></a><span class="lineno"> 4088</span>&#160;<span class="comment">Returns true if given number is a power of two.</span></div>
-<div class="line"><a name="l04089"></a><span class="lineno"> 4089</span>&#160;<span class="comment">T must be unsigned integer number or signed integer but always nonnegative.</span></div>
-<div class="line"><a name="l04090"></a><span class="lineno"> 4090</span>&#160;<span class="comment">For 0 returns true.</span></div>
-<div class="line"><a name="l04091"></a><span class="lineno"> 4091</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l04092"></a><span class="lineno"> 4092</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l04093"></a><span class="lineno"> 4093</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> VmaIsPow2(T x)</div>
-<div class="line"><a name="l04094"></a><span class="lineno"> 4094</span>&#160;{</div>
-<div class="line"><a name="l04095"></a><span class="lineno"> 4095</span>&#160;    <span class="keywordflow">return</span> (x &amp; (x-1)) == 0;</div>
-<div class="line"><a name="l04096"></a><span class="lineno"> 4096</span>&#160;}</div>
-<div class="line"><a name="l04097"></a><span class="lineno"> 4097</span>&#160; </div>
-<div class="line"><a name="l04098"></a><span class="lineno"> 4098</span>&#160;<span class="comment">// Returns smallest power of 2 greater or equal to v.</span></div>
-<div class="line"><a name="l04099"></a><span class="lineno"> 4099</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> uint32_t VmaNextPow2(uint32_t v)</div>
-<div class="line"><a name="l04100"></a><span class="lineno"> 4100</span>&#160;{</div>
-<div class="line"><a name="l04101"></a><span class="lineno"> 4101</span>&#160;    v--;</div>
-<div class="line"><a name="l04102"></a><span class="lineno"> 4102</span>&#160;    v |= v &gt;&gt; 1;</div>
-<div class="line"><a name="l04103"></a><span class="lineno"> 4103</span>&#160;    v |= v &gt;&gt; 2;</div>
-<div class="line"><a name="l04104"></a><span class="lineno"> 4104</span>&#160;    v |= v &gt;&gt; 4;</div>
-<div class="line"><a name="l04105"></a><span class="lineno"> 4105</span>&#160;    v |= v &gt;&gt; 8;</div>
-<div class="line"><a name="l04106"></a><span class="lineno"> 4106</span>&#160;    v |= v &gt;&gt; 16;</div>
-<div class="line"><a name="l04107"></a><span class="lineno"> 4107</span>&#160;    v++;</div>
-<div class="line"><a name="l04108"></a><span class="lineno"> 4108</span>&#160;    <span class="keywordflow">return</span> v;</div>
-<div class="line"><a name="l04109"></a><span class="lineno"> 4109</span>&#160;}</div>
-<div class="line"><a name="l04110"></a><span class="lineno"> 4110</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> uint64_t VmaNextPow2(uint64_t v)</div>
-<div class="line"><a name="l04111"></a><span class="lineno"> 4111</span>&#160;{</div>
-<div class="line"><a name="l04112"></a><span class="lineno"> 4112</span>&#160;    v--;</div>
+<div class="line"><a name="l04031"></a><span class="lineno"> 4031</span>&#160;<span class="comment">// Returns number of bits set to 1 in (v).</span></div>
+<div class="line"><a name="l04032"></a><span class="lineno"> 4032</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> uint32_t VmaCountBitsSet(uint32_t v)</div>
+<div class="line"><a name="l04033"></a><span class="lineno"> 4033</span>&#160;{</div>
+<div class="line"><a name="l04034"></a><span class="lineno"> 4034</span>&#160;    uint32_t c = v - ((v &gt;&gt; 1) &amp; 0x55555555);</div>
+<div class="line"><a name="l04035"></a><span class="lineno"> 4035</span>&#160;    c = ((c &gt;&gt;  2) &amp; 0x33333333) + (c &amp; 0x33333333);</div>
+<div class="line"><a name="l04036"></a><span class="lineno"> 4036</span>&#160;    c = ((c &gt;&gt;  4) + c) &amp; 0x0F0F0F0F;</div>
+<div class="line"><a name="l04037"></a><span class="lineno"> 4037</span>&#160;    c = ((c &gt;&gt;  8) + c) &amp; 0x00FF00FF;</div>
+<div class="line"><a name="l04038"></a><span class="lineno"> 4038</span>&#160;    c = ((c &gt;&gt; 16) + c) &amp; 0x0000FFFF;</div>
+<div class="line"><a name="l04039"></a><span class="lineno"> 4039</span>&#160;    <span class="keywordflow">return</span> c;</div>
+<div class="line"><a name="l04040"></a><span class="lineno"> 4040</span>&#160;}</div>
+<div class="line"><a name="l04041"></a><span class="lineno"> 4041</span>&#160; </div>
+<div class="line"><a name="l04042"></a><span class="lineno"> 4042</span>&#160;<span class="comment">// Aligns given value up to nearest multiply of align value. For example: VmaAlignUp(11, 8) = 16.</span></div>
+<div class="line"><a name="l04043"></a><span class="lineno"> 4043</span>&#160;<span class="comment">// Use types like uint32_t, uint64_t as T.</span></div>
+<div class="line"><a name="l04044"></a><span class="lineno"> 4044</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l04045"></a><span class="lineno"> 4045</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> T VmaAlignUp(T val, T align)</div>
+<div class="line"><a name="l04046"></a><span class="lineno"> 4046</span>&#160;{</div>
+<div class="line"><a name="l04047"></a><span class="lineno"> 4047</span>&#160;    <span class="keywordflow">return</span> (val + align - 1) / align * align;</div>
+<div class="line"><a name="l04048"></a><span class="lineno"> 4048</span>&#160;}</div>
+<div class="line"><a name="l04049"></a><span class="lineno"> 4049</span>&#160;<span class="comment">// Aligns given value down to nearest multiply of align value. For example: VmaAlignUp(11, 8) = 8.</span></div>
+<div class="line"><a name="l04050"></a><span class="lineno"> 4050</span>&#160;<span class="comment">// Use types like uint32_t, uint64_t as T.</span></div>
+<div class="line"><a name="l04051"></a><span class="lineno"> 4051</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l04052"></a><span class="lineno"> 4052</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> T VmaAlignDown(T val, T align)</div>
+<div class="line"><a name="l04053"></a><span class="lineno"> 4053</span>&#160;{</div>
+<div class="line"><a name="l04054"></a><span class="lineno"> 4054</span>&#160;    <span class="keywordflow">return</span> val / align * align;</div>
+<div class="line"><a name="l04055"></a><span class="lineno"> 4055</span>&#160;}</div>
+<div class="line"><a name="l04056"></a><span class="lineno"> 4056</span>&#160; </div>
+<div class="line"><a name="l04057"></a><span class="lineno"> 4057</span>&#160;<span class="comment">// Division with mathematical rounding to nearest number.</span></div>
+<div class="line"><a name="l04058"></a><span class="lineno"> 4058</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l04059"></a><span class="lineno"> 4059</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> T VmaRoundDiv(T x, T y)</div>
+<div class="line"><a name="l04060"></a><span class="lineno"> 4060</span>&#160;{</div>
+<div class="line"><a name="l04061"></a><span class="lineno"> 4061</span>&#160;    <span class="keywordflow">return</span> (x + (y / (T)2)) / y;</div>
+<div class="line"><a name="l04062"></a><span class="lineno"> 4062</span>&#160;}</div>
+<div class="line"><a name="l04063"></a><span class="lineno"> 4063</span>&#160; </div>
+<div class="line"><a name="l04064"></a><span class="lineno"> 4064</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l04065"></a><span class="lineno"> 4065</span>&#160;<span class="comment">Returns true if given number is a power of two.</span></div>
+<div class="line"><a name="l04066"></a><span class="lineno"> 4066</span>&#160;<span class="comment">T must be unsigned integer number or signed integer but always nonnegative.</span></div>
+<div class="line"><a name="l04067"></a><span class="lineno"> 4067</span>&#160;<span class="comment">For 0 returns true.</span></div>
+<div class="line"><a name="l04068"></a><span class="lineno"> 4068</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l04069"></a><span class="lineno"> 4069</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l04070"></a><span class="lineno"> 4070</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> VmaIsPow2(T x)</div>
+<div class="line"><a name="l04071"></a><span class="lineno"> 4071</span>&#160;{</div>
+<div class="line"><a name="l04072"></a><span class="lineno"> 4072</span>&#160;    <span class="keywordflow">return</span> (x &amp; (x-1)) == 0;</div>
+<div class="line"><a name="l04073"></a><span class="lineno"> 4073</span>&#160;}</div>
+<div class="line"><a name="l04074"></a><span class="lineno"> 4074</span>&#160; </div>
+<div class="line"><a name="l04075"></a><span class="lineno"> 4075</span>&#160;<span class="comment">// Returns smallest power of 2 greater or equal to v.</span></div>
+<div class="line"><a name="l04076"></a><span class="lineno"> 4076</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> uint32_t VmaNextPow2(uint32_t v)</div>
+<div class="line"><a name="l04077"></a><span class="lineno"> 4077</span>&#160;{</div>
+<div class="line"><a name="l04078"></a><span class="lineno"> 4078</span>&#160;    v--;</div>
+<div class="line"><a name="l04079"></a><span class="lineno"> 4079</span>&#160;    v |= v &gt;&gt; 1;</div>
+<div class="line"><a name="l04080"></a><span class="lineno"> 4080</span>&#160;    v |= v &gt;&gt; 2;</div>
+<div class="line"><a name="l04081"></a><span class="lineno"> 4081</span>&#160;    v |= v &gt;&gt; 4;</div>
+<div class="line"><a name="l04082"></a><span class="lineno"> 4082</span>&#160;    v |= v &gt;&gt; 8;</div>
+<div class="line"><a name="l04083"></a><span class="lineno"> 4083</span>&#160;    v |= v &gt;&gt; 16;</div>
+<div class="line"><a name="l04084"></a><span class="lineno"> 4084</span>&#160;    v++;</div>
+<div class="line"><a name="l04085"></a><span class="lineno"> 4085</span>&#160;    <span class="keywordflow">return</span> v;</div>
+<div class="line"><a name="l04086"></a><span class="lineno"> 4086</span>&#160;}</div>
+<div class="line"><a name="l04087"></a><span class="lineno"> 4087</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> uint64_t VmaNextPow2(uint64_t v)</div>
+<div class="line"><a name="l04088"></a><span class="lineno"> 4088</span>&#160;{</div>
+<div class="line"><a name="l04089"></a><span class="lineno"> 4089</span>&#160;    v--;</div>
+<div class="line"><a name="l04090"></a><span class="lineno"> 4090</span>&#160;    v |= v &gt;&gt; 1;</div>
+<div class="line"><a name="l04091"></a><span class="lineno"> 4091</span>&#160;    v |= v &gt;&gt; 2;</div>
+<div class="line"><a name="l04092"></a><span class="lineno"> 4092</span>&#160;    v |= v &gt;&gt; 4;</div>
+<div class="line"><a name="l04093"></a><span class="lineno"> 4093</span>&#160;    v |= v &gt;&gt; 8;</div>
+<div class="line"><a name="l04094"></a><span class="lineno"> 4094</span>&#160;    v |= v &gt;&gt; 16;</div>
+<div class="line"><a name="l04095"></a><span class="lineno"> 4095</span>&#160;    v |= v &gt;&gt; 32;</div>
+<div class="line"><a name="l04096"></a><span class="lineno"> 4096</span>&#160;    v++;</div>
+<div class="line"><a name="l04097"></a><span class="lineno"> 4097</span>&#160;    <span class="keywordflow">return</span> v;</div>
+<div class="line"><a name="l04098"></a><span class="lineno"> 4098</span>&#160;}</div>
+<div class="line"><a name="l04099"></a><span class="lineno"> 4099</span>&#160; </div>
+<div class="line"><a name="l04100"></a><span class="lineno"> 4100</span>&#160;<span class="comment">// Returns largest power of 2 less or equal to v.</span></div>
+<div class="line"><a name="l04101"></a><span class="lineno"> 4101</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> uint32_t VmaPrevPow2(uint32_t v)</div>
+<div class="line"><a name="l04102"></a><span class="lineno"> 4102</span>&#160;{</div>
+<div class="line"><a name="l04103"></a><span class="lineno"> 4103</span>&#160;    v |= v &gt;&gt; 1;</div>
+<div class="line"><a name="l04104"></a><span class="lineno"> 4104</span>&#160;    v |= v &gt;&gt; 2;</div>
+<div class="line"><a name="l04105"></a><span class="lineno"> 4105</span>&#160;    v |= v &gt;&gt; 4;</div>
+<div class="line"><a name="l04106"></a><span class="lineno"> 4106</span>&#160;    v |= v &gt;&gt; 8;</div>
+<div class="line"><a name="l04107"></a><span class="lineno"> 4107</span>&#160;    v |= v &gt;&gt; 16;</div>
+<div class="line"><a name="l04108"></a><span class="lineno"> 4108</span>&#160;    v = v ^ (v &gt;&gt; 1);</div>
+<div class="line"><a name="l04109"></a><span class="lineno"> 4109</span>&#160;    <span class="keywordflow">return</span> v;</div>
+<div class="line"><a name="l04110"></a><span class="lineno"> 4110</span>&#160;}</div>
+<div class="line"><a name="l04111"></a><span class="lineno"> 4111</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> uint64_t VmaPrevPow2(uint64_t v)</div>
+<div class="line"><a name="l04112"></a><span class="lineno"> 4112</span>&#160;{</div>
 <div class="line"><a name="l04113"></a><span class="lineno"> 4113</span>&#160;    v |= v &gt;&gt; 1;</div>
 <div class="line"><a name="l04114"></a><span class="lineno"> 4114</span>&#160;    v |= v &gt;&gt; 2;</div>
 <div class="line"><a name="l04115"></a><span class="lineno"> 4115</span>&#160;    v |= v &gt;&gt; 4;</div>
 <div class="line"><a name="l04116"></a><span class="lineno"> 4116</span>&#160;    v |= v &gt;&gt; 8;</div>
 <div class="line"><a name="l04117"></a><span class="lineno"> 4117</span>&#160;    v |= v &gt;&gt; 16;</div>
 <div class="line"><a name="l04118"></a><span class="lineno"> 4118</span>&#160;    v |= v &gt;&gt; 32;</div>
-<div class="line"><a name="l04119"></a><span class="lineno"> 4119</span>&#160;    v++;</div>
+<div class="line"><a name="l04119"></a><span class="lineno"> 4119</span>&#160;    v = v ^ (v &gt;&gt; 1);</div>
 <div class="line"><a name="l04120"></a><span class="lineno"> 4120</span>&#160;    <span class="keywordflow">return</span> v;</div>
 <div class="line"><a name="l04121"></a><span class="lineno"> 4121</span>&#160;}</div>
 <div class="line"><a name="l04122"></a><span class="lineno"> 4122</span>&#160; </div>
-<div class="line"><a name="l04123"></a><span class="lineno"> 4123</span>&#160;<span class="comment">// Returns largest power of 2 less or equal to v.</span></div>
-<div class="line"><a name="l04124"></a><span class="lineno"> 4124</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> uint32_t VmaPrevPow2(uint32_t v)</div>
-<div class="line"><a name="l04125"></a><span class="lineno"> 4125</span>&#160;{</div>
-<div class="line"><a name="l04126"></a><span class="lineno"> 4126</span>&#160;    v |= v &gt;&gt; 1;</div>
-<div class="line"><a name="l04127"></a><span class="lineno"> 4127</span>&#160;    v |= v &gt;&gt; 2;</div>
-<div class="line"><a name="l04128"></a><span class="lineno"> 4128</span>&#160;    v |= v &gt;&gt; 4;</div>
-<div class="line"><a name="l04129"></a><span class="lineno"> 4129</span>&#160;    v |= v &gt;&gt; 8;</div>
-<div class="line"><a name="l04130"></a><span class="lineno"> 4130</span>&#160;    v |= v &gt;&gt; 16;</div>
-<div class="line"><a name="l04131"></a><span class="lineno"> 4131</span>&#160;    v = v ^ (v &gt;&gt; 1);</div>
-<div class="line"><a name="l04132"></a><span class="lineno"> 4132</span>&#160;    <span class="keywordflow">return</span> v;</div>
-<div class="line"><a name="l04133"></a><span class="lineno"> 4133</span>&#160;}</div>
-<div class="line"><a name="l04134"></a><span class="lineno"> 4134</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> uint64_t VmaPrevPow2(uint64_t v)</div>
-<div class="line"><a name="l04135"></a><span class="lineno"> 4135</span>&#160;{</div>
-<div class="line"><a name="l04136"></a><span class="lineno"> 4136</span>&#160;    v |= v &gt;&gt; 1;</div>
-<div class="line"><a name="l04137"></a><span class="lineno"> 4137</span>&#160;    v |= v &gt;&gt; 2;</div>
-<div class="line"><a name="l04138"></a><span class="lineno"> 4138</span>&#160;    v |= v &gt;&gt; 4;</div>
-<div class="line"><a name="l04139"></a><span class="lineno"> 4139</span>&#160;    v |= v &gt;&gt; 8;</div>
-<div class="line"><a name="l04140"></a><span class="lineno"> 4140</span>&#160;    v |= v &gt;&gt; 16;</div>
-<div class="line"><a name="l04141"></a><span class="lineno"> 4141</span>&#160;    v |= v &gt;&gt; 32;</div>
-<div class="line"><a name="l04142"></a><span class="lineno"> 4142</span>&#160;    v = v ^ (v &gt;&gt; 1);</div>
-<div class="line"><a name="l04143"></a><span class="lineno"> 4143</span>&#160;    <span class="keywordflow">return</span> v;</div>
+<div class="line"><a name="l04123"></a><span class="lineno"> 4123</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> VmaStrIsEmpty(<span class="keyword">const</span> <span class="keywordtype">char</span>* pStr)</div>
+<div class="line"><a name="l04124"></a><span class="lineno"> 4124</span>&#160;{</div>
+<div class="line"><a name="l04125"></a><span class="lineno"> 4125</span>&#160;    <span class="keywordflow">return</span> pStr == VMA_NULL || *pStr == <span class="charliteral">&#39;\0&#39;</span>;</div>
+<div class="line"><a name="l04126"></a><span class="lineno"> 4126</span>&#160;}</div>
+<div class="line"><a name="l04127"></a><span class="lineno"> 4127</span>&#160; </div>
+<div class="line"><a name="l04128"></a><span class="lineno"> 4128</span>&#160;<span class="preprocessor">#if VMA_STATS_STRING_ENABLED</span></div>
+<div class="line"><a name="l04129"></a><span class="lineno"> 4129</span>&#160; </div>
+<div class="line"><a name="l04130"></a><span class="lineno"> 4130</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* VmaAlgorithmToStr(uint32_t algorithm)</div>
+<div class="line"><a name="l04131"></a><span class="lineno"> 4131</span>&#160;{</div>
+<div class="line"><a name="l04132"></a><span class="lineno"> 4132</span>&#160;    <span class="keywordflow">switch</span>(algorithm)</div>
+<div class="line"><a name="l04133"></a><span class="lineno"> 4133</span>&#160;    {</div>
+<div class="line"><a name="l04134"></a><span class="lineno"> 4134</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a13c8a444197c67866be9cb05599fc726">VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT</a>:</div>
+<div class="line"><a name="l04135"></a><span class="lineno"> 4135</span>&#160;        <span class="keywordflow">return</span> <span class="stringliteral">&quot;Linear&quot;</span>;</div>
+<div class="line"><a name="l04136"></a><span class="lineno"> 4136</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a97a0dc38e5161b780594d998d313d35e">VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT</a>:</div>
+<div class="line"><a name="l04137"></a><span class="lineno"> 4137</span>&#160;        <span class="keywordflow">return</span> <span class="stringliteral">&quot;Buddy&quot;</span>;</div>
+<div class="line"><a name="l04138"></a><span class="lineno"> 4138</span>&#160;    <span class="keywordflow">case</span> 0:</div>
+<div class="line"><a name="l04139"></a><span class="lineno"> 4139</span>&#160;        <span class="keywordflow">return</span> <span class="stringliteral">&quot;Default&quot;</span>;</div>
+<div class="line"><a name="l04140"></a><span class="lineno"> 4140</span>&#160;    <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l04141"></a><span class="lineno"> 4141</span>&#160;        VMA_ASSERT(0);</div>
+<div class="line"><a name="l04142"></a><span class="lineno"> 4142</span>&#160;        <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div>
+<div class="line"><a name="l04143"></a><span class="lineno"> 4143</span>&#160;    }</div>
 <div class="line"><a name="l04144"></a><span class="lineno"> 4144</span>&#160;}</div>
 <div class="line"><a name="l04145"></a><span class="lineno"> 4145</span>&#160; </div>
-<div class="line"><a name="l04146"></a><span class="lineno"> 4146</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> VmaStrIsEmpty(<span class="keyword">const</span> <span class="keywordtype">char</span>* pStr)</div>
-<div class="line"><a name="l04147"></a><span class="lineno"> 4147</span>&#160;{</div>
-<div class="line"><a name="l04148"></a><span class="lineno"> 4148</span>&#160;    <span class="keywordflow">return</span> pStr == VMA_NULL || *pStr == <span class="charliteral">&#39;\0&#39;</span>;</div>
-<div class="line"><a name="l04149"></a><span class="lineno"> 4149</span>&#160;}</div>
-<div class="line"><a name="l04150"></a><span class="lineno"> 4150</span>&#160; </div>
-<div class="line"><a name="l04151"></a><span class="lineno"> 4151</span>&#160;<span class="preprocessor">#if VMA_STATS_STRING_ENABLED</span></div>
-<div class="line"><a name="l04152"></a><span class="lineno"> 4152</span>&#160; </div>
-<div class="line"><a name="l04153"></a><span class="lineno"> 4153</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* VmaAlgorithmToStr(uint32_t algorithm)</div>
-<div class="line"><a name="l04154"></a><span class="lineno"> 4154</span>&#160;{</div>
-<div class="line"><a name="l04155"></a><span class="lineno"> 4155</span>&#160;    <span class="keywordflow">switch</span>(algorithm)</div>
+<div class="line"><a name="l04146"></a><span class="lineno"> 4146</span>&#160;<span class="preprocessor">#endif // #if VMA_STATS_STRING_ENABLED</span></div>
+<div class="line"><a name="l04147"></a><span class="lineno"> 4147</span>&#160; </div>
+<div class="line"><a name="l04148"></a><span class="lineno"> 4148</span>&#160;<span class="preprocessor">#ifndef VMA_SORT</span></div>
+<div class="line"><a name="l04149"></a><span class="lineno"> 4149</span>&#160; </div>
+<div class="line"><a name="l04150"></a><span class="lineno"> 4150</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Iterator, <span class="keyword">typename</span> Compare&gt;</div>
+<div class="line"><a name="l04151"></a><span class="lineno"> 4151</span>&#160;Iterator VmaQuickSortPartition(Iterator beg, Iterator end, Compare cmp)</div>
+<div class="line"><a name="l04152"></a><span class="lineno"> 4152</span>&#160;{</div>
+<div class="line"><a name="l04153"></a><span class="lineno"> 4153</span>&#160;    Iterator centerValue = end; --centerValue;</div>
+<div class="line"><a name="l04154"></a><span class="lineno"> 4154</span>&#160;    Iterator insertIndex = beg;</div>
+<div class="line"><a name="l04155"></a><span class="lineno"> 4155</span>&#160;    <span class="keywordflow">for</span>(Iterator memTypeIndex = beg; memTypeIndex &lt; centerValue; ++memTypeIndex)</div>
 <div class="line"><a name="l04156"></a><span class="lineno"> 4156</span>&#160;    {</div>
-<div class="line"><a name="l04157"></a><span class="lineno"> 4157</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a13c8a444197c67866be9cb05599fc726">VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT</a>:</div>
-<div class="line"><a name="l04158"></a><span class="lineno"> 4158</span>&#160;        <span class="keywordflow">return</span> <span class="stringliteral">&quot;Linear&quot;</span>;</div>
-<div class="line"><a name="l04159"></a><span class="lineno"> 4159</span>&#160;    <span class="keywordflow">case</span> <a class="code" href="vk__mem__alloc_8h.html#a9a7c45f9c863695d98c83fa5ac940fe7a97a0dc38e5161b780594d998d313d35e">VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT</a>:</div>
-<div class="line"><a name="l04160"></a><span class="lineno"> 4160</span>&#160;        <span class="keywordflow">return</span> <span class="stringliteral">&quot;Buddy&quot;</span>;</div>
-<div class="line"><a name="l04161"></a><span class="lineno"> 4161</span>&#160;    <span class="keywordflow">case</span> 0:</div>
-<div class="line"><a name="l04162"></a><span class="lineno"> 4162</span>&#160;        <span class="keywordflow">return</span> <span class="stringliteral">&quot;Default&quot;</span>;</div>
-<div class="line"><a name="l04163"></a><span class="lineno"> 4163</span>&#160;    <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l04164"></a><span class="lineno"> 4164</span>&#160;        VMA_ASSERT(0);</div>
-<div class="line"><a name="l04165"></a><span class="lineno"> 4165</span>&#160;        <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div>
-<div class="line"><a name="l04166"></a><span class="lineno"> 4166</span>&#160;    }</div>
-<div class="line"><a name="l04167"></a><span class="lineno"> 4167</span>&#160;}</div>
-<div class="line"><a name="l04168"></a><span class="lineno"> 4168</span>&#160; </div>
-<div class="line"><a name="l04169"></a><span class="lineno"> 4169</span>&#160;<span class="preprocessor">#endif // #if VMA_STATS_STRING_ENABLED</span></div>
-<div class="line"><a name="l04170"></a><span class="lineno"> 4170</span>&#160; </div>
-<div class="line"><a name="l04171"></a><span class="lineno"> 4171</span>&#160;<span class="preprocessor">#ifndef VMA_SORT</span></div>
+<div class="line"><a name="l04157"></a><span class="lineno"> 4157</span>&#160;        <span class="keywordflow">if</span>(cmp(*memTypeIndex, *centerValue))</div>
+<div class="line"><a name="l04158"></a><span class="lineno"> 4158</span>&#160;        {</div>
+<div class="line"><a name="l04159"></a><span class="lineno"> 4159</span>&#160;            <span class="keywordflow">if</span>(insertIndex != memTypeIndex)</div>
+<div class="line"><a name="l04160"></a><span class="lineno"> 4160</span>&#160;            {</div>
+<div class="line"><a name="l04161"></a><span class="lineno"> 4161</span>&#160;                VMA_SWAP(*memTypeIndex, *insertIndex);</div>
+<div class="line"><a name="l04162"></a><span class="lineno"> 4162</span>&#160;            }</div>
+<div class="line"><a name="l04163"></a><span class="lineno"> 4163</span>&#160;            ++insertIndex;</div>
+<div class="line"><a name="l04164"></a><span class="lineno"> 4164</span>&#160;        }</div>
+<div class="line"><a name="l04165"></a><span class="lineno"> 4165</span>&#160;    }</div>
+<div class="line"><a name="l04166"></a><span class="lineno"> 4166</span>&#160;    <span class="keywordflow">if</span>(insertIndex != centerValue)</div>
+<div class="line"><a name="l04167"></a><span class="lineno"> 4167</span>&#160;    {</div>
+<div class="line"><a name="l04168"></a><span class="lineno"> 4168</span>&#160;        VMA_SWAP(*insertIndex, *centerValue);</div>
+<div class="line"><a name="l04169"></a><span class="lineno"> 4169</span>&#160;    }</div>
+<div class="line"><a name="l04170"></a><span class="lineno"> 4170</span>&#160;    <span class="keywordflow">return</span> insertIndex;</div>
+<div class="line"><a name="l04171"></a><span class="lineno"> 4171</span>&#160;}</div>
 <div class="line"><a name="l04172"></a><span class="lineno"> 4172</span>&#160; </div>
 <div class="line"><a name="l04173"></a><span class="lineno"> 4173</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Iterator, <span class="keyword">typename</span> Compare&gt;</div>
-<div class="line"><a name="l04174"></a><span class="lineno"> 4174</span>&#160;Iterator VmaQuickSortPartition(Iterator beg, Iterator end, Compare cmp)</div>
+<div class="line"><a name="l04174"></a><span class="lineno"> 4174</span>&#160;<span class="keywordtype">void</span> VmaQuickSort(Iterator beg, Iterator end, Compare cmp)</div>
 <div class="line"><a name="l04175"></a><span class="lineno"> 4175</span>&#160;{</div>
-<div class="line"><a name="l04176"></a><span class="lineno"> 4176</span>&#160;    Iterator centerValue = end; --centerValue;</div>
-<div class="line"><a name="l04177"></a><span class="lineno"> 4177</span>&#160;    Iterator insertIndex = beg;</div>
-<div class="line"><a name="l04178"></a><span class="lineno"> 4178</span>&#160;    <span class="keywordflow">for</span>(Iterator memTypeIndex = beg; memTypeIndex &lt; centerValue; ++memTypeIndex)</div>
-<div class="line"><a name="l04179"></a><span class="lineno"> 4179</span>&#160;    {</div>
-<div class="line"><a name="l04180"></a><span class="lineno"> 4180</span>&#160;        <span class="keywordflow">if</span>(cmp(*memTypeIndex, *centerValue))</div>
-<div class="line"><a name="l04181"></a><span class="lineno"> 4181</span>&#160;        {</div>
-<div class="line"><a name="l04182"></a><span class="lineno"> 4182</span>&#160;            <span class="keywordflow">if</span>(insertIndex != memTypeIndex)</div>
-<div class="line"><a name="l04183"></a><span class="lineno"> 4183</span>&#160;            {</div>
-<div class="line"><a name="l04184"></a><span class="lineno"> 4184</span>&#160;                VMA_SWAP(*memTypeIndex, *insertIndex);</div>
-<div class="line"><a name="l04185"></a><span class="lineno"> 4185</span>&#160;            }</div>
-<div class="line"><a name="l04186"></a><span class="lineno"> 4186</span>&#160;            ++insertIndex;</div>
-<div class="line"><a name="l04187"></a><span class="lineno"> 4187</span>&#160;        }</div>
-<div class="line"><a name="l04188"></a><span class="lineno"> 4188</span>&#160;    }</div>
-<div class="line"><a name="l04189"></a><span class="lineno"> 4189</span>&#160;    <span class="keywordflow">if</span>(insertIndex != centerValue)</div>
-<div class="line"><a name="l04190"></a><span class="lineno"> 4190</span>&#160;    {</div>
-<div class="line"><a name="l04191"></a><span class="lineno"> 4191</span>&#160;        VMA_SWAP(*insertIndex, *centerValue);</div>
-<div class="line"><a name="l04192"></a><span class="lineno"> 4192</span>&#160;    }</div>
-<div class="line"><a name="l04193"></a><span class="lineno"> 4193</span>&#160;    <span class="keywordflow">return</span> insertIndex;</div>
-<div class="line"><a name="l04194"></a><span class="lineno"> 4194</span>&#160;}</div>
-<div class="line"><a name="l04195"></a><span class="lineno"> 4195</span>&#160; </div>
-<div class="line"><a name="l04196"></a><span class="lineno"> 4196</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> Iterator, <span class="keyword">typename</span> Compare&gt;</div>
-<div class="line"><a name="l04197"></a><span class="lineno"> 4197</span>&#160;<span class="keywordtype">void</span> VmaQuickSort(Iterator beg, Iterator end, Compare cmp)</div>
-<div class="line"><a name="l04198"></a><span class="lineno"> 4198</span>&#160;{</div>
-<div class="line"><a name="l04199"></a><span class="lineno"> 4199</span>&#160;    <span class="keywordflow">if</span>(beg &lt; end)</div>
-<div class="line"><a name="l04200"></a><span class="lineno"> 4200</span>&#160;    {</div>
-<div class="line"><a name="l04201"></a><span class="lineno"> 4201</span>&#160;        Iterator it = VmaQuickSortPartition&lt;Iterator, Compare&gt;(beg, end, cmp);</div>
-<div class="line"><a name="l04202"></a><span class="lineno"> 4202</span>&#160;        VmaQuickSort&lt;Iterator, Compare&gt;(beg, it, cmp);</div>
-<div class="line"><a name="l04203"></a><span class="lineno"> 4203</span>&#160;        VmaQuickSort&lt;Iterator, Compare&gt;(it + 1, end, cmp);</div>
-<div class="line"><a name="l04204"></a><span class="lineno"> 4204</span>&#160;    }</div>
-<div class="line"><a name="l04205"></a><span class="lineno"> 4205</span>&#160;}</div>
-<div class="line"><a name="l04206"></a><span class="lineno"> 4206</span>&#160; </div>
-<div class="line"><a name="l04207"></a><span class="lineno"> 4207</span>&#160;<span class="preprocessor">#define VMA_SORT(beg, end, cmp) VmaQuickSort(beg, end, cmp)</span></div>
+<div class="line"><a name="l04176"></a><span class="lineno"> 4176</span>&#160;    <span class="keywordflow">if</span>(beg &lt; end)</div>
+<div class="line"><a name="l04177"></a><span class="lineno"> 4177</span>&#160;    {</div>
+<div class="line"><a name="l04178"></a><span class="lineno"> 4178</span>&#160;        Iterator it = VmaQuickSortPartition&lt;Iterator, Compare&gt;(beg, end, cmp);</div>
+<div class="line"><a name="l04179"></a><span class="lineno"> 4179</span>&#160;        VmaQuickSort&lt;Iterator, Compare&gt;(beg, it, cmp);</div>
+<div class="line"><a name="l04180"></a><span class="lineno"> 4180</span>&#160;        VmaQuickSort&lt;Iterator, Compare&gt;(it + 1, end, cmp);</div>
+<div class="line"><a name="l04181"></a><span class="lineno"> 4181</span>&#160;    }</div>
+<div class="line"><a name="l04182"></a><span class="lineno"> 4182</span>&#160;}</div>
+<div class="line"><a name="l04183"></a><span class="lineno"> 4183</span>&#160; </div>
+<div class="line"><a name="l04184"></a><span class="lineno"> 4184</span>&#160;<span class="preprocessor">#define VMA_SORT(beg, end, cmp) VmaQuickSort(beg, end, cmp)</span></div>
+<div class="line"><a name="l04185"></a><span class="lineno"> 4185</span>&#160; </div>
+<div class="line"><a name="l04186"></a><span class="lineno"> 4186</span>&#160;<span class="preprocessor">#endif // #ifndef VMA_SORT</span></div>
+<div class="line"><a name="l04187"></a><span class="lineno"> 4187</span>&#160; </div>
+<div class="line"><a name="l04188"></a><span class="lineno"> 4188</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l04189"></a><span class="lineno"> 4189</span>&#160;<span class="comment">Returns true if two memory blocks occupy overlapping pages.</span></div>
+<div class="line"><a name="l04190"></a><span class="lineno"> 4190</span>&#160;<span class="comment">ResourceA must be in less memory offset than ResourceB.</span></div>
+<div class="line"><a name="l04191"></a><span class="lineno"> 4191</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l04192"></a><span class="lineno"> 4192</span>&#160;<span class="comment">Algorithm is based on &quot;Vulkan 1.0.39 - A Specification (with all registered Vulkan extensions)&quot;</span></div>
+<div class="line"><a name="l04193"></a><span class="lineno"> 4193</span>&#160;<span class="comment">chapter 11.6 &quot;Resource Memory Association&quot;, paragraph &quot;Buffer-Image Granularity&quot;.</span></div>
+<div class="line"><a name="l04194"></a><span class="lineno"> 4194</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l04195"></a><span class="lineno"> 4195</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> VmaBlocksOnSamePage(</div>
+<div class="line"><a name="l04196"></a><span class="lineno"> 4196</span>&#160;    VkDeviceSize resourceAOffset,</div>
+<div class="line"><a name="l04197"></a><span class="lineno"> 4197</span>&#160;    VkDeviceSize resourceASize,</div>
+<div class="line"><a name="l04198"></a><span class="lineno"> 4198</span>&#160;    VkDeviceSize resourceBOffset,</div>
+<div class="line"><a name="l04199"></a><span class="lineno"> 4199</span>&#160;    VkDeviceSize pageSize)</div>
+<div class="line"><a name="l04200"></a><span class="lineno"> 4200</span>&#160;{</div>
+<div class="line"><a name="l04201"></a><span class="lineno"> 4201</span>&#160;    VMA_ASSERT(resourceAOffset + resourceASize &lt;= resourceBOffset &amp;&amp; resourceASize &gt; 0 &amp;&amp; pageSize &gt; 0);</div>
+<div class="line"><a name="l04202"></a><span class="lineno"> 4202</span>&#160;    VkDeviceSize resourceAEnd = resourceAOffset + resourceASize - 1;</div>
+<div class="line"><a name="l04203"></a><span class="lineno"> 4203</span>&#160;    VkDeviceSize resourceAEndPage = resourceAEnd &amp; ~(pageSize - 1);</div>
+<div class="line"><a name="l04204"></a><span class="lineno"> 4204</span>&#160;    VkDeviceSize resourceBStart = resourceBOffset;</div>
+<div class="line"><a name="l04205"></a><span class="lineno"> 4205</span>&#160;    VkDeviceSize resourceBStartPage = resourceBStart &amp; ~(pageSize - 1);</div>
+<div class="line"><a name="l04206"></a><span class="lineno"> 4206</span>&#160;    <span class="keywordflow">return</span> resourceAEndPage == resourceBStartPage;</div>
+<div class="line"><a name="l04207"></a><span class="lineno"> 4207</span>&#160;}</div>
 <div class="line"><a name="l04208"></a><span class="lineno"> 4208</span>&#160; </div>
-<div class="line"><a name="l04209"></a><span class="lineno"> 4209</span>&#160;<span class="preprocessor">#endif // #ifndef VMA_SORT</span></div>
-<div class="line"><a name="l04210"></a><span class="lineno"> 4210</span>&#160; </div>
-<div class="line"><a name="l04211"></a><span class="lineno"> 4211</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l04212"></a><span class="lineno"> 4212</span>&#160;<span class="comment">Returns true if two memory blocks occupy overlapping pages.</span></div>
-<div class="line"><a name="l04213"></a><span class="lineno"> 4213</span>&#160;<span class="comment">ResourceA must be in less memory offset than ResourceB.</span></div>
-<div class="line"><a name="l04214"></a><span class="lineno"> 4214</span>&#160;<span class="comment"></span> </div>
-<div class="line"><a name="l04215"></a><span class="lineno"> 4215</span>&#160;<span class="comment">Algorithm is based on &quot;Vulkan 1.0.39 - A Specification (with all registered Vulkan extensions)&quot;</span></div>
-<div class="line"><a name="l04216"></a><span class="lineno"> 4216</span>&#160;<span class="comment">chapter 11.6 &quot;Resource Memory Association&quot;, paragraph &quot;Buffer-Image Granularity&quot;.</span></div>
-<div class="line"><a name="l04217"></a><span class="lineno"> 4217</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l04218"></a><span class="lineno"> 4218</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> VmaBlocksOnSamePage(</div>
-<div class="line"><a name="l04219"></a><span class="lineno"> 4219</span>&#160;    VkDeviceSize resourceAOffset,</div>
-<div class="line"><a name="l04220"></a><span class="lineno"> 4220</span>&#160;    VkDeviceSize resourceASize,</div>
-<div class="line"><a name="l04221"></a><span class="lineno"> 4221</span>&#160;    VkDeviceSize resourceBOffset,</div>
-<div class="line"><a name="l04222"></a><span class="lineno"> 4222</span>&#160;    VkDeviceSize pageSize)</div>
-<div class="line"><a name="l04223"></a><span class="lineno"> 4223</span>&#160;{</div>
-<div class="line"><a name="l04224"></a><span class="lineno"> 4224</span>&#160;    VMA_ASSERT(resourceAOffset + resourceASize &lt;= resourceBOffset &amp;&amp; resourceASize &gt; 0 &amp;&amp; pageSize &gt; 0);</div>
-<div class="line"><a name="l04225"></a><span class="lineno"> 4225</span>&#160;    VkDeviceSize resourceAEnd = resourceAOffset + resourceASize - 1;</div>
-<div class="line"><a name="l04226"></a><span class="lineno"> 4226</span>&#160;    VkDeviceSize resourceAEndPage = resourceAEnd &amp; ~(pageSize - 1);</div>
-<div class="line"><a name="l04227"></a><span class="lineno"> 4227</span>&#160;    VkDeviceSize resourceBStart = resourceBOffset;</div>
-<div class="line"><a name="l04228"></a><span class="lineno"> 4228</span>&#160;    VkDeviceSize resourceBStartPage = resourceBStart &amp; ~(pageSize - 1);</div>
-<div class="line"><a name="l04229"></a><span class="lineno"> 4229</span>&#160;    <span class="keywordflow">return</span> resourceAEndPage == resourceBStartPage;</div>
-<div class="line"><a name="l04230"></a><span class="lineno"> 4230</span>&#160;}</div>
-<div class="line"><a name="l04231"></a><span class="lineno"> 4231</span>&#160; </div>
-<div class="line"><a name="l04232"></a><span class="lineno"> 4232</span>&#160;<span class="keyword">enum</span> VmaSuballocationType</div>
-<div class="line"><a name="l04233"></a><span class="lineno"> 4233</span>&#160;{</div>
-<div class="line"><a name="l04234"></a><span class="lineno"> 4234</span>&#160;    VMA_SUBALLOCATION_TYPE_FREE = 0,</div>
-<div class="line"><a name="l04235"></a><span class="lineno"> 4235</span>&#160;    VMA_SUBALLOCATION_TYPE_UNKNOWN = 1,</div>
-<div class="line"><a name="l04236"></a><span class="lineno"> 4236</span>&#160;    VMA_SUBALLOCATION_TYPE_BUFFER = 2,</div>
-<div class="line"><a name="l04237"></a><span class="lineno"> 4237</span>&#160;    VMA_SUBALLOCATION_TYPE_IMAGE_UNKNOWN = 3,</div>
-<div class="line"><a name="l04238"></a><span class="lineno"> 4238</span>&#160;    VMA_SUBALLOCATION_TYPE_IMAGE_LINEAR = 4,</div>
-<div class="line"><a name="l04239"></a><span class="lineno"> 4239</span>&#160;    VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL = 5,</div>
-<div class="line"><a name="l04240"></a><span class="lineno"> 4240</span>&#160;    VMA_SUBALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF</div>
-<div class="line"><a name="l04241"></a><span class="lineno"> 4241</span>&#160;};</div>
-<div class="line"><a name="l04242"></a><span class="lineno"> 4242</span>&#160; </div>
-<div class="line"><a name="l04243"></a><span class="lineno"> 4243</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l04244"></a><span class="lineno"> 4244</span>&#160;<span class="comment">Returns true if given suballocation types could conflict and must respect</span></div>
-<div class="line"><a name="l04245"></a><span class="lineno"> 4245</span>&#160;<span class="comment">VkPhysicalDeviceLimits::bufferImageGranularity. They conflict if one is buffer</span></div>
-<div class="line"><a name="l04246"></a><span class="lineno"> 4246</span>&#160;<span class="comment">or linear image and another one is optimal image. If type is unknown, behave</span></div>
-<div class="line"><a name="l04247"></a><span class="lineno"> 4247</span>&#160;<span class="comment">conservatively.</span></div>
-<div class="line"><a name="l04248"></a><span class="lineno"> 4248</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l04249"></a><span class="lineno"> 4249</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> VmaIsBufferImageGranularityConflict(</div>
-<div class="line"><a name="l04250"></a><span class="lineno"> 4250</span>&#160;    VmaSuballocationType suballocType1,</div>
-<div class="line"><a name="l04251"></a><span class="lineno"> 4251</span>&#160;    VmaSuballocationType suballocType2)</div>
-<div class="line"><a name="l04252"></a><span class="lineno"> 4252</span>&#160;{</div>
-<div class="line"><a name="l04253"></a><span class="lineno"> 4253</span>&#160;    <span class="keywordflow">if</span>(suballocType1 &gt; suballocType2)</div>
-<div class="line"><a name="l04254"></a><span class="lineno"> 4254</span>&#160;    {</div>
-<div class="line"><a name="l04255"></a><span class="lineno"> 4255</span>&#160;        VMA_SWAP(suballocType1, suballocType2);</div>
-<div class="line"><a name="l04256"></a><span class="lineno"> 4256</span>&#160;    }</div>
-<div class="line"><a name="l04257"></a><span class="lineno"> 4257</span>&#160;    </div>
-<div class="line"><a name="l04258"></a><span class="lineno"> 4258</span>&#160;    <span class="keywordflow">switch</span>(suballocType1)</div>
-<div class="line"><a name="l04259"></a><span class="lineno"> 4259</span>&#160;    {</div>
-<div class="line"><a name="l04260"></a><span class="lineno"> 4260</span>&#160;    <span class="keywordflow">case</span> VMA_SUBALLOCATION_TYPE_FREE:</div>
-<div class="line"><a name="l04261"></a><span class="lineno"> 4261</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l04262"></a><span class="lineno"> 4262</span>&#160;    <span class="keywordflow">case</span> VMA_SUBALLOCATION_TYPE_UNKNOWN:</div>
-<div class="line"><a name="l04263"></a><span class="lineno"> 4263</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l04264"></a><span class="lineno"> 4264</span>&#160;    <span class="keywordflow">case</span> VMA_SUBALLOCATION_TYPE_BUFFER:</div>
-<div class="line"><a name="l04265"></a><span class="lineno"> 4265</span>&#160;        <span class="keywordflow">return</span></div>
-<div class="line"><a name="l04266"></a><span class="lineno"> 4266</span>&#160;            suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_UNKNOWN ||</div>
-<div class="line"><a name="l04267"></a><span class="lineno"> 4267</span>&#160;            suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL;</div>
-<div class="line"><a name="l04268"></a><span class="lineno"> 4268</span>&#160;    <span class="keywordflow">case</span> VMA_SUBALLOCATION_TYPE_IMAGE_UNKNOWN:</div>
-<div class="line"><a name="l04269"></a><span class="lineno"> 4269</span>&#160;        <span class="keywordflow">return</span></div>
-<div class="line"><a name="l04270"></a><span class="lineno"> 4270</span>&#160;            suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_UNKNOWN ||</div>
-<div class="line"><a name="l04271"></a><span class="lineno"> 4271</span>&#160;            suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_LINEAR ||</div>
-<div class="line"><a name="l04272"></a><span class="lineno"> 4272</span>&#160;            suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL;</div>
-<div class="line"><a name="l04273"></a><span class="lineno"> 4273</span>&#160;    <span class="keywordflow">case</span> VMA_SUBALLOCATION_TYPE_IMAGE_LINEAR:</div>
-<div class="line"><a name="l04274"></a><span class="lineno"> 4274</span>&#160;        <span class="keywordflow">return</span></div>
-<div class="line"><a name="l04275"></a><span class="lineno"> 4275</span>&#160;            suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL;</div>
-<div class="line"><a name="l04276"></a><span class="lineno"> 4276</span>&#160;    <span class="keywordflow">case</span> VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL:</div>
-<div class="line"><a name="l04277"></a><span class="lineno"> 4277</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l04278"></a><span class="lineno"> 4278</span>&#160;    <span class="keywordflow">default</span>:</div>
-<div class="line"><a name="l04279"></a><span class="lineno"> 4279</span>&#160;        VMA_ASSERT(0);</div>
-<div class="line"><a name="l04280"></a><span class="lineno"> 4280</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l04281"></a><span class="lineno"> 4281</span>&#160;    }</div>
-<div class="line"><a name="l04282"></a><span class="lineno"> 4282</span>&#160;}</div>
-<div class="line"><a name="l04283"></a><span class="lineno"> 4283</span>&#160; </div>
-<div class="line"><a name="l04284"></a><span class="lineno"> 4284</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> VmaWriteMagicValue(<span class="keywordtype">void</span>* pData, VkDeviceSize offset)</div>
-<div class="line"><a name="l04285"></a><span class="lineno"> 4285</span>&#160;{</div>
-<div class="line"><a name="l04286"></a><span class="lineno"> 4286</span>&#160;<span class="preprocessor">#if VMA_DEBUG_MARGIN &gt; 0 &amp;&amp; VMA_DEBUG_DETECT_CORRUPTION</span></div>
-<div class="line"><a name="l04287"></a><span class="lineno"> 4287</span>&#160;    uint32_t* pDst = (uint32_t*)((<span class="keywordtype">char</span>*)pData + offset);</div>
-<div class="line"><a name="l04288"></a><span class="lineno"> 4288</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">size_t</span> numberCount = VMA_DEBUG_MARGIN / <span class="keyword">sizeof</span>(uint32_t);</div>
-<div class="line"><a name="l04289"></a><span class="lineno"> 4289</span>&#160;    <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i &lt; numberCount; ++i, ++pDst)</div>
-<div class="line"><a name="l04290"></a><span class="lineno"> 4290</span>&#160;    {</div>
-<div class="line"><a name="l04291"></a><span class="lineno"> 4291</span>&#160;        *pDst = VMA_CORRUPTION_DETECTION_MAGIC_VALUE;</div>
-<div class="line"><a name="l04292"></a><span class="lineno"> 4292</span>&#160;    }</div>
-<div class="line"><a name="l04293"></a><span class="lineno"> 4293</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l04294"></a><span class="lineno"> 4294</span>&#160;    <span class="comment">// no-op</span></div>
-<div class="line"><a name="l04295"></a><span class="lineno"> 4295</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l04296"></a><span class="lineno"> 4296</span>&#160;}</div>
-<div class="line"><a name="l04297"></a><span class="lineno"> 4297</span>&#160; </div>
-<div class="line"><a name="l04298"></a><span class="lineno"> 4298</span>&#160;<span class="keyword">static</span> <span class="keywordtype">bool</span> VmaValidateMagicValue(<span class="keyword">const</span> <span class="keywordtype">void</span>* pData, VkDeviceSize offset)</div>
-<div class="line"><a name="l04299"></a><span class="lineno"> 4299</span>&#160;{</div>
-<div class="line"><a name="l04300"></a><span class="lineno"> 4300</span>&#160;<span class="preprocessor">#if VMA_DEBUG_MARGIN &gt; 0 &amp;&amp; VMA_DEBUG_DETECT_CORRUPTION</span></div>
-<div class="line"><a name="l04301"></a><span class="lineno"> 4301</span>&#160;    <span class="keyword">const</span> uint32_t* pSrc = (<span class="keyword">const</span> uint32_t*)((<span class="keyword">const</span> <span class="keywordtype">char</span>*)pData + offset);</div>
-<div class="line"><a name="l04302"></a><span class="lineno"> 4302</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">size_t</span> numberCount = VMA_DEBUG_MARGIN / <span class="keyword">sizeof</span>(uint32_t);</div>
-<div class="line"><a name="l04303"></a><span class="lineno"> 4303</span>&#160;    <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i &lt; numberCount; ++i, ++pSrc)</div>
-<div class="line"><a name="l04304"></a><span class="lineno"> 4304</span>&#160;    {</div>
-<div class="line"><a name="l04305"></a><span class="lineno"> 4305</span>&#160;        <span class="keywordflow">if</span>(*pSrc != VMA_CORRUPTION_DETECTION_MAGIC_VALUE)</div>
-<div class="line"><a name="l04306"></a><span class="lineno"> 4306</span>&#160;        {</div>
-<div class="line"><a name="l04307"></a><span class="lineno"> 4307</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l04308"></a><span class="lineno"> 4308</span>&#160;        }</div>
-<div class="line"><a name="l04309"></a><span class="lineno"> 4309</span>&#160;    }</div>
-<div class="line"><a name="l04310"></a><span class="lineno"> 4310</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l04311"></a><span class="lineno"> 4311</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l04312"></a><span class="lineno"> 4312</span>&#160;}</div>
-<div class="line"><a name="l04313"></a><span class="lineno"> 4313</span>&#160; </div>
-<div class="line"><a name="l04314"></a><span class="lineno"> 4314</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l04315"></a><span class="lineno"> 4315</span>&#160;<span class="comment">Fills structure with parameters of an example buffer to be used for transfers</span></div>
-<div class="line"><a name="l04316"></a><span class="lineno"> 4316</span>&#160;<span class="comment">during GPU memory defragmentation.</span></div>
-<div class="line"><a name="l04317"></a><span class="lineno"> 4317</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l04318"></a><span class="lineno"> 4318</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> VmaFillGpuDefragmentationBufferCreateInfo(VkBufferCreateInfo&amp; outBufCreateInfo)</div>
+<div class="line"><a name="l04209"></a><span class="lineno"> 4209</span>&#160;<span class="keyword">enum</span> VmaSuballocationType</div>
+<div class="line"><a name="l04210"></a><span class="lineno"> 4210</span>&#160;{</div>
+<div class="line"><a name="l04211"></a><span class="lineno"> 4211</span>&#160;    VMA_SUBALLOCATION_TYPE_FREE = 0,</div>
+<div class="line"><a name="l04212"></a><span class="lineno"> 4212</span>&#160;    VMA_SUBALLOCATION_TYPE_UNKNOWN = 1,</div>
+<div class="line"><a name="l04213"></a><span class="lineno"> 4213</span>&#160;    VMA_SUBALLOCATION_TYPE_BUFFER = 2,</div>
+<div class="line"><a name="l04214"></a><span class="lineno"> 4214</span>&#160;    VMA_SUBALLOCATION_TYPE_IMAGE_UNKNOWN = 3,</div>
+<div class="line"><a name="l04215"></a><span class="lineno"> 4215</span>&#160;    VMA_SUBALLOCATION_TYPE_IMAGE_LINEAR = 4,</div>
+<div class="line"><a name="l04216"></a><span class="lineno"> 4216</span>&#160;    VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL = 5,</div>
+<div class="line"><a name="l04217"></a><span class="lineno"> 4217</span>&#160;    VMA_SUBALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF</div>
+<div class="line"><a name="l04218"></a><span class="lineno"> 4218</span>&#160;};</div>
+<div class="line"><a name="l04219"></a><span class="lineno"> 4219</span>&#160; </div>
+<div class="line"><a name="l04220"></a><span class="lineno"> 4220</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l04221"></a><span class="lineno"> 4221</span>&#160;<span class="comment">Returns true if given suballocation types could conflict and must respect</span></div>
+<div class="line"><a name="l04222"></a><span class="lineno"> 4222</span>&#160;<span class="comment">VkPhysicalDeviceLimits::bufferImageGranularity. They conflict if one is buffer</span></div>
+<div class="line"><a name="l04223"></a><span class="lineno"> 4223</span>&#160;<span class="comment">or linear image and another one is optimal image. If type is unknown, behave</span></div>
+<div class="line"><a name="l04224"></a><span class="lineno"> 4224</span>&#160;<span class="comment">conservatively.</span></div>
+<div class="line"><a name="l04225"></a><span class="lineno"> 4225</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l04226"></a><span class="lineno"> 4226</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">bool</span> VmaIsBufferImageGranularityConflict(</div>
+<div class="line"><a name="l04227"></a><span class="lineno"> 4227</span>&#160;    VmaSuballocationType suballocType1,</div>
+<div class="line"><a name="l04228"></a><span class="lineno"> 4228</span>&#160;    VmaSuballocationType suballocType2)</div>
+<div class="line"><a name="l04229"></a><span class="lineno"> 4229</span>&#160;{</div>
+<div class="line"><a name="l04230"></a><span class="lineno"> 4230</span>&#160;    <span class="keywordflow">if</span>(suballocType1 &gt; suballocType2)</div>
+<div class="line"><a name="l04231"></a><span class="lineno"> 4231</span>&#160;    {</div>
+<div class="line"><a name="l04232"></a><span class="lineno"> 4232</span>&#160;        VMA_SWAP(suballocType1, suballocType2);</div>
+<div class="line"><a name="l04233"></a><span class="lineno"> 4233</span>&#160;    }</div>
+<div class="line"><a name="l04234"></a><span class="lineno"> 4234</span>&#160;    </div>
+<div class="line"><a name="l04235"></a><span class="lineno"> 4235</span>&#160;    <span class="keywordflow">switch</span>(suballocType1)</div>
+<div class="line"><a name="l04236"></a><span class="lineno"> 4236</span>&#160;    {</div>
+<div class="line"><a name="l04237"></a><span class="lineno"> 4237</span>&#160;    <span class="keywordflow">case</span> VMA_SUBALLOCATION_TYPE_FREE:</div>
+<div class="line"><a name="l04238"></a><span class="lineno"> 4238</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l04239"></a><span class="lineno"> 4239</span>&#160;    <span class="keywordflow">case</span> VMA_SUBALLOCATION_TYPE_UNKNOWN:</div>
+<div class="line"><a name="l04240"></a><span class="lineno"> 4240</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l04241"></a><span class="lineno"> 4241</span>&#160;    <span class="keywordflow">case</span> VMA_SUBALLOCATION_TYPE_BUFFER:</div>
+<div class="line"><a name="l04242"></a><span class="lineno"> 4242</span>&#160;        <span class="keywordflow">return</span></div>
+<div class="line"><a name="l04243"></a><span class="lineno"> 4243</span>&#160;            suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_UNKNOWN ||</div>
+<div class="line"><a name="l04244"></a><span class="lineno"> 4244</span>&#160;            suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL;</div>
+<div class="line"><a name="l04245"></a><span class="lineno"> 4245</span>&#160;    <span class="keywordflow">case</span> VMA_SUBALLOCATION_TYPE_IMAGE_UNKNOWN:</div>
+<div class="line"><a name="l04246"></a><span class="lineno"> 4246</span>&#160;        <span class="keywordflow">return</span></div>
+<div class="line"><a name="l04247"></a><span class="lineno"> 4247</span>&#160;            suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_UNKNOWN ||</div>
+<div class="line"><a name="l04248"></a><span class="lineno"> 4248</span>&#160;            suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_LINEAR ||</div>
+<div class="line"><a name="l04249"></a><span class="lineno"> 4249</span>&#160;            suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL;</div>
+<div class="line"><a name="l04250"></a><span class="lineno"> 4250</span>&#160;    <span class="keywordflow">case</span> VMA_SUBALLOCATION_TYPE_IMAGE_LINEAR:</div>
+<div class="line"><a name="l04251"></a><span class="lineno"> 4251</span>&#160;        <span class="keywordflow">return</span></div>
+<div class="line"><a name="l04252"></a><span class="lineno"> 4252</span>&#160;            suballocType2 == VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL;</div>
+<div class="line"><a name="l04253"></a><span class="lineno"> 4253</span>&#160;    <span class="keywordflow">case</span> VMA_SUBALLOCATION_TYPE_IMAGE_OPTIMAL:</div>
+<div class="line"><a name="l04254"></a><span class="lineno"> 4254</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l04255"></a><span class="lineno"> 4255</span>&#160;    <span class="keywordflow">default</span>:</div>
+<div class="line"><a name="l04256"></a><span class="lineno"> 4256</span>&#160;        VMA_ASSERT(0);</div>
+<div class="line"><a name="l04257"></a><span class="lineno"> 4257</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l04258"></a><span class="lineno"> 4258</span>&#160;    }</div>
+<div class="line"><a name="l04259"></a><span class="lineno"> 4259</span>&#160;}</div>
+<div class="line"><a name="l04260"></a><span class="lineno"> 4260</span>&#160; </div>
+<div class="line"><a name="l04261"></a><span class="lineno"> 4261</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> VmaWriteMagicValue(<span class="keywordtype">void</span>* pData, VkDeviceSize offset)</div>
+<div class="line"><a name="l04262"></a><span class="lineno"> 4262</span>&#160;{</div>
+<div class="line"><a name="l04263"></a><span class="lineno"> 4263</span>&#160;<span class="preprocessor">#if VMA_DEBUG_MARGIN &gt; 0 &amp;&amp; VMA_DEBUG_DETECT_CORRUPTION</span></div>
+<div class="line"><a name="l04264"></a><span class="lineno"> 4264</span>&#160;    uint32_t* pDst = (uint32_t*)((<span class="keywordtype">char</span>*)pData + offset);</div>
+<div class="line"><a name="l04265"></a><span class="lineno"> 4265</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">size_t</span> numberCount = VMA_DEBUG_MARGIN / <span class="keyword">sizeof</span>(uint32_t);</div>
+<div class="line"><a name="l04266"></a><span class="lineno"> 4266</span>&#160;    <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i &lt; numberCount; ++i, ++pDst)</div>
+<div class="line"><a name="l04267"></a><span class="lineno"> 4267</span>&#160;    {</div>
+<div class="line"><a name="l04268"></a><span class="lineno"> 4268</span>&#160;        *pDst = VMA_CORRUPTION_DETECTION_MAGIC_VALUE;</div>
+<div class="line"><a name="l04269"></a><span class="lineno"> 4269</span>&#160;    }</div>
+<div class="line"><a name="l04270"></a><span class="lineno"> 4270</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l04271"></a><span class="lineno"> 4271</span>&#160;    <span class="comment">// no-op</span></div>
+<div class="line"><a name="l04272"></a><span class="lineno"> 4272</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l04273"></a><span class="lineno"> 4273</span>&#160;}</div>
+<div class="line"><a name="l04274"></a><span class="lineno"> 4274</span>&#160; </div>
+<div class="line"><a name="l04275"></a><span class="lineno"> 4275</span>&#160;<span class="keyword">static</span> <span class="keywordtype">bool</span> VmaValidateMagicValue(<span class="keyword">const</span> <span class="keywordtype">void</span>* pData, VkDeviceSize offset)</div>
+<div class="line"><a name="l04276"></a><span class="lineno"> 4276</span>&#160;{</div>
+<div class="line"><a name="l04277"></a><span class="lineno"> 4277</span>&#160;<span class="preprocessor">#if VMA_DEBUG_MARGIN &gt; 0 &amp;&amp; VMA_DEBUG_DETECT_CORRUPTION</span></div>
+<div class="line"><a name="l04278"></a><span class="lineno"> 4278</span>&#160;    <span class="keyword">const</span> uint32_t* pSrc = (<span class="keyword">const</span> uint32_t*)((<span class="keyword">const</span> <span class="keywordtype">char</span>*)pData + offset);</div>
+<div class="line"><a name="l04279"></a><span class="lineno"> 4279</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">size_t</span> numberCount = VMA_DEBUG_MARGIN / <span class="keyword">sizeof</span>(uint32_t);</div>
+<div class="line"><a name="l04280"></a><span class="lineno"> 4280</span>&#160;    <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i &lt; numberCount; ++i, ++pSrc)</div>
+<div class="line"><a name="l04281"></a><span class="lineno"> 4281</span>&#160;    {</div>
+<div class="line"><a name="l04282"></a><span class="lineno"> 4282</span>&#160;        <span class="keywordflow">if</span>(*pSrc != VMA_CORRUPTION_DETECTION_MAGIC_VALUE)</div>
+<div class="line"><a name="l04283"></a><span class="lineno"> 4283</span>&#160;        {</div>
+<div class="line"><a name="l04284"></a><span class="lineno"> 4284</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l04285"></a><span class="lineno"> 4285</span>&#160;        }</div>
+<div class="line"><a name="l04286"></a><span class="lineno"> 4286</span>&#160;    }</div>
+<div class="line"><a name="l04287"></a><span class="lineno"> 4287</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l04288"></a><span class="lineno"> 4288</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l04289"></a><span class="lineno"> 4289</span>&#160;}</div>
+<div class="line"><a name="l04290"></a><span class="lineno"> 4290</span>&#160; </div>
+<div class="line"><a name="l04291"></a><span class="lineno"> 4291</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l04292"></a><span class="lineno"> 4292</span>&#160;<span class="comment">Fills structure with parameters of an example buffer to be used for transfers</span></div>
+<div class="line"><a name="l04293"></a><span class="lineno"> 4293</span>&#160;<span class="comment">during GPU memory defragmentation.</span></div>
+<div class="line"><a name="l04294"></a><span class="lineno"> 4294</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l04295"></a><span class="lineno"> 4295</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> VmaFillGpuDefragmentationBufferCreateInfo(VkBufferCreateInfo&amp; outBufCreateInfo)</div>
+<div class="line"><a name="l04296"></a><span class="lineno"> 4296</span>&#160;{</div>
+<div class="line"><a name="l04297"></a><span class="lineno"> 4297</span>&#160;    memset(&amp;outBufCreateInfo, 0, <span class="keyword">sizeof</span>(outBufCreateInfo));</div>
+<div class="line"><a name="l04298"></a><span class="lineno"> 4298</span>&#160;    outBufCreateInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;</div>
+<div class="line"><a name="l04299"></a><span class="lineno"> 4299</span>&#160;    outBufCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;</div>
+<div class="line"><a name="l04300"></a><span class="lineno"> 4300</span>&#160;    outBufCreateInfo.size = (VkDeviceSize)VMA_DEFAULT_LARGE_HEAP_BLOCK_SIZE; <span class="comment">// Example size.</span></div>
+<div class="line"><a name="l04301"></a><span class="lineno"> 4301</span>&#160;}</div>
+<div class="line"><a name="l04302"></a><span class="lineno"> 4302</span>&#160; </div>
+<div class="line"><a name="l04303"></a><span class="lineno"> 4303</span>&#160;<span class="comment">// Helper RAII class to lock a mutex in constructor and unlock it in destructor (at the end of scope).</span></div>
+<div class="line"><a name="l04304"></a><span class="lineno"> 4304</span>&#160;<span class="keyword">struct </span>VmaMutexLock</div>
+<div class="line"><a name="l04305"></a><span class="lineno"> 4305</span>&#160;{</div>
+<div class="line"><a name="l04306"></a><span class="lineno"> 4306</span>&#160;    VMA_CLASS_NO_COPY(VmaMutexLock)</div>
+<div class="line"><a name="l04307"></a><span class="lineno"> 4307</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l04308"></a><span class="lineno"> 4308</span>&#160;    VmaMutexLock(VMA_MUTEX&amp; mutex, <span class="keywordtype">bool</span> useMutex = <span class="keyword">true</span>) :</div>
+<div class="line"><a name="l04309"></a><span class="lineno"> 4309</span>&#160;        m_pMutex(useMutex ? &amp;mutex : VMA_NULL)</div>
+<div class="line"><a name="l04310"></a><span class="lineno"> 4310</span>&#160;    { <span class="keywordflow">if</span>(m_pMutex) { m_pMutex-&gt;Lock(); } }</div>
+<div class="line"><a name="l04311"></a><span class="lineno"> 4311</span>&#160;    ~VmaMutexLock()</div>
+<div class="line"><a name="l04312"></a><span class="lineno"> 4312</span>&#160;    { <span class="keywordflow">if</span>(m_pMutex) { m_pMutex-&gt;Unlock(); } }</div>
+<div class="line"><a name="l04313"></a><span class="lineno"> 4313</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l04314"></a><span class="lineno"> 4314</span>&#160;    VMA_MUTEX* m_pMutex;</div>
+<div class="line"><a name="l04315"></a><span class="lineno"> 4315</span>&#160;};</div>
+<div class="line"><a name="l04316"></a><span class="lineno"> 4316</span>&#160; </div>
+<div class="line"><a name="l04317"></a><span class="lineno"> 4317</span>&#160;<span class="comment">// Helper RAII class to lock a RW mutex in constructor and unlock it in destructor (at the end of scope), for reading.</span></div>
+<div class="line"><a name="l04318"></a><span class="lineno"> 4318</span>&#160;<span class="keyword">struct </span>VmaMutexLockRead</div>
 <div class="line"><a name="l04319"></a><span class="lineno"> 4319</span>&#160;{</div>
-<div class="line"><a name="l04320"></a><span class="lineno"> 4320</span>&#160;    memset(&amp;outBufCreateInfo, 0, <span class="keyword">sizeof</span>(outBufCreateInfo));</div>
-<div class="line"><a name="l04321"></a><span class="lineno"> 4321</span>&#160;    outBufCreateInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;</div>
-<div class="line"><a name="l04322"></a><span class="lineno"> 4322</span>&#160;    outBufCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;</div>
-<div class="line"><a name="l04323"></a><span class="lineno"> 4323</span>&#160;    outBufCreateInfo.size = (VkDeviceSize)VMA_DEFAULT_LARGE_HEAP_BLOCK_SIZE; <span class="comment">// Example size.</span></div>
-<div class="line"><a name="l04324"></a><span class="lineno"> 4324</span>&#160;}</div>
-<div class="line"><a name="l04325"></a><span class="lineno"> 4325</span>&#160; </div>
-<div class="line"><a name="l04326"></a><span class="lineno"> 4326</span>&#160;<span class="comment">// Helper RAII class to lock a mutex in constructor and unlock it in destructor (at the end of scope).</span></div>
-<div class="line"><a name="l04327"></a><span class="lineno"> 4327</span>&#160;<span class="keyword">struct </span>VmaMutexLock</div>
-<div class="line"><a name="l04328"></a><span class="lineno"> 4328</span>&#160;{</div>
-<div class="line"><a name="l04329"></a><span class="lineno"> 4329</span>&#160;    VMA_CLASS_NO_COPY(VmaMutexLock)</div>
-<div class="line"><a name="l04330"></a><span class="lineno"> 4330</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l04331"></a><span class="lineno"> 4331</span>&#160;    VmaMutexLock(VMA_MUTEX&amp; mutex, <span class="keywordtype">bool</span> useMutex = <span class="keyword">true</span>) :</div>
-<div class="line"><a name="l04332"></a><span class="lineno"> 4332</span>&#160;        m_pMutex(useMutex ? &amp;mutex : VMA_NULL)</div>
-<div class="line"><a name="l04333"></a><span class="lineno"> 4333</span>&#160;    { <span class="keywordflow">if</span>(m_pMutex) { m_pMutex-&gt;Lock(); } }</div>
-<div class="line"><a name="l04334"></a><span class="lineno"> 4334</span>&#160;    ~VmaMutexLock()</div>
-<div class="line"><a name="l04335"></a><span class="lineno"> 4335</span>&#160;    { <span class="keywordflow">if</span>(m_pMutex) { m_pMutex-&gt;Unlock(); } }</div>
-<div class="line"><a name="l04336"></a><span class="lineno"> 4336</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l04337"></a><span class="lineno"> 4337</span>&#160;    VMA_MUTEX* m_pMutex;</div>
-<div class="line"><a name="l04338"></a><span class="lineno"> 4338</span>&#160;};</div>
-<div class="line"><a name="l04339"></a><span class="lineno"> 4339</span>&#160; </div>
-<div class="line"><a name="l04340"></a><span class="lineno"> 4340</span>&#160;<span class="comment">// Helper RAII class to lock a RW mutex in constructor and unlock it in destructor (at the end of scope), for reading.</span></div>
-<div class="line"><a name="l04341"></a><span class="lineno"> 4341</span>&#160;<span class="keyword">struct </span>VmaMutexLockRead</div>
-<div class="line"><a name="l04342"></a><span class="lineno"> 4342</span>&#160;{</div>
-<div class="line"><a name="l04343"></a><span class="lineno"> 4343</span>&#160;    VMA_CLASS_NO_COPY(VmaMutexLockRead)</div>
-<div class="line"><a name="l04344"></a><span class="lineno"> 4344</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l04345"></a><span class="lineno"> 4345</span>&#160;    VmaMutexLockRead(VMA_RW_MUTEX&amp; mutex, <span class="keywordtype">bool</span> useMutex) :</div>
-<div class="line"><a name="l04346"></a><span class="lineno"> 4346</span>&#160;        m_pMutex(useMutex ? &amp;mutex : VMA_NULL)</div>
-<div class="line"><a name="l04347"></a><span class="lineno"> 4347</span>&#160;    { <span class="keywordflow">if</span>(m_pMutex) { m_pMutex-&gt;LockRead(); } }</div>
-<div class="line"><a name="l04348"></a><span class="lineno"> 4348</span>&#160;    ~VmaMutexLockRead() { <span class="keywordflow">if</span>(m_pMutex) { m_pMutex-&gt;UnlockRead(); } }</div>
-<div class="line"><a name="l04349"></a><span class="lineno"> 4349</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l04350"></a><span class="lineno"> 4350</span>&#160;    VMA_RW_MUTEX* m_pMutex;</div>
-<div class="line"><a name="l04351"></a><span class="lineno"> 4351</span>&#160;};</div>
+<div class="line"><a name="l04320"></a><span class="lineno"> 4320</span>&#160;    VMA_CLASS_NO_COPY(VmaMutexLockRead)</div>
+<div class="line"><a name="l04321"></a><span class="lineno"> 4321</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l04322"></a><span class="lineno"> 4322</span>&#160;    VmaMutexLockRead(VMA_RW_MUTEX&amp; mutex, <span class="keywordtype">bool</span> useMutex) :</div>
+<div class="line"><a name="l04323"></a><span class="lineno"> 4323</span>&#160;        m_pMutex(useMutex ? &amp;mutex : VMA_NULL)</div>
+<div class="line"><a name="l04324"></a><span class="lineno"> 4324</span>&#160;    { <span class="keywordflow">if</span>(m_pMutex) { m_pMutex-&gt;LockRead(); } }</div>
+<div class="line"><a name="l04325"></a><span class="lineno"> 4325</span>&#160;    ~VmaMutexLockRead() { <span class="keywordflow">if</span>(m_pMutex) { m_pMutex-&gt;UnlockRead(); } }</div>
+<div class="line"><a name="l04326"></a><span class="lineno"> 4326</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l04327"></a><span class="lineno"> 4327</span>&#160;    VMA_RW_MUTEX* m_pMutex;</div>
+<div class="line"><a name="l04328"></a><span class="lineno"> 4328</span>&#160;};</div>
+<div class="line"><a name="l04329"></a><span class="lineno"> 4329</span>&#160; </div>
+<div class="line"><a name="l04330"></a><span class="lineno"> 4330</span>&#160;<span class="comment">// Helper RAII class to lock a RW mutex in constructor and unlock it in destructor (at the end of scope), for writing.</span></div>
+<div class="line"><a name="l04331"></a><span class="lineno"> 4331</span>&#160;<span class="keyword">struct </span>VmaMutexLockWrite</div>
+<div class="line"><a name="l04332"></a><span class="lineno"> 4332</span>&#160;{</div>
+<div class="line"><a name="l04333"></a><span class="lineno"> 4333</span>&#160;    VMA_CLASS_NO_COPY(VmaMutexLockWrite)</div>
+<div class="line"><a name="l04334"></a><span class="lineno"> 4334</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l04335"></a><span class="lineno"> 4335</span>&#160;    VmaMutexLockWrite(VMA_RW_MUTEX&amp; mutex, <span class="keywordtype">bool</span> useMutex) :</div>
+<div class="line"><a name="l04336"></a><span class="lineno"> 4336</span>&#160;        m_pMutex(useMutex ? &amp;mutex : VMA_NULL)</div>
+<div class="line"><a name="l04337"></a><span class="lineno"> 4337</span>&#160;    { <span class="keywordflow">if</span>(m_pMutex) { m_pMutex-&gt;LockWrite(); } }</div>
+<div class="line"><a name="l04338"></a><span class="lineno"> 4338</span>&#160;    ~VmaMutexLockWrite() { <span class="keywordflow">if</span>(m_pMutex) { m_pMutex-&gt;UnlockWrite(); } }</div>
+<div class="line"><a name="l04339"></a><span class="lineno"> 4339</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l04340"></a><span class="lineno"> 4340</span>&#160;    VMA_RW_MUTEX* m_pMutex;</div>
+<div class="line"><a name="l04341"></a><span class="lineno"> 4341</span>&#160;};</div>
+<div class="line"><a name="l04342"></a><span class="lineno"> 4342</span>&#160; </div>
+<div class="line"><a name="l04343"></a><span class="lineno"> 4343</span>&#160;<span class="preprocessor">#if VMA_DEBUG_GLOBAL_MUTEX</span></div>
+<div class="line"><a name="l04344"></a><span class="lineno"> 4344</span>&#160;    <span class="keyword">static</span> VMA_MUTEX gDebugGlobalMutex;</div>
+<div class="line"><a name="l04345"></a><span class="lineno"> 4345</span>&#160;<span class="preprocessor">    #define VMA_DEBUG_GLOBAL_MUTEX_LOCK VmaMutexLock debugGlobalMutexLock(gDebugGlobalMutex, true);</span></div>
+<div class="line"><a name="l04346"></a><span class="lineno"> 4346</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l04347"></a><span class="lineno"> 4347</span>&#160;<span class="preprocessor">    #define VMA_DEBUG_GLOBAL_MUTEX_LOCK</span></div>
+<div class="line"><a name="l04348"></a><span class="lineno"> 4348</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l04349"></a><span class="lineno"> 4349</span>&#160; </div>
+<div class="line"><a name="l04350"></a><span class="lineno"> 4350</span>&#160;<span class="comment">// Minimum size of a free suballocation to register it in the free suballocation collection.</span></div>
+<div class="line"><a name="l04351"></a><span class="lineno"> 4351</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> VkDeviceSize VMA_MIN_FREE_SUBALLOCATION_SIZE_TO_REGISTER = 16;</div>
 <div class="line"><a name="l04352"></a><span class="lineno"> 4352</span>&#160; </div>
-<div class="line"><a name="l04353"></a><span class="lineno"> 4353</span>&#160;<span class="comment">// Helper RAII class to lock a RW mutex in constructor and unlock it in destructor (at the end of scope), for writing.</span></div>
-<div class="line"><a name="l04354"></a><span class="lineno"> 4354</span>&#160;<span class="keyword">struct </span>VmaMutexLockWrite</div>
-<div class="line"><a name="l04355"></a><span class="lineno"> 4355</span>&#160;{</div>
-<div class="line"><a name="l04356"></a><span class="lineno"> 4356</span>&#160;    VMA_CLASS_NO_COPY(VmaMutexLockWrite)</div>
-<div class="line"><a name="l04357"></a><span class="lineno"> 4357</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l04358"></a><span class="lineno"> 4358</span>&#160;    VmaMutexLockWrite(VMA_RW_MUTEX&amp; mutex, <span class="keywordtype">bool</span> useMutex) :</div>
-<div class="line"><a name="l04359"></a><span class="lineno"> 4359</span>&#160;        m_pMutex(useMutex ? &amp;mutex : VMA_NULL)</div>
-<div class="line"><a name="l04360"></a><span class="lineno"> 4360</span>&#160;    { <span class="keywordflow">if</span>(m_pMutex) { m_pMutex-&gt;LockWrite(); } }</div>
-<div class="line"><a name="l04361"></a><span class="lineno"> 4361</span>&#160;    ~VmaMutexLockWrite() { <span class="keywordflow">if</span>(m_pMutex) { m_pMutex-&gt;UnlockWrite(); } }</div>
-<div class="line"><a name="l04362"></a><span class="lineno"> 4362</span>&#160;<span class="keyword">private</span>:</div>
-<div class="line"><a name="l04363"></a><span class="lineno"> 4363</span>&#160;    VMA_RW_MUTEX* m_pMutex;</div>
-<div class="line"><a name="l04364"></a><span class="lineno"> 4364</span>&#160;};</div>
-<div class="line"><a name="l04365"></a><span class="lineno"> 4365</span>&#160; </div>
-<div class="line"><a name="l04366"></a><span class="lineno"> 4366</span>&#160;<span class="preprocessor">#if VMA_DEBUG_GLOBAL_MUTEX</span></div>
-<div class="line"><a name="l04367"></a><span class="lineno"> 4367</span>&#160;    <span class="keyword">static</span> VMA_MUTEX gDebugGlobalMutex;</div>
-<div class="line"><a name="l04368"></a><span class="lineno"> 4368</span>&#160;<span class="preprocessor">    #define VMA_DEBUG_GLOBAL_MUTEX_LOCK VmaMutexLock debugGlobalMutexLock(gDebugGlobalMutex, true);</span></div>
-<div class="line"><a name="l04369"></a><span class="lineno"> 4369</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l04370"></a><span class="lineno"> 4370</span>&#160;<span class="preprocessor">    #define VMA_DEBUG_GLOBAL_MUTEX_LOCK</span></div>
-<div class="line"><a name="l04371"></a><span class="lineno"> 4371</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l04372"></a><span class="lineno"> 4372</span>&#160; </div>
-<div class="line"><a name="l04373"></a><span class="lineno"> 4373</span>&#160;<span class="comment">// Minimum size of a free suballocation to register it in the free suballocation collection.</span></div>
-<div class="line"><a name="l04374"></a><span class="lineno"> 4374</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> VkDeviceSize VMA_MIN_FREE_SUBALLOCATION_SIZE_TO_REGISTER = 16;</div>
-<div class="line"><a name="l04375"></a><span class="lineno"> 4375</span>&#160; </div>
-<div class="line"><a name="l04376"></a><span class="lineno"> 4376</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l04377"></a><span class="lineno"> 4377</span>&#160;<span class="comment">Performs binary search and returns iterator to first element that is greater or</span></div>
-<div class="line"><a name="l04378"></a><span class="lineno"> 4378</span>&#160;<span class="comment">equal to (key), according to comparison (cmp).</span></div>
-<div class="line"><a name="l04379"></a><span class="lineno"> 4379</span>&#160;<span class="comment"></span> </div>
-<div class="line"><a name="l04380"></a><span class="lineno"> 4380</span>&#160;<span class="comment">Cmp should return true if first argument is less than second argument.</span></div>
-<div class="line"><a name="l04381"></a><span class="lineno"> 4381</span>&#160;<span class="comment"></span> </div>
-<div class="line"><a name="l04382"></a><span class="lineno"> 4382</span>&#160;<span class="comment">Returned value is the found element, if present in the collection or place where</span></div>
-<div class="line"><a name="l04383"></a><span class="lineno"> 4383</span>&#160;<span class="comment">new element with value (key) should be inserted.</span></div>
-<div class="line"><a name="l04384"></a><span class="lineno"> 4384</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l04385"></a><span class="lineno"> 4385</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> CmpLess, <span class="keyword">typename</span> IterT, <span class="keyword">typename</span> KeyT&gt;</div>
-<div class="line"><a name="l04386"></a><span class="lineno"> 4386</span>&#160;<span class="keyword">static</span> IterT VmaBinaryFindFirstNotLess(IterT beg, IterT end, <span class="keyword">const</span> KeyT &amp;key, <span class="keyword">const</span> CmpLess&amp; cmp)</div>
-<div class="line"><a name="l04387"></a><span class="lineno"> 4387</span>&#160;{</div>
-<div class="line"><a name="l04388"></a><span class="lineno"> 4388</span>&#160;    <span class="keywordtype">size_t</span> down = 0, up = (end - beg);</div>
-<div class="line"><a name="l04389"></a><span class="lineno"> 4389</span>&#160;    <span class="keywordflow">while</span>(down &lt; up)</div>
-<div class="line"><a name="l04390"></a><span class="lineno"> 4390</span>&#160;    {</div>
-<div class="line"><a name="l04391"></a><span class="lineno"> 4391</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">size_t</span> mid = (down + up) / 2;</div>
-<div class="line"><a name="l04392"></a><span class="lineno"> 4392</span>&#160;        <span class="keywordflow">if</span>(cmp(*(beg+mid), key))</div>
-<div class="line"><a name="l04393"></a><span class="lineno"> 4393</span>&#160;        {</div>
-<div class="line"><a name="l04394"></a><span class="lineno"> 4394</span>&#160;            down = mid + 1;</div>
-<div class="line"><a name="l04395"></a><span class="lineno"> 4395</span>&#160;        }</div>
-<div class="line"><a name="l04396"></a><span class="lineno"> 4396</span>&#160;        <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04397"></a><span class="lineno"> 4397</span>&#160;        {</div>
-<div class="line"><a name="l04398"></a><span class="lineno"> 4398</span>&#160;            up = mid;</div>
-<div class="line"><a name="l04399"></a><span class="lineno"> 4399</span>&#160;        }</div>
-<div class="line"><a name="l04400"></a><span class="lineno"> 4400</span>&#160;    }</div>
-<div class="line"><a name="l04401"></a><span class="lineno"> 4401</span>&#160;    <span class="keywordflow">return</span> beg + down;</div>
-<div class="line"><a name="l04402"></a><span class="lineno"> 4402</span>&#160;}</div>
-<div class="line"><a name="l04403"></a><span class="lineno"> 4403</span>&#160; </div>
-<div class="line"><a name="l04404"></a><span class="lineno"> 4404</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> CmpLess, <span class="keyword">typename</span> IterT, <span class="keyword">typename</span> KeyT&gt;</div>
-<div class="line"><a name="l04405"></a><span class="lineno"> 4405</span>&#160;IterT VmaBinaryFindSorted(<span class="keyword">const</span> IterT&amp; beg, <span class="keyword">const</span> IterT&amp; end, <span class="keyword">const</span> KeyT&amp; value, <span class="keyword">const</span> CmpLess&amp; cmp)</div>
-<div class="line"><a name="l04406"></a><span class="lineno"> 4406</span>&#160;{</div>
-<div class="line"><a name="l04407"></a><span class="lineno"> 4407</span>&#160;    IterT it = VmaBinaryFindFirstNotLess&lt;CmpLess, IterT, KeyT&gt;(</div>
-<div class="line"><a name="l04408"></a><span class="lineno"> 4408</span>&#160;        beg, end, value, cmp);</div>
-<div class="line"><a name="l04409"></a><span class="lineno"> 4409</span>&#160;    <span class="keywordflow">if</span>(it == end ||</div>
-<div class="line"><a name="l04410"></a><span class="lineno"> 4410</span>&#160;        (!cmp(*it, value) &amp;&amp; !cmp(value, *it)))</div>
-<div class="line"><a name="l04411"></a><span class="lineno"> 4411</span>&#160;    {</div>
-<div class="line"><a name="l04412"></a><span class="lineno"> 4412</span>&#160;        <span class="keywordflow">return</span> it;</div>
-<div class="line"><a name="l04413"></a><span class="lineno"> 4413</span>&#160;    }</div>
-<div class="line"><a name="l04414"></a><span class="lineno"> 4414</span>&#160;    <span class="keywordflow">return</span> end;</div>
-<div class="line"><a name="l04415"></a><span class="lineno"> 4415</span>&#160;}</div>
-<div class="line"><a name="l04416"></a><span class="lineno"> 4416</span>&#160; </div>
-<div class="line"><a name="l04417"></a><span class="lineno"> 4417</span>&#160;<span class="comment">/*</span></div>
-<div class="line"><a name="l04418"></a><span class="lineno"> 4418</span>&#160;<span class="comment">Returns true if all pointers in the array are not-null and unique.</span></div>
-<div class="line"><a name="l04419"></a><span class="lineno"> 4419</span>&#160;<span class="comment">Warning! O(n^2) complexity. Use only inside VMA_HEAVY_ASSERT.</span></div>
-<div class="line"><a name="l04420"></a><span class="lineno"> 4420</span>&#160;<span class="comment">T must be pointer type, e.g. VmaAllocation, VmaPool.</span></div>
-<div class="line"><a name="l04421"></a><span class="lineno"> 4421</span>&#160;<span class="comment">*/</span></div>
-<div class="line"><a name="l04422"></a><span class="lineno"> 4422</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l04423"></a><span class="lineno"> 4423</span>&#160;<span class="keyword">static</span> <span class="keywordtype">bool</span> VmaValidatePointerArray(uint32_t count, <span class="keyword">const</span> T* arr)</div>
-<div class="line"><a name="l04424"></a><span class="lineno"> 4424</span>&#160;{</div>
-<div class="line"><a name="l04425"></a><span class="lineno"> 4425</span>&#160;    <span class="keywordflow">for</span>(uint32_t i = 0; i &lt; count; ++i)</div>
-<div class="line"><a name="l04426"></a><span class="lineno"> 4426</span>&#160;    {</div>
-<div class="line"><a name="l04427"></a><span class="lineno"> 4427</span>&#160;        <span class="keyword">const</span> T iPtr = arr[i];</div>
-<div class="line"><a name="l04428"></a><span class="lineno"> 4428</span>&#160;        <span class="keywordflow">if</span>(iPtr == VMA_NULL)</div>
-<div class="line"><a name="l04429"></a><span class="lineno"> 4429</span>&#160;        {</div>
-<div class="line"><a name="l04430"></a><span class="lineno"> 4430</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l04431"></a><span class="lineno"> 4431</span>&#160;        }</div>
-<div class="line"><a name="l04432"></a><span class="lineno"> 4432</span>&#160;        <span class="keywordflow">for</span>(uint32_t j = i + 1; j &lt; count; ++j)</div>
-<div class="line"><a name="l04433"></a><span class="lineno"> 4433</span>&#160;        {</div>
-<div class="line"><a name="l04434"></a><span class="lineno"> 4434</span>&#160;            <span class="keywordflow">if</span>(iPtr == arr[j])</div>
-<div class="line"><a name="l04435"></a><span class="lineno"> 4435</span>&#160;            {</div>
-<div class="line"><a name="l04436"></a><span class="lineno"> 4436</span>&#160;                <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l04437"></a><span class="lineno"> 4437</span>&#160;            }</div>
-<div class="line"><a name="l04438"></a><span class="lineno"> 4438</span>&#160;        }</div>
-<div class="line"><a name="l04439"></a><span class="lineno"> 4439</span>&#160;    }</div>
-<div class="line"><a name="l04440"></a><span class="lineno"> 4440</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l04441"></a><span class="lineno"> 4441</span>&#160;}</div>
-<div class="line"><a name="l04442"></a><span class="lineno"> 4442</span>&#160; </div>
-<div class="line"><a name="l04443"></a><span class="lineno"> 4443</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> MainT, <span class="keyword">typename</span> NewT&gt;</div>
-<div class="line"><a name="l04444"></a><span class="lineno"> 4444</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> VmaPnextChainPushFront(MainT* mainStruct, NewT* newStruct)</div>
-<div class="line"><a name="l04445"></a><span class="lineno"> 4445</span>&#160;{</div>
-<div class="line"><a name="l04446"></a><span class="lineno"> 4446</span>&#160;    newStruct-&gt;pNext = mainStruct-&gt;pNext;</div>
-<div class="line"><a name="l04447"></a><span class="lineno"> 4447</span>&#160;    mainStruct-&gt;pNext = newStruct;</div>
-<div class="line"><a name="l04448"></a><span class="lineno"> 4448</span>&#160;}</div>
-<div class="line"><a name="l04449"></a><span class="lineno"> 4449</span>&#160; </div>
-<div class="line"><a name="l04451"></a><span class="lineno"> 4451</span>&#160;<span class="comment">// Memory allocation</span></div>
-<div class="line"><a name="l04452"></a><span class="lineno"> 4452</span>&#160; </div>
-<div class="line"><a name="l04453"></a><span class="lineno"> 4453</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span>* VmaMalloc(<span class="keyword">const</span> VkAllocationCallbacks* pAllocationCallbacks, <span class="keywordtype">size_t</span> size, <span class="keywordtype">size_t</span> alignment)</div>
-<div class="line"><a name="l04454"></a><span class="lineno"> 4454</span>&#160;{</div>
-<div class="line"><a name="l04455"></a><span class="lineno"> 4455</span>&#160;    <span class="keywordflow">if</span>((pAllocationCallbacks != VMA_NULL) &amp;&amp;</div>
-<div class="line"><a name="l04456"></a><span class="lineno"> 4456</span>&#160;        (pAllocationCallbacks-&gt;pfnAllocation != VMA_NULL))</div>
-<div class="line"><a name="l04457"></a><span class="lineno"> 4457</span>&#160;    {</div>
-<div class="line"><a name="l04458"></a><span class="lineno"> 4458</span>&#160;        <span class="keywordflow">return</span> (*pAllocationCallbacks-&gt;pfnAllocation)(</div>
-<div class="line"><a name="l04459"></a><span class="lineno"> 4459</span>&#160;            pAllocationCallbacks-&gt;pUserData,</div>
-<div class="line"><a name="l04460"></a><span class="lineno"> 4460</span>&#160;            size,</div>
-<div class="line"><a name="l04461"></a><span class="lineno"> 4461</span>&#160;            alignment,</div>
-<div class="line"><a name="l04462"></a><span class="lineno"> 4462</span>&#160;            VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);</div>
-<div class="line"><a name="l04463"></a><span class="lineno"> 4463</span>&#160;    }</div>
-<div class="line"><a name="l04464"></a><span class="lineno"> 4464</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04465"></a><span class="lineno"> 4465</span>&#160;    {</div>
-<div class="line"><a name="l04466"></a><span class="lineno"> 4466</span>&#160;        <span class="keywordflow">return</span> VMA_SYSTEM_ALIGNED_MALLOC(size, alignment);</div>
-<div class="line"><a name="l04467"></a><span class="lineno"> 4467</span>&#160;    }</div>
-<div class="line"><a name="l04468"></a><span class="lineno"> 4468</span>&#160;}</div>
-<div class="line"><a name="l04469"></a><span class="lineno"> 4469</span>&#160; </div>
-<div class="line"><a name="l04470"></a><span class="lineno"> 4470</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> VmaFree(<span class="keyword">const</span> VkAllocationCallbacks* pAllocationCallbacks, <span class="keywordtype">void</span>* ptr)</div>
-<div class="line"><a name="l04471"></a><span class="lineno"> 4471</span>&#160;{</div>
-<div class="line"><a name="l04472"></a><span class="lineno"> 4472</span>&#160;    <span class="keywordflow">if</span>((pAllocationCallbacks != VMA_NULL) &amp;&amp;</div>
-<div class="line"><a name="l04473"></a><span class="lineno"> 4473</span>&#160;        (pAllocationCallbacks-&gt;pfnFree != VMA_NULL))</div>
-<div class="line"><a name="l04474"></a><span class="lineno"> 4474</span>&#160;    {</div>
-<div class="line"><a name="l04475"></a><span class="lineno"> 4475</span>&#160;        (*pAllocationCallbacks-&gt;pfnFree)(pAllocationCallbacks-&gt;pUserData, ptr);</div>
-<div class="line"><a name="l04476"></a><span class="lineno"> 4476</span>&#160;    }</div>
-<div class="line"><a name="l04477"></a><span class="lineno"> 4477</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04478"></a><span class="lineno"> 4478</span>&#160;    {</div>
-<div class="line"><a name="l04479"></a><span class="lineno"> 4479</span>&#160;        VMA_SYSTEM_FREE(ptr);</div>
-<div class="line"><a name="l04480"></a><span class="lineno"> 4480</span>&#160;    }</div>
+<div class="line"><a name="l04353"></a><span class="lineno"> 4353</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l04354"></a><span class="lineno"> 4354</span>&#160;<span class="comment">Performs binary search and returns iterator to first element that is greater or</span></div>
+<div class="line"><a name="l04355"></a><span class="lineno"> 4355</span>&#160;<span class="comment">equal to (key), according to comparison (cmp).</span></div>
+<div class="line"><a name="l04356"></a><span class="lineno"> 4356</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l04357"></a><span class="lineno"> 4357</span>&#160;<span class="comment">Cmp should return true if first argument is less than second argument.</span></div>
+<div class="line"><a name="l04358"></a><span class="lineno"> 4358</span>&#160;<span class="comment"></span> </div>
+<div class="line"><a name="l04359"></a><span class="lineno"> 4359</span>&#160;<span class="comment">Returned value is the found element, if present in the collection or place where</span></div>
+<div class="line"><a name="l04360"></a><span class="lineno"> 4360</span>&#160;<span class="comment">new element with value (key) should be inserted.</span></div>
+<div class="line"><a name="l04361"></a><span class="lineno"> 4361</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l04362"></a><span class="lineno"> 4362</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> CmpLess, <span class="keyword">typename</span> IterT, <span class="keyword">typename</span> KeyT&gt;</div>
+<div class="line"><a name="l04363"></a><span class="lineno"> 4363</span>&#160;<span class="keyword">static</span> IterT VmaBinaryFindFirstNotLess(IterT beg, IterT end, <span class="keyword">const</span> KeyT &amp;key, <span class="keyword">const</span> CmpLess&amp; cmp)</div>
+<div class="line"><a name="l04364"></a><span class="lineno"> 4364</span>&#160;{</div>
+<div class="line"><a name="l04365"></a><span class="lineno"> 4365</span>&#160;    <span class="keywordtype">size_t</span> down = 0, up = (end - beg);</div>
+<div class="line"><a name="l04366"></a><span class="lineno"> 4366</span>&#160;    <span class="keywordflow">while</span>(down &lt; up)</div>
+<div class="line"><a name="l04367"></a><span class="lineno"> 4367</span>&#160;    {</div>
+<div class="line"><a name="l04368"></a><span class="lineno"> 4368</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">size_t</span> mid = (down + up) / 2;</div>
+<div class="line"><a name="l04369"></a><span class="lineno"> 4369</span>&#160;        <span class="keywordflow">if</span>(cmp(*(beg+mid), key))</div>
+<div class="line"><a name="l04370"></a><span class="lineno"> 4370</span>&#160;        {</div>
+<div class="line"><a name="l04371"></a><span class="lineno"> 4371</span>&#160;            down = mid + 1;</div>
+<div class="line"><a name="l04372"></a><span class="lineno"> 4372</span>&#160;        }</div>
+<div class="line"><a name="l04373"></a><span class="lineno"> 4373</span>&#160;        <span class="keywordflow">else</span></div>
+<div class="line"><a name="l04374"></a><span class="lineno"> 4374</span>&#160;        {</div>
+<div class="line"><a name="l04375"></a><span class="lineno"> 4375</span>&#160;            up = mid;</div>
+<div class="line"><a name="l04376"></a><span class="lineno"> 4376</span>&#160;        }</div>
+<div class="line"><a name="l04377"></a><span class="lineno"> 4377</span>&#160;    }</div>
+<div class="line"><a name="l04378"></a><span class="lineno"> 4378</span>&#160;    <span class="keywordflow">return</span> beg + down;</div>
+<div class="line"><a name="l04379"></a><span class="lineno"> 4379</span>&#160;}</div>
+<div class="line"><a name="l04380"></a><span class="lineno"> 4380</span>&#160; </div>
+<div class="line"><a name="l04381"></a><span class="lineno"> 4381</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> CmpLess, <span class="keyword">typename</span> IterT, <span class="keyword">typename</span> KeyT&gt;</div>
+<div class="line"><a name="l04382"></a><span class="lineno"> 4382</span>&#160;IterT VmaBinaryFindSorted(<span class="keyword">const</span> IterT&amp; beg, <span class="keyword">const</span> IterT&amp; end, <span class="keyword">const</span> KeyT&amp; value, <span class="keyword">const</span> CmpLess&amp; cmp)</div>
+<div class="line"><a name="l04383"></a><span class="lineno"> 4383</span>&#160;{</div>
+<div class="line"><a name="l04384"></a><span class="lineno"> 4384</span>&#160;    IterT it = VmaBinaryFindFirstNotLess&lt;CmpLess, IterT, KeyT&gt;(</div>
+<div class="line"><a name="l04385"></a><span class="lineno"> 4385</span>&#160;        beg, end, value, cmp);</div>
+<div class="line"><a name="l04386"></a><span class="lineno"> 4386</span>&#160;    <span class="keywordflow">if</span>(it == end ||</div>
+<div class="line"><a name="l04387"></a><span class="lineno"> 4387</span>&#160;        (!cmp(*it, value) &amp;&amp; !cmp(value, *it)))</div>
+<div class="line"><a name="l04388"></a><span class="lineno"> 4388</span>&#160;    {</div>
+<div class="line"><a name="l04389"></a><span class="lineno"> 4389</span>&#160;        <span class="keywordflow">return</span> it;</div>
+<div class="line"><a name="l04390"></a><span class="lineno"> 4390</span>&#160;    }</div>
+<div class="line"><a name="l04391"></a><span class="lineno"> 4391</span>&#160;    <span class="keywordflow">return</span> end;</div>
+<div class="line"><a name="l04392"></a><span class="lineno"> 4392</span>&#160;}</div>
+<div class="line"><a name="l04393"></a><span class="lineno"> 4393</span>&#160; </div>
+<div class="line"><a name="l04394"></a><span class="lineno"> 4394</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l04395"></a><span class="lineno"> 4395</span>&#160;<span class="comment">Returns true if all pointers in the array are not-null and unique.</span></div>
+<div class="line"><a name="l04396"></a><span class="lineno"> 4396</span>&#160;<span class="comment">Warning! O(n^2) complexity. Use only inside VMA_HEAVY_ASSERT.</span></div>
+<div class="line"><a name="l04397"></a><span class="lineno"> 4397</span>&#160;<span class="comment">T must be pointer type, e.g. VmaAllocation, VmaPool.</span></div>
+<div class="line"><a name="l04398"></a><span class="lineno"> 4398</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l04399"></a><span class="lineno"> 4399</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l04400"></a><span class="lineno"> 4400</span>&#160;<span class="keyword">static</span> <span class="keywordtype">bool</span> VmaValidatePointerArray(uint32_t count, <span class="keyword">const</span> T* arr)</div>
+<div class="line"><a name="l04401"></a><span class="lineno"> 4401</span>&#160;{</div>
+<div class="line"><a name="l04402"></a><span class="lineno"> 4402</span>&#160;    <span class="keywordflow">for</span>(uint32_t i = 0; i &lt; count; ++i)</div>
+<div class="line"><a name="l04403"></a><span class="lineno"> 4403</span>&#160;    {</div>
+<div class="line"><a name="l04404"></a><span class="lineno"> 4404</span>&#160;        <span class="keyword">const</span> T iPtr = arr[i];</div>
+<div class="line"><a name="l04405"></a><span class="lineno"> 4405</span>&#160;        <span class="keywordflow">if</span>(iPtr == VMA_NULL)</div>
+<div class="line"><a name="l04406"></a><span class="lineno"> 4406</span>&#160;        {</div>
+<div class="line"><a name="l04407"></a><span class="lineno"> 4407</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l04408"></a><span class="lineno"> 4408</span>&#160;        }</div>
+<div class="line"><a name="l04409"></a><span class="lineno"> 4409</span>&#160;        <span class="keywordflow">for</span>(uint32_t j = i + 1; j &lt; count; ++j)</div>
+<div class="line"><a name="l04410"></a><span class="lineno"> 4410</span>&#160;        {</div>
+<div class="line"><a name="l04411"></a><span class="lineno"> 4411</span>&#160;            <span class="keywordflow">if</span>(iPtr == arr[j])</div>
+<div class="line"><a name="l04412"></a><span class="lineno"> 4412</span>&#160;            {</div>
+<div class="line"><a name="l04413"></a><span class="lineno"> 4413</span>&#160;                <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l04414"></a><span class="lineno"> 4414</span>&#160;            }</div>
+<div class="line"><a name="l04415"></a><span class="lineno"> 4415</span>&#160;        }</div>
+<div class="line"><a name="l04416"></a><span class="lineno"> 4416</span>&#160;    }</div>
+<div class="line"><a name="l04417"></a><span class="lineno"> 4417</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l04418"></a><span class="lineno"> 4418</span>&#160;}</div>
+<div class="line"><a name="l04419"></a><span class="lineno"> 4419</span>&#160; </div>
+<div class="line"><a name="l04420"></a><span class="lineno"> 4420</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> MainT, <span class="keyword">typename</span> NewT&gt;</div>
+<div class="line"><a name="l04421"></a><span class="lineno"> 4421</span>&#160;<span class="keyword">static</span> <span class="keyword">inline</span> <span class="keywordtype">void</span> VmaPnextChainPushFront(MainT* mainStruct, NewT* newStruct)</div>
+<div class="line"><a name="l04422"></a><span class="lineno"> 4422</span>&#160;{</div>
+<div class="line"><a name="l04423"></a><span class="lineno"> 4423</span>&#160;    newStruct-&gt;pNext = mainStruct-&gt;pNext;</div>
+<div class="line"><a name="l04424"></a><span class="lineno"> 4424</span>&#160;    mainStruct-&gt;pNext = newStruct;</div>
+<div class="line"><a name="l04425"></a><span class="lineno"> 4425</span>&#160;}</div>
+<div class="line"><a name="l04426"></a><span class="lineno"> 4426</span>&#160; </div>
+<div class="line"><a name="l04428"></a><span class="lineno"> 4428</span>&#160;<span class="comment">// Memory allocation</span></div>
+<div class="line"><a name="l04429"></a><span class="lineno"> 4429</span>&#160; </div>
+<div class="line"><a name="l04430"></a><span class="lineno"> 4430</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span>* VmaMalloc(<span class="keyword">const</span> VkAllocationCallbacks* pAllocationCallbacks, <span class="keywordtype">size_t</span> size, <span class="keywordtype">size_t</span> alignment)</div>
+<div class="line"><a name="l04431"></a><span class="lineno"> 4431</span>&#160;{</div>
+<div class="line"><a name="l04432"></a><span class="lineno"> 4432</span>&#160;    <span class="keywordflow">if</span>((pAllocationCallbacks != VMA_NULL) &amp;&amp;</div>
+<div class="line"><a name="l04433"></a><span class="lineno"> 4433</span>&#160;        (pAllocationCallbacks-&gt;pfnAllocation != VMA_NULL))</div>
+<div class="line"><a name="l04434"></a><span class="lineno"> 4434</span>&#160;    {</div>
+<div class="line"><a name="l04435"></a><span class="lineno"> 4435</span>&#160;        <span class="keywordflow">return</span> (*pAllocationCallbacks-&gt;pfnAllocation)(</div>
+<div class="line"><a name="l04436"></a><span class="lineno"> 4436</span>&#160;            pAllocationCallbacks-&gt;pUserData,</div>
+<div class="line"><a name="l04437"></a><span class="lineno"> 4437</span>&#160;            size,</div>
+<div class="line"><a name="l04438"></a><span class="lineno"> 4438</span>&#160;            alignment,</div>
+<div class="line"><a name="l04439"></a><span class="lineno"> 4439</span>&#160;            VK_SYSTEM_ALLOCATION_SCOPE_OBJECT);</div>
+<div class="line"><a name="l04440"></a><span class="lineno"> 4440</span>&#160;    }</div>
+<div class="line"><a name="l04441"></a><span class="lineno"> 4441</span>&#160;    <span class="keywordflow">else</span></div>
+<div class="line"><a name="l04442"></a><span class="lineno"> 4442</span>&#160;    {</div>
+<div class="line"><a name="l04443"></a><span class="lineno"> 4443</span>&#160;        <span class="keywordflow">return</span> VMA_SYSTEM_ALIGNED_MALLOC(size, alignment);</div>
+<div class="line"><a name="l04444"></a><span class="lineno"> 4444</span>&#160;    }</div>
+<div class="line"><a name="l04445"></a><span class="lineno"> 4445</span>&#160;}</div>
+<div class="line"><a name="l04446"></a><span class="lineno"> 4446</span>&#160; </div>
+<div class="line"><a name="l04447"></a><span class="lineno"> 4447</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> VmaFree(<span class="keyword">const</span> VkAllocationCallbacks* pAllocationCallbacks, <span class="keywordtype">void</span>* ptr)</div>
+<div class="line"><a name="l04448"></a><span class="lineno"> 4448</span>&#160;{</div>
+<div class="line"><a name="l04449"></a><span class="lineno"> 4449</span>&#160;    <span class="keywordflow">if</span>((pAllocationCallbacks != VMA_NULL) &amp;&amp;</div>
+<div class="line"><a name="l04450"></a><span class="lineno"> 4450</span>&#160;        (pAllocationCallbacks-&gt;pfnFree != VMA_NULL))</div>
+<div class="line"><a name="l04451"></a><span class="lineno"> 4451</span>&#160;    {</div>
+<div class="line"><a name="l04452"></a><span class="lineno"> 4452</span>&#160;        (*pAllocationCallbacks-&gt;pfnFree)(pAllocationCallbacks-&gt;pUserData, ptr);</div>
+<div class="line"><a name="l04453"></a><span class="lineno"> 4453</span>&#160;    }</div>
+<div class="line"><a name="l04454"></a><span class="lineno"> 4454</span>&#160;    <span class="keywordflow">else</span></div>
+<div class="line"><a name="l04455"></a><span class="lineno"> 4455</span>&#160;    {</div>
+<div class="line"><a name="l04456"></a><span class="lineno"> 4456</span>&#160;        VMA_SYSTEM_FREE(ptr);</div>
+<div class="line"><a name="l04457"></a><span class="lineno"> 4457</span>&#160;    }</div>
+<div class="line"><a name="l04458"></a><span class="lineno"> 4458</span>&#160;}</div>
+<div class="line"><a name="l04459"></a><span class="lineno"> 4459</span>&#160; </div>
+<div class="line"><a name="l04460"></a><span class="lineno"> 4460</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l04461"></a><span class="lineno"> 4461</span>&#160;<span class="keyword">static</span> T* VmaAllocate(<span class="keyword">const</span> VkAllocationCallbacks* pAllocationCallbacks)</div>
+<div class="line"><a name="l04462"></a><span class="lineno"> 4462</span>&#160;{</div>
+<div class="line"><a name="l04463"></a><span class="lineno"> 4463</span>&#160;    <span class="keywordflow">return</span> (T*)VmaMalloc(pAllocationCallbacks, <span class="keyword">sizeof</span>(T), VMA_ALIGN_OF(T));</div>
+<div class="line"><a name="l04464"></a><span class="lineno"> 4464</span>&#160;}</div>
+<div class="line"><a name="l04465"></a><span class="lineno"> 4465</span>&#160; </div>
+<div class="line"><a name="l04466"></a><span class="lineno"> 4466</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l04467"></a><span class="lineno"> 4467</span>&#160;<span class="keyword">static</span> T* VmaAllocateArray(<span class="keyword">const</span> VkAllocationCallbacks* pAllocationCallbacks, <span class="keywordtype">size_t</span> count)</div>
+<div class="line"><a name="l04468"></a><span class="lineno"> 4468</span>&#160;{</div>
+<div class="line"><a name="l04469"></a><span class="lineno"> 4469</span>&#160;    <span class="keywordflow">return</span> (T*)VmaMalloc(pAllocationCallbacks, <span class="keyword">sizeof</span>(T) * count, VMA_ALIGN_OF(T));</div>
+<div class="line"><a name="l04470"></a><span class="lineno"> 4470</span>&#160;}</div>
+<div class="line"><a name="l04471"></a><span class="lineno"> 4471</span>&#160; </div>
+<div class="line"><a name="l04472"></a><span class="lineno"> 4472</span>&#160;<span class="preprocessor">#define vma_new(allocator, type)   new(VmaAllocate&lt;type&gt;(allocator))(type)</span></div>
+<div class="line"><a name="l04473"></a><span class="lineno"> 4473</span>&#160; </div>
+<div class="line"><a name="l04474"></a><span class="lineno"> 4474</span>&#160;<span class="preprocessor">#define vma_new_array(allocator, type, count)   new(VmaAllocateArray&lt;type&gt;((allocator), (count)))(type)</span></div>
+<div class="line"><a name="l04475"></a><span class="lineno"> 4475</span>&#160; </div>
+<div class="line"><a name="l04476"></a><span class="lineno"> 4476</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l04477"></a><span class="lineno"> 4477</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> vma_delete(<span class="keyword">const</span> VkAllocationCallbacks* pAllocationCallbacks, T* ptr)</div>
+<div class="line"><a name="l04478"></a><span class="lineno"> 4478</span>&#160;{</div>
+<div class="line"><a name="l04479"></a><span class="lineno"> 4479</span>&#160;    ptr-&gt;~T();</div>
+<div class="line"><a name="l04480"></a><span class="lineno"> 4480</span>&#160;    VmaFree(pAllocationCallbacks, ptr);</div>
 <div class="line"><a name="l04481"></a><span class="lineno"> 4481</span>&#160;}</div>
 <div class="line"><a name="l04482"></a><span class="lineno"> 4482</span>&#160; </div>
 <div class="line"><a name="l04483"></a><span class="lineno"> 4483</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l04484"></a><span class="lineno"> 4484</span>&#160;<span class="keyword">static</span> T* VmaAllocate(<span class="keyword">const</span> VkAllocationCallbacks* pAllocationCallbacks)</div>
+<div class="line"><a name="l04484"></a><span class="lineno"> 4484</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> vma_delete_array(<span class="keyword">const</span> VkAllocationCallbacks* pAllocationCallbacks, T* ptr, <span class="keywordtype">size_t</span> count)</div>
 <div class="line"><a name="l04485"></a><span class="lineno"> 4485</span>&#160;{</div>
-<div class="line"><a name="l04486"></a><span class="lineno"> 4486</span>&#160;    <span class="keywordflow">return</span> (T*)VmaMalloc(pAllocationCallbacks, <span class="keyword">sizeof</span>(T), VMA_ALIGN_OF(T));</div>
-<div class="line"><a name="l04487"></a><span class="lineno"> 4487</span>&#160;}</div>
-<div class="line"><a name="l04488"></a><span class="lineno"> 4488</span>&#160; </div>
-<div class="line"><a name="l04489"></a><span class="lineno"> 4489</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l04490"></a><span class="lineno"> 4490</span>&#160;<span class="keyword">static</span> T* VmaAllocateArray(<span class="keyword">const</span> VkAllocationCallbacks* pAllocationCallbacks, <span class="keywordtype">size_t</span> count)</div>
-<div class="line"><a name="l04491"></a><span class="lineno"> 4491</span>&#160;{</div>
-<div class="line"><a name="l04492"></a><span class="lineno"> 4492</span>&#160;    <span class="keywordflow">return</span> (T*)VmaMalloc(pAllocationCallbacks, <span class="keyword">sizeof</span>(T) * count, VMA_ALIGN_OF(T));</div>
-<div class="line"><a name="l04493"></a><span class="lineno"> 4493</span>&#160;}</div>
-<div class="line"><a name="l04494"></a><span class="lineno"> 4494</span>&#160; </div>
-<div class="line"><a name="l04495"></a><span class="lineno"> 4495</span>&#160;<span class="preprocessor">#define vma_new(allocator, type)   new(VmaAllocate&lt;type&gt;(allocator))(type)</span></div>
-<div class="line"><a name="l04496"></a><span class="lineno"> 4496</span>&#160; </div>
-<div class="line"><a name="l04497"></a><span class="lineno"> 4497</span>&#160;<span class="preprocessor">#define vma_new_array(allocator, type, count)   new(VmaAllocateArray&lt;type&gt;((allocator), (count)))(type)</span></div>
-<div class="line"><a name="l04498"></a><span class="lineno"> 4498</span>&#160; </div>
-<div class="line"><a name="l04499"></a><span class="lineno"> 4499</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l04500"></a><span class="lineno"> 4500</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> vma_delete(<span class="keyword">const</span> VkAllocationCallbacks* pAllocationCallbacks, T* ptr)</div>
-<div class="line"><a name="l04501"></a><span class="lineno"> 4501</span>&#160;{</div>
-<div class="line"><a name="l04502"></a><span class="lineno"> 4502</span>&#160;    ptr-&gt;~T();</div>
-<div class="line"><a name="l04503"></a><span class="lineno"> 4503</span>&#160;    VmaFree(pAllocationCallbacks, ptr);</div>
-<div class="line"><a name="l04504"></a><span class="lineno"> 4504</span>&#160;}</div>
-<div class="line"><a name="l04505"></a><span class="lineno"> 4505</span>&#160; </div>
-<div class="line"><a name="l04506"></a><span class="lineno"> 4506</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l04507"></a><span class="lineno"> 4507</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> vma_delete_array(<span class="keyword">const</span> VkAllocationCallbacks* pAllocationCallbacks, T* ptr, <span class="keywordtype">size_t</span> count)</div>
-<div class="line"><a name="l04508"></a><span class="lineno"> 4508</span>&#160;{</div>
-<div class="line"><a name="l04509"></a><span class="lineno"> 4509</span>&#160;    <span class="keywordflow">if</span>(ptr != VMA_NULL)</div>
-<div class="line"><a name="l04510"></a><span class="lineno"> 4510</span>&#160;    {</div>
-<div class="line"><a name="l04511"></a><span class="lineno"> 4511</span>&#160;        <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = count; i--; )</div>
-<div class="line"><a name="l04512"></a><span class="lineno"> 4512</span>&#160;        {</div>
-<div class="line"><a name="l04513"></a><span class="lineno"> 4513</span>&#160;            ptr[i].~T();</div>
-<div class="line"><a name="l04514"></a><span class="lineno"> 4514</span>&#160;        }</div>
-<div class="line"><a name="l04515"></a><span class="lineno"> 4515</span>&#160;        VmaFree(pAllocationCallbacks, ptr);</div>
-<div class="line"><a name="l04516"></a><span class="lineno"> 4516</span>&#160;    }</div>
-<div class="line"><a name="l04517"></a><span class="lineno"> 4517</span>&#160;}</div>
-<div class="line"><a name="l04518"></a><span class="lineno"> 4518</span>&#160; </div>
-<div class="line"><a name="l04519"></a><span class="lineno"> 4519</span>&#160;<span class="keyword">static</span> <span class="keywordtype">char</span>* VmaCreateStringCopy(<span class="keyword">const</span> VkAllocationCallbacks* allocs, <span class="keyword">const</span> <span class="keywordtype">char</span>* srcStr)</div>
-<div class="line"><a name="l04520"></a><span class="lineno"> 4520</span>&#160;{</div>
-<div class="line"><a name="l04521"></a><span class="lineno"> 4521</span>&#160;    <span class="keywordflow">if</span>(srcStr != VMA_NULL)</div>
-<div class="line"><a name="l04522"></a><span class="lineno"> 4522</span>&#160;    {</div>
-<div class="line"><a name="l04523"></a><span class="lineno"> 4523</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">size_t</span> len = strlen(srcStr);</div>
-<div class="line"><a name="l04524"></a><span class="lineno"> 4524</span>&#160;        <span class="keywordtype">char</span>* <span class="keyword">const</span> result = vma_new_array(allocs, <span class="keywordtype">char</span>, len + 1);</div>
-<div class="line"><a name="l04525"></a><span class="lineno"> 4525</span>&#160;        memcpy(result, srcStr, len + 1);</div>
-<div class="line"><a name="l04526"></a><span class="lineno"> 4526</span>&#160;        <span class="keywordflow">return</span> result;</div>
-<div class="line"><a name="l04527"></a><span class="lineno"> 4527</span>&#160;    }</div>
-<div class="line"><a name="l04528"></a><span class="lineno"> 4528</span>&#160;    <span class="keywordflow">else</span></div>
-<div class="line"><a name="l04529"></a><span class="lineno"> 4529</span>&#160;    {</div>
-<div class="line"><a name="l04530"></a><span class="lineno"> 4530</span>&#160;        <span class="keywordflow">return</span> VMA_NULL;</div>
-<div class="line"><a name="l04531"></a><span class="lineno"> 4531</span>&#160;    }</div>
-<div class="line"><a name="l04532"></a><span class="lineno"> 4532</span>&#160;}</div>
+<div class="line"><a name="l04486"></a><span class="lineno"> 4486</span>&#160;    <span class="keywordflow">if</span>(ptr != VMA_NULL)</div>
+<div class="line"><a name="l04487"></a><span class="lineno"> 4487</span>&#160;    {</div>
+<div class="line"><a name="l04488"></a><span class="lineno"> 4488</span>&#160;        <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = count; i--; )</div>
+<div class="line"><a name="l04489"></a><span class="lineno"> 4489</span>&#160;        {</div>
+<div class="line"><a name="l04490"></a><span class="lineno"> 4490</span>&#160;            ptr[i].~T();</div>
+<div class="line"><a name="l04491"></a><span class="lineno"> 4491</span>&#160;        }</div>
+<div class="line"><a name="l04492"></a><span class="lineno"> 4492</span>&#160;        VmaFree(pAllocationCallbacks, ptr);</div>
+<div class="line"><a name="l04493"></a><span class="lineno"> 4493</span>&#160;    }</div>
+<div class="line"><a name="l04494"></a><span class="lineno"> 4494</span>&#160;}</div>
+<div class="line"><a name="l04495"></a><span class="lineno"> 4495</span>&#160; </div>
+<div class="line"><a name="l04496"></a><span class="lineno"> 4496</span>&#160;<span class="keyword">static</span> <span class="keywordtype">char</span>* VmaCreateStringCopy(<span class="keyword">const</span> VkAllocationCallbacks* allocs, <span class="keyword">const</span> <span class="keywordtype">char</span>* srcStr)</div>
+<div class="line"><a name="l04497"></a><span class="lineno"> 4497</span>&#160;{</div>
+<div class="line"><a name="l04498"></a><span class="lineno"> 4498</span>&#160;    <span class="keywordflow">if</span>(srcStr != VMA_NULL)</div>
+<div class="line"><a name="l04499"></a><span class="lineno"> 4499</span>&#160;    {</div>
+<div class="line"><a name="l04500"></a><span class="lineno"> 4500</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">size_t</span> len = strlen(srcStr);</div>
+<div class="line"><a name="l04501"></a><span class="lineno"> 4501</span>&#160;        <span class="keywordtype">char</span>* <span class="keyword">const</span> result = vma_new_array(allocs, <span class="keywordtype">char</span>, len + 1);</div>
+<div class="line"><a name="l04502"></a><span class="lineno"> 4502</span>&#160;        memcpy(result, srcStr, len + 1);</div>
+<div class="line"><a name="l04503"></a><span class="lineno"> 4503</span>&#160;        <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l04504"></a><span class="lineno"> 4504</span>&#160;    }</div>
+<div class="line"><a name="l04505"></a><span class="lineno"> 4505</span>&#160;    <span class="keywordflow">else</span></div>
+<div class="line"><a name="l04506"></a><span class="lineno"> 4506</span>&#160;    {</div>
+<div class="line"><a name="l04507"></a><span class="lineno"> 4507</span>&#160;        <span class="keywordflow">return</span> VMA_NULL;</div>
+<div class="line"><a name="l04508"></a><span class="lineno"> 4508</span>&#160;    }</div>
+<div class="line"><a name="l04509"></a><span class="lineno"> 4509</span>&#160;}</div>
+<div class="line"><a name="l04510"></a><span class="lineno"> 4510</span>&#160; </div>
+<div class="line"><a name="l04511"></a><span class="lineno"> 4511</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> VmaFreeString(<span class="keyword">const</span> VkAllocationCallbacks* allocs, <span class="keywordtype">char</span>* str)</div>
+<div class="line"><a name="l04512"></a><span class="lineno"> 4512</span>&#160;{</div>
+<div class="line"><a name="l04513"></a><span class="lineno"> 4513</span>&#160;    <span class="keywordflow">if</span>(str != VMA_NULL)</div>
+<div class="line"><a name="l04514"></a><span class="lineno"> 4514</span>&#160;    {</div>
+<div class="line"><a name="l04515"></a><span class="lineno"> 4515</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">size_t</span> len = strlen(str);</div>
+<div class="line"><a name="l04516"></a><span class="lineno"> 4516</span>&#160;        vma_delete_array(allocs, str, len + 1);</div>
+<div class="line"><a name="l04517"></a><span class="lineno"> 4517</span>&#160;    }</div>
+<div class="line"><a name="l04518"></a><span class="lineno"> 4518</span>&#160;}</div>
+<div class="line"><a name="l04519"></a><span class="lineno"> 4519</span>&#160; </div>
+<div class="line"><a name="l04520"></a><span class="lineno"> 4520</span>&#160;<span class="comment">// STL-compatible allocator.</span></div>
+<div class="line"><a name="l04521"></a><span class="lineno"> 4521</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
+<div class="line"><a name="l04522"></a><span class="lineno"> 4522</span>&#160;<span class="keyword">class </span>VmaStlAllocator</div>
+<div class="line"><a name="l04523"></a><span class="lineno"> 4523</span>&#160;{</div>
+<div class="line"><a name="l04524"></a><span class="lineno"> 4524</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l04525"></a><span class="lineno"> 4525</span>&#160;    <span class="keyword">const</span> VkAllocationCallbacks* <span class="keyword">const</span> m_pCallbacks;</div>
+<div class="line"><a name="l04526"></a><span class="lineno"> 4526</span>&#160;    <span class="keyword">typedef</span> T value_type;</div>
+<div class="line"><a name="l04527"></a><span class="lineno"> 4527</span>&#160;    </div>
+<div class="line"><a name="l04528"></a><span class="lineno"> 4528</span>&#160;    VmaStlAllocator(<span class="keyword">const</span> VkAllocationCallbacks* pCallbacks) : m_pCallbacks(pCallbacks) { }</div>
+<div class="line"><a name="l04529"></a><span class="lineno"> 4529</span>&#160;    <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt; VmaStlAllocator(<span class="keyword">const</span> VmaStlAllocator&lt;U&gt;&amp; src) : m_pCallbacks(src.m_pCallbacks) { }</div>
+<div class="line"><a name="l04530"></a><span class="lineno"> 4530</span>&#160; </div>
+<div class="line"><a name="l04531"></a><span class="lineno"> 4531</span>&#160;    T* allocate(<span class="keywordtype">size_t</span> n) { <span class="keywordflow">return</span> VmaAllocateArray&lt;T&gt;(m_pCallbacks, n); }</div>
+<div class="line"><a name="l04532"></a><span class="lineno"> 4532</span>&#160;    <span class="keywordtype">void</span> deallocate(T* p, <span class="keywordtype">size_t</span> n) { VmaFree(m_pCallbacks, p); }</div>
 <div class="line"><a name="l04533"></a><span class="lineno"> 4533</span>&#160; </div>
-<div class="line"><a name="l04534"></a><span class="lineno"> 4534</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> VmaFreeString(<span class="keyword">const</span> VkAllocationCallbacks* allocs, <span class="keywordtype">char</span>* str)</div>
-<div class="line"><a name="l04535"></a><span class="lineno"> 4535</span>&#160;{</div>
-<div class="line"><a name="l04536"></a><span class="lineno"> 4536</span>&#160;    <span class="keywordflow">if</span>(str != VMA_NULL)</div>
-<div class="line"><a name="l04537"></a><span class="lineno"> 4537</span>&#160;    {</div>
-<div class="line"><a name="l04538"></a><span class="lineno"> 4538</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">size_t</span> len = strlen(str);</div>
-<div class="line"><a name="l04539"></a><span class="lineno"> 4539</span>&#160;        vma_delete_array(allocs, str, len + 1);</div>
-<div class="line"><a name="l04540"></a><span class="lineno"> 4540</span>&#160;    }</div>
-<div class="line"><a name="l04541"></a><span class="lineno"> 4541</span>&#160;}</div>
-<div class="line"><a name="l04542"></a><span class="lineno"> 4542</span>&#160; </div>
-<div class="line"><a name="l04543"></a><span class="lineno"> 4543</span>&#160;<span class="comment">// STL-compatible allocator.</span></div>
-<div class="line"><a name="l04544"></a><span class="lineno"> 4544</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
-<div class="line"><a name="l04545"></a><span class="lineno"> 4545</span>&#160;<span class="keyword">class </span>VmaStlAllocator</div>
-<div class="line"><a name="l04546"></a><span class="lineno"> 4546</span>&#160;{</div>
-<div class="line"><a name="l04547"></a><span class="lineno"> 4547</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l04548"></a><span class="lineno"> 4548</span>&#160;    <span class="keyword">const</span> VkAllocationCallbacks* <span class="keyword">const</span> m_pCallbacks;</div>
-<div class="line"><a name="l04549"></a><span class="lineno"> 4549</span>&#160;    <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l04550"></a><span class="lineno"> 4550</span>&#160;    </div>
-<div class="line"><a name="l04551"></a><span class="lineno"> 4551</span>&#160;    VmaStlAllocator(<span class="keyword">const</span> VkAllocationCallbacks* pCallbacks) : m_pCallbacks(pCallbacks) { }</div>
-<div class="line"><a name="l04552"></a><span class="lineno"> 4552</span>&#160;    <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt; VmaStlAllocator(<span class="keyword">const</span> VmaStlAllocator&lt;U&gt;&amp; src) : m_pCallbacks(src.m_pCallbacks) { }</div>
-<div class="line"><a name="l04553"></a><span class="lineno"> 4553</span>&#160; </div>
-<div class="line"><a name="l04554"></a><span class="lineno"> 4554</span>&#160;    T* allocate(<span class="keywordtype">size_t</span> n) { <span class="keywordflow">return</span> VmaAllocateArray&lt;T&gt;(m_pCallbacks, n); }</div>
-<div class="line"><a name="l04555"></a><span class="lineno"> 4555</span>&#160;    <span class="keywordtype">void</span> deallocate(T* p, <span class="keywordtype">size_t</span> n) { VmaFree(m_pCallbacks, p); }</div>
-<div class="line"><a name="l04556"></a><span class="lineno"> 4556</span>&#160; </div>
-<div class="line"><a name="l04557"></a><span class="lineno"> 4557</span>&#160;    <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l04558"></a><span class="lineno"> 4558</span>&#160;    <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> VmaStlAllocator&lt;U&gt;&amp; rhs)<span class="keyword"> const</span></div>
-<div class="line"><a name="l04559"></a><span class="lineno"> 4559</span>&#160;<span class="keyword">    </span>{</div>
-<div class="line"><a name="l04560"></a><span class="lineno"> 4560</span>&#160;        <span class="keywordflow">return</span> m_pCallbacks == rhs.m_pCallbacks;</div>
-<div class="line"><a name="l04561"></a><span class="lineno"> 4561</span>&#160;    }</div>
-<div class="line"><a name="l04562"></a><span class="lineno"> 4562</span>&#160;    <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
-<div class="line"><a name="l04563"></a><span class="lineno"> 4563</span>&#160;    <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> VmaStlAllocator&lt;U&gt;&amp; rhs)<span class="keyword"> const</span></div>
-<div class="line"><a name="l04564"></a><span class="lineno"> 4564</span>&#160;<span class="keyword">    </span>{</div>
-<div class="line"><a name="l04565"></a><span class="lineno"> 4565</span>&#160;        <span class="keywordflow">return</span> m_pCallbacks != rhs.m_pCallbacks;</div>
-<div class="line"><a name="l04566"></a><span class="lineno"> 4566</span>&#160;    }</div>
-<div class="line"><a name="l04567"></a><span class="lineno"> 4567</span>&#160; </div>
-<div class="line"><a name="l04568"></a><span class="lineno"> 4568</span>&#160;    VmaStlAllocator&amp; operator=(<span class="keyword">const</span> VmaStlAllocator&amp; x) = <span class="keyword">delete</span>;</div>
-<div class="line"><a name="l04569"></a><span class="lineno"> 4569</span>&#160;};</div>
-<div class="line"><a name="l04570"></a><span class="lineno"> 4570</span>&#160; </div>
-<div class="line"><a name="l04571"></a><span class="lineno"> 4571</span>&#160;<span class="preprocessor">#if VMA_USE_STL_VECTOR</span></div>
-<div class="line"><a name="l04572"></a><span class="lineno"> 4572</span>&#160; </div>
-<div class="line"><a name="l04573"></a><span class="lineno"> 4573</span>&#160;<span class="preprocessor">#define VmaVector std::vector</span></div>
+<div class="line"><a name="l04534"></a><span class="lineno"> 4534</span>&#160;    <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l04535"></a><span class="lineno"> 4535</span>&#160;    <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> VmaStlAllocator&lt;U&gt;&amp; rhs)<span class="keyword"> const</span></div>
+<div class="line"><a name="l04536"></a><span class="lineno"> 4536</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l04537"></a><span class="lineno"> 4537</span>&#160;        <span class="keywordflow">return</span> m_pCallbacks == rhs.m_pCallbacks;</div>
+<div class="line"><a name="l04538"></a><span class="lineno"> 4538</span>&#160;    }</div>
+<div class="line"><a name="l04539"></a><span class="lineno"> 4539</span>&#160;    <span class="keyword">template</span>&lt;<span class="keyword">typename</span> U&gt;</div>
+<div class="line"><a name="l04540"></a><span class="lineno"> 4540</span>&#160;    <span class="keywordtype">bool</span> operator!=(<span class="keyword">const</span> VmaStlAllocator&lt;U&gt;&amp; rhs)<span class="keyword"> const</span></div>
+<div class="line"><a name="l04541"></a><span class="lineno"> 4541</span>&#160;<span class="keyword">    </span>{</div>
+<div class="line"><a name="l04542"></a><span class="lineno"> 4542</span>&#160;        <span class="keywordflow">return</span> m_pCallbacks != rhs.m_pCallbacks;</div>
+<div class="line"><a name="l04543"></a><span class="lineno"> 4543</span>&#160;    }</div>
+<div class="line"><a name="l04544"></a><span class="lineno"> 4544</span>&#160; </div>
+<div class="line"><a name="l04545"></a><span class="lineno"> 4545</span>&#160;    VmaStlAllocator&amp; operator=(<span class="keyword">const</span> VmaStlAllocator&amp; x) = <span class="keyword">delete</span>;</div>
+<div class="line"><a name="l04546"></a><span class="lineno"> 4546</span>&#160;};</div>
+<div class="line"><a name="l04547"></a><span class="lineno"> 4547</span>&#160; </div>
+<div class="line"><a name="l04548"></a><span class="lineno"> 4548</span>&#160;<span class="preprocessor">#if VMA_USE_STL_VECTOR</span></div>
+<div class="line"><a name="l04549"></a><span class="lineno"> 4549</span>&#160; </div>
+<div class="line"><a name="l04550"></a><span class="lineno"> 4550</span>&#160;<span class="preprocessor">#define VmaVector std::vector</span></div>
+<div class="line"><a name="l04551"></a><span class="lineno"> 4551</span>&#160; </div>
+<div class="line"><a name="l04552"></a><span class="lineno"> 4552</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> allocatorT&gt;</div>
+<div class="line"><a name="l04553"></a><span class="lineno"> 4553</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> VmaVectorInsert(std::vector&lt;T, allocatorT&gt;&amp; vec, <span class="keywordtype">size_t</span> index, <span class="keyword">const</span> T&amp; item)</div>
+<div class="line"><a name="l04554"></a><span class="lineno"> 4554</span>&#160;{</div>
+<div class="line"><a name="l04555"></a><span class="lineno"> 4555</span>&#160;    vec.insert(vec.begin() + index, item);</div>
+<div class="line"><a name="l04556"></a><span class="lineno"> 4556</span>&#160;}</div>
+<div class="line"><a name="l04557"></a><span class="lineno"> 4557</span>&#160; </div>
+<div class="line"><a name="l04558"></a><span class="lineno"> 4558</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> allocatorT&gt;</div>
+<div class="line"><a name="l04559"></a><span class="lineno"> 4559</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> VmaVectorRemove(std::vector&lt;T, allocatorT&gt;&amp; vec, <span class="keywordtype">size_t</span> index)</div>
+<div class="line"><a name="l04560"></a><span class="lineno"> 4560</span>&#160;{</div>
+<div class="line"><a name="l04561"></a><span class="lineno"> 4561</span>&#160;    vec.erase(vec.begin() + index);</div>
+<div class="line"><a name="l04562"></a><span class="lineno"> 4562</span>&#160;}</div>
+<div class="line"><a name="l04563"></a><span class="lineno"> 4563</span>&#160; </div>
+<div class="line"><a name="l04564"></a><span class="lineno"> 4564</span>&#160;<span class="preprocessor">#else // #if VMA_USE_STL_VECTOR</span></div>
+<div class="line"><a name="l04565"></a><span class="lineno"> 4565</span>&#160; </div>
+<div class="line"><a name="l04566"></a><span class="lineno"> 4566</span>&#160;<span class="comment">/* Class with interface compatible with subset of std::vector.</span></div>
+<div class="line"><a name="l04567"></a><span class="lineno"> 4567</span>&#160;<span class="comment">T must be POD because constructors and destructors are not called and memcpy is</span></div>
+<div class="line"><a name="l04568"></a><span class="lineno"> 4568</span>&#160;<span class="comment">used for these objects. */</span></div>
+<div class="line"><a name="l04569"></a><span class="lineno"> 4569</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> AllocatorT&gt;</div>
+<div class="line"><a name="l04570"></a><span class="lineno"> 4570</span>&#160;<span class="keyword">class </span>VmaVector</div>
+<div class="line"><a name="l04571"></a><span class="lineno"> 4571</span>&#160;{</div>
+<div class="line"><a name="l04572"></a><span class="lineno"> 4572</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l04573"></a><span class="lineno"> 4573</span>&#160;    <span class="keyword">typedef</span> T value_type;</div>
 <div class="line"><a name="l04574"></a><span class="lineno"> 4574</span>&#160; </div>
-<div class="line"><a name="l04575"></a><span class="lineno"> 4575</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> allocatorT&gt;</div>
-<div class="line"><a name="l04576"></a><span class="lineno"> 4576</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> VmaVectorInsert(std::vector&lt;T, allocatorT&gt;&amp; vec, <span class="keywordtype">size_t</span> index, <span class="keyword">const</span> T&amp; item)</div>
-<div class="line"><a name="l04577"></a><span class="lineno"> 4577</span>&#160;{</div>
-<div class="line"><a name="l04578"></a><span class="lineno"> 4578</span>&#160;    vec.insert(vec.begin() + index, item);</div>
-<div class="line"><a name="l04579"></a><span class="lineno"> 4579</span>&#160;}</div>
-<div class="line"><a name="l04580"></a><span class="lineno"> 4580</span>&#160; </div>
-<div class="line"><a name="l04581"></a><span class="lineno"> 4581</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> allocatorT&gt;</div>
-<div class="line"><a name="l04582"></a><span class="lineno"> 4582</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> VmaVectorRemove(std::vector&lt;T, allocatorT&gt;&amp; vec, <span class="keywordtype">size_t</span> index)</div>
-<div class="line"><a name="l04583"></a><span class="lineno"> 4583</span>&#160;{</div>
-<div class="line"><a name="l04584"></a><span class="lineno"> 4584</span>&#160;    vec.erase(vec.begin() + index);</div>
-<div class="line"><a name="l04585"></a><span class="lineno"> 4585</span>&#160;}</div>
-<div class="line"><a name="l04586"></a><span class="lineno"> 4586</span>&#160; </div>
-<div class="line"><a name="l04587"></a><span class="lineno"> 4587</span>&#160;<span class="preprocessor">#else // #if VMA_USE_STL_VECTOR</span></div>
-<div class="line"><a name="l04588"></a><span class="lineno"> 4588</span>&#160; </div>
-<div class="line"><a name="l04589"></a><span class="lineno"> 4589</span>&#160;<span class="comment">/* Class with interface compatible with subset of std::vector.</span></div>
-<div class="line"><a name="l04590"></a><span class="lineno"> 4590</span>&#160;<span class="comment">T must be POD because constructors and destructors are not called and memcpy is</span></div>
-<div class="line"><a name="l04591"></a><span class="lineno"> 4591</span>&#160;<span class="comment">used for these objects. */</span></div>
-<div class="line"><a name="l04592"></a><span class="lineno"> 4592</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> AllocatorT&gt;</div>
-<div class="line"><a name="l04593"></a><span class="lineno"> 4593</span>&#160;<span class="keyword">class </span>VmaVector</div>
-<div class="line"><a name="l04594"></a><span class="lineno"> 4594</span>&#160;{</div>
-<div class="line"><a name="l04595"></a><span class="lineno"> 4595</span>&#160;<span class="keyword">public</span>:</div>
-<div class="line"><a name="l04596"></a><span class="lineno"> 4596</span>&#160;    <span class="keyword">typedef</span> T value_type;</div>
-<div class="line"><a name="l04597"></a><span class="lineno"> 4597</span>&#160; </div>
-<div class="line"><a name="l04598"></a><span class="lineno"> 4598</span>&#160;    VmaVector(<span class="keyword">const</span> AllocatorT&amp; allocator) :</div>
-<div class="line"><a name="l04599"></a><span class="lineno"> 4599</span>&#160;        m_Allocator(allocator),</div>
-<div class="line"><a name="l04600"></a><span class="lineno"> 4600</span>&#160;        m_pArray(VMA_NULL),</div>
-<div class="line"><a name="l04601"></a><span class="lineno"> 4601</span>&#160;        m_Count(0),</div>
-<div class="line"><a name="l04602"></a><span class="lineno"> 4602</span>&#160;        m_Capacity(0)</div>
-<div class="line"><a name="l04603"></a><span class="lineno"> 4603</span>&#160;    {</div>
-<div class="line"><a name="l04604"></a><span class="lineno"> 4604</span>&#160;    }</div>
-<div class="line"><a name="l04605"></a><span class="lineno"> 4605</span>&#160; </div>
-<div class="line"><a name="l04606"></a><span class="lineno"> 4606</span>&#160;    VmaVector(<span class="keywordtype">size_t</span> count, <span class="keyword">const</span> AllocatorT&amp; allocator) :</div>
-<div class="line"><a name="l04607"></a><span class="lineno"> 4607</span>&#160;        m_Allocator(allocator),</div>
-<div class="line"><a name="l04608"></a><span class="lineno"> 4608</span>&#160;        m_pArray(count ? (T*)VmaAllocateArray&lt;T&gt;(allocator.m_pCallbacks, count) : VMA_NULL),</div>
-<div class="line"><a name="l04609"></a><span class="lineno"> 4609</span>&#160;        m_Count(count),</div>
-<div class="line"><a name="l04610"></a><span class="lineno"> 4610</span>&#160;        m_Capacity(count)</div>
-<div class="line"><a name="l04611"></a><span class="lineno"> 4611</span>&#160;    {</div>
-<div class="line"><a name="l04612"></a><span class="lineno"> 4612</span>&#160;    }</div>
-<div class="line"><a name="l04613"></a><span class="lineno"> 4613</span>&#160;    </div>
-<div class="line"><a name="l04614"></a><span class="lineno"> 4614</span>&#160;    <span class="comment">// This version of the constructor is here for compatibility with pre-C++14 std::vector.</span></div>
-<div class="line"><a name="l04615"></a><span class="lineno"> 4615</span>&#160;    <span class="comment">// value is unused.</span></div>
-<div class="line"><a name="l04616"></a><span class="lineno"> 4616</span>&#160;    VmaVector(<span class="keywordtype">size_t</span> count, <span class="keyword">const</span> T&amp; value, <span class="keyword">const</span> AllocatorT&amp; allocator)</div>
-<div class="line"><a name="l04617"></a><span class="lineno"> 4617</span>&#160;        : VmaVector(count, allocator) {}</div>
-<div class="line"><a name="l04618"></a><span class="lineno"> 4618</span>&#160;    </div>
-<div class="line"><a name="l04619"></a><span class="lineno"> 4619</span>&#160;    VmaVector(<span class="keyword">const</span> VmaVector&lt;T, AllocatorT&gt;&amp; src) :</div>
-<div class="line"><a name="l04620"></a><span class="lineno"> 4620</span>&#160;        m_Allocator(src.m_Allocator),</div>
-<div class="line"><a name="l04621"></a><span class="lineno"> 4621</span>&#160;        m_pArray(src.m_Count ? (T*)VmaAllocateArray&lt;T&gt;(src.m_Allocator.m_pCallbacks, src.m_Count) : VMA_NULL),</div>
-<div class="line"><a name="l04622"></a><span class="lineno"> 4622</span>&#160;        m_Count(src.m_Count),</div>
-<div class="line"><a name="l04623"></a><span class="lineno"> 4623</span>&#160;        m_Capacity(src.m_Count)</div>
-<div class="line"><a name="l04624"></a><span class="lineno"> 4624</span>&#160;    {</div>
-<div class="line"><a name="l04625"></a><span class="lineno"> 4625</span>&#160;        <span class="keywordflow">if</span>(m_Count != 0)</div>
-<div class="line"><a name="l04626"></a><span class="lineno"> 4626</span>&#160;        {</div>
-<div class="line"><a name="l04627"></a><span class="lineno"> 4627</span>&#160;            memcpy(m_pArray, src.m_pArray, m_Count * <span class="keyword">sizeof</span>(T));</div>
-<div class="line"><a name="l04628"></a><span class="lineno"> 4628</span>&#160;        }</div>
-<div class="line"><a name="l04629"></a><span class="lineno"> 4629</span>&#160;    }</div>
+<div class="line"><a name="l04575"></a><span class="lineno"> 4575</span>&#160;    VmaVector(<span class="keyword">const</span> AllocatorT&amp; allocator) :</div>
+<div class="line"><a name="l04576"></a><span class="lineno"> 4576</span>&#160;        m_Allocator(allocator),</div>
+<div class="line"><a name="l04577"></a><span class="lineno"> 4577</span>&#160;        m_pArray(VMA_NULL),</div>
+<div class="line"><a name="l04578"></a><span class="lineno"> 4578</span>&#160;        m_Count(0),</div>
+<div class="line"><a name="l04579"></a><span class="lineno"> 4579</span>&#160;        m_Capacity(0)</div>
+<div class="line"><a name="l04580"></a><span class="lineno"> 4580</span>&#160;    {</div>
+<div class="line"><a name="l04581"></a><span class="lineno"> 4581</span>&#160;    }</div>
+<div class="line"><a name="l04582"></a><span class="lineno"> 4582</span>&#160; </div>
+<div class="line"><a name="l04583"></a><span class="lineno"> 4583</span>&#160;    VmaVector(<span class="keywordtype">size_t</span> count, <span class="keyword">const</span> AllocatorT&amp; allocator) :</div>
+<div class="line"><a name="l04584"></a><span class="lineno"> 4584</span>&#160;        m_Allocator(allocator),</div>
+<div class="line"><a name="l04585"></a><span class="lineno"> 4585</span>&#160;        m_pArray(count ? (T*)VmaAllocateArray&lt;T&gt;(allocator.m_pCallbacks, count) : VMA_NULL),</div>
+<div class="line"><a name="l04586"></a><span class="lineno"> 4586</span>&#160;        m_Count(count),</div>
+<div class="line"><a name="l04587"></a><span class="lineno"> 4587</span>&#160;        m_Capacity(count)</div>
+<div class="line"><a name="l04588"></a><span class="lineno"> 4588</span>&#160;    {</div>
+<div class="line"><a name="l04589"></a><span class="lineno"> 4589</span>&#160;    }</div>
+<div class="line"><a name="l04590"></a><span class="lineno"> 4590</span>&#160;    </div>
+<div class="line"><a name="l04591"></a><span class="lineno"> 4591</span>&#160;    <span class="comment">// This version of the constructor is here for compatibility with pre-C++14 std::vector.</span></div>
+<div class="line"><a name="l04592"></a><span class="lineno"> 4592</span>&#160;    <span class="comment">// value is unused.</span></div>
+<div class="line"><a name="l04593"></a><span class="lineno"> 4593</span>&#160;    VmaVector(<span class="keywordtype">size_t</span> count, <span class="keyword">const</span> T&amp; value, <span class="keyword">const</span> AllocatorT&amp; allocator)</div>
+<div class="line"><a name="l04594"></a><span class="lineno"> 4594</span>&#160;        : VmaVector(count, allocator) {}</div>
+<div class="line"><a name="l04595"></a><span class="lineno"> 4595</span>&#160;    </div>
+<div class="line"><a name="l04596"></a><span class="lineno"> 4596</span>&#160;    VmaVector(<span class="keyword">const</span> VmaVector&lt;T, AllocatorT&gt;&amp; src) :</div>
+<div class="line"><a name="l04597"></a><span class="lineno"> 4597</span>&#160;        m_Allocator(src.m_Allocator),</div>
+<div class="line"><a name="l04598"></a><span class="lineno"> 4598</span>&#160;        m_pArray(src.m_Count ? (T*)VmaAllocateArray&lt;T&gt;(src.m_Allocator.m_pCallbacks, src.m_Count) : VMA_NULL),</div>
+<div class="line"><a name="l04599"></a><span class="lineno"> 4599</span>&#160;        m_Count(src.m_Count),</div>
+<div class="line"><a name="l04600"></a><span class="lineno"> 4600</span>&#160;        m_Capacity(src.m_Count)</div>
+<div class="line"><a name="l04601"></a><span class="lineno"> 4601</span>&#160;    {</div>
+<div class="line"><a name="l04602"></a><span class="lineno"> 4602</span>&#160;        <span class="keywordflow">if</span>(m_Count != 0)</div>
+<div class="line"><a name="l04603"></a><span class="lineno"> 4603</span>&#160;        {</div>
+<div class="line"><a name="l04604"></a><span class="lineno"> 4604</span>&#160;            memcpy(m_pArray, src.m_pArray, m_Count * <span class="keyword">sizeof</span>(T));</div>
+<div class="line"><a name="l04605"></a><span class="lineno"> 4605</span>&#160;        }</div>
+<div class="line"><a name="l04606"></a><span class="lineno"> 4606</span>&#160;    }</div>
+<div class="line"><a name="l04607"></a><span class="lineno"> 4607</span>&#160;    </div>
+<div class="line"><a name="l04608"></a><span class="lineno"> 4608</span>&#160;    ~VmaVector()</div>
+<div class=&