New API for defragmentation. COMPATIBILITY BREAKING!

See structure VmaDefragmentationInfo, VmaDefragmentationMove, VmaDefragmentationPassMoveInfo, VmaDefragmentationStats, function vmaBeginDefragmentation, vmaEndDefragmentation, vmaBeginDefragmentationPass, vmaEndDefragmentationPass.

Switched to TLSF as the default algorithm - in default pools, custom pools, virtual blocks. Removed generic and buddy algorithm. Removed flags: VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT, VMA_POOL_CREATE_TLSF_ALGORITHM_BIT, VMA_VIRTUAL_BLOCK_CREATE_BUDDY_ALGORITHM_BIT, VMA_VIRTUAL_BLOCK_CREATE_TLSF_ALGORITHM_BIT.

Updated and regenerated documentation.
This commit is contained in:
Adam Sawicki 2022-02-22 23:38:19 +01:00
parent 9104ef3d45
commit 88510e9801
67 changed files with 3403 additions and 4413 deletions

View file

@ -66,9 +66,8 @@ $(function() {
<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
<li>alignment&#160;:&#160;<a class="el" href="struct_vma_virtual_allocation_create_info.html#a9d19709872fc1904a105079e1c885821">VmaVirtualAllocationCreateInfo</a></li>
<li>allocation&#160;:&#160;<a class="el" href="struct_vma_defragmentation_pass_move_info.html#ae885c861c2dd8d622e6c19e281d035cc">VmaDefragmentationPassMoveInfo</a></li>
<li>allocationBytes&#160;:&#160;<a class="el" href="struct_vma_statistics.html#a21db06eba3422f87a2b4b4703d879c16">VmaStatistics</a></li>
<li>allocationCount&#160;:&#160;<a class="el" href="struct_vma_defragmentation_info2.html#a3cf86ab32c1da779b4923d301a3056ba">VmaDefragmentationInfo2</a>, <a class="el" href="struct_vma_statistics.html#ab0ff76e50f58f9f54b6f265e5bf5dde2">VmaStatistics</a></li>
<li>allocationCount&#160;:&#160;<a class="el" href="struct_vma_statistics.html#ab0ff76e50f58f9f54b6f265e5bf5dde2">VmaStatistics</a></li>
<li>allocationSizeMax&#160;:&#160;<a class="el" href="struct_vma_detailed_statistics.html#a06b2add24eed3449a66ff151979a0201">VmaDetailedStatistics</a></li>
<li>allocationSizeMin&#160;:&#160;<a class="el" href="struct_vma_detailed_statistics.html#a6fb397e7487e10f2a52e241577d2a2b8">VmaDetailedStatistics</a></li>
<li>allocationsMoved&#160;:&#160;<a class="el" href="struct_vma_defragmentation_stats.html#aefeabf130022008eadd75999478af3f9">VmaDefragmentationStats</a></li>
@ -85,56 +84,48 @@ $(function() {
</ul>
<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
<li>commandBuffer&#160;:&#160;<a class="el" href="struct_vma_defragmentation_info2.html#a7f71f39590c5316771493d2333f9c1bd">VmaDefragmentationInfo2</a></li>
</ul>
<h3><a id="index_d" name="index_d"></a>- d -</h3><ul>
<li>device&#160;:&#160;<a class="el" href="struct_vma_allocator_create_info.html#ad924ddd77b04039c88d0c09b0ffcd500">VmaAllocatorCreateInfo</a>, <a class="el" href="struct_vma_allocator_info.html#a012b4c485bf3b0ea8921352c5ee0c357">VmaAllocatorInfo</a></li>
<li>deviceMemory&#160;:&#160;<a class="el" href="struct_vma_allocation_info.html#ae0bfb7dfdf79a76ffefc9a94677a2f67">VmaAllocationInfo</a></li>
<li>deviceMemoryBlocksFreed&#160;:&#160;<a class="el" href="struct_vma_defragmentation_stats.html#a0113f1877904a5d1ee8f409216ff276b">VmaDefragmentationStats</a></li>
<li>dstMemory&#160;:&#160;<a class="el" href="struct_vma_defragmentation_move.html#a382fbec8dac2747abdc1883b69ef9458">VmaDefragmentationMove</a></li>
<li>dstOffset&#160;:&#160;<a class="el" href="struct_vma_defragmentation_move.html#a80c466b445bc272f82c7dbf1a971ba18">VmaDefragmentationMove</a></li>
</ul>
<h3><a id="index_f" name="index_f"></a>- f -</h3><ul>
<li>flags&#160;:&#160;<a class="el" href="struct_vma_allocation_create_info.html#add09658ac14fe290ace25470ddd6d41b">VmaAllocationCreateInfo</a>, <a class="el" href="struct_vma_allocator_create_info.html#a392ea2ecbaff93f91a7c49f735ad4346">VmaAllocatorCreateInfo</a>, <a class="el" href="struct_vma_defragmentation_info2.html#a53e844ee5633e229cf6daf14b2d9fff9">VmaDefragmentationInfo2</a>, <a class="el" href="struct_vma_pool_create_info.html#a8405139f63d078340ae74513a59f5446">VmaPoolCreateInfo</a>, <a class="el" href="struct_vma_virtual_allocation_create_info.html#ab10e16956cc4bf20ced9de77d1129ea4">VmaVirtualAllocationCreateInfo</a>, <a class="el" href="struct_vma_virtual_block_create_info.html#aaab9bf7e2d228c02ab6d90a72a6e6912">VmaVirtualBlockCreateInfo</a></li>
<li>flags&#160;:&#160;<a class="el" href="struct_vma_allocation_create_info.html#add09658ac14fe290ace25470ddd6d41b">VmaAllocationCreateInfo</a>, <a class="el" href="struct_vma_allocator_create_info.html#a392ea2ecbaff93f91a7c49f735ad4346">VmaAllocatorCreateInfo</a>, <a class="el" href="struct_vma_defragmentation_info.html#a3e23080c978ecf3abb3180f5b2069da7">VmaDefragmentationInfo</a>, <a class="el" href="struct_vma_pool_create_info.html#a8405139f63d078340ae74513a59f5446">VmaPoolCreateInfo</a>, <a class="el" href="struct_vma_virtual_allocation_create_info.html#ab10e16956cc4bf20ced9de77d1129ea4">VmaVirtualAllocationCreateInfo</a>, <a class="el" href="struct_vma_virtual_block_create_info.html#aaab9bf7e2d228c02ab6d90a72a6e6912">VmaVirtualBlockCreateInfo</a></li>
</ul>
<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
<li>instance&#160;:&#160;<a class="el" href="struct_vma_allocator_create_info.html#a70dd42e29b1df1d1b9b61532ae0b370b">VmaAllocatorCreateInfo</a>, <a class="el" href="struct_vma_allocator_info.html#a2ed6a4d2d3fea039d66a13f15d0ce5fe">VmaAllocatorInfo</a></li>
<li>internalData&#160;:&#160;<a class="el" href="struct_vma_defragmentation_move.html#a4f3637400767f3e642b3936e18b00e0f">VmaDefragmentationMove</a></li>
</ul>
<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
<li>maxAllocationsToMove&#160;:&#160;<a class="el" href="struct_vma_defragmentation_info.html#aa7c7304e13c71f604c907196c4e28fbc">VmaDefragmentationInfo</a></li>
<li>maxAllocationsPerPass&#160;:&#160;<a class="el" href="struct_vma_defragmentation_info.html#ac2db29d309bebc4f7d55041416e9694b">VmaDefragmentationInfo</a></li>
<li>maxBlockCount&#160;:&#160;<a class="el" href="struct_vma_pool_create_info.html#ae41142f2834fcdc82baa4883c187b75c">VmaPoolCreateInfo</a></li>
<li>maxBytesToMove&#160;:&#160;<a class="el" href="struct_vma_defragmentation_info.html#acb311c940a777270e67e1b81c5ab6a1d">VmaDefragmentationInfo</a></li>
<li>maxCpuAllocationsToMove&#160;:&#160;<a class="el" href="struct_vma_defragmentation_info2.html#a94c2c7223d52878445a8cccce396b671">VmaDefragmentationInfo2</a></li>
<li>maxCpuBytesToMove&#160;:&#160;<a class="el" href="struct_vma_defragmentation_info2.html#af78e1ea40c22d85137b65f6b384a4d0a">VmaDefragmentationInfo2</a></li>
<li>maxGpuAllocationsToMove&#160;:&#160;<a class="el" href="struct_vma_defragmentation_info2.html#a40d53d33e71ba0b66f844ed63c05a3f6">VmaDefragmentationInfo2</a></li>
<li>maxGpuBytesToMove&#160;:&#160;<a class="el" href="struct_vma_defragmentation_info2.html#a4ddbc898d0afe1518f863a3763628f08">VmaDefragmentationInfo2</a></li>
<li>memory&#160;:&#160;<a class="el" href="struct_vma_defragmentation_pass_move_info.html#a06eb0c8690aa0d3478a036753492e769">VmaDefragmentationPassMoveInfo</a></li>
<li>maxBytesPerPass&#160;:&#160;<a class="el" href="struct_vma_defragmentation_info.html#a637ada77b02179a27fa92290000afac4">VmaDefragmentationInfo</a></li>
<li>memoryHeap&#160;:&#160;<a class="el" href="struct_vma_total_statistics.html#a39beeba5b3a2e7cfe5f5e2331a2705ce">VmaTotalStatistics</a></li>
<li>memoryType&#160;:&#160;<a class="el" href="struct_vma_allocation_info.html#a7f6b0aa58c135e488e6b40a388dad9d5">VmaAllocationInfo</a>, <a class="el" href="struct_vma_total_statistics.html#acb70e5b7fe543813ed8ba9282640969d">VmaTotalStatistics</a></li>
<li>memoryTypeBits&#160;:&#160;<a class="el" href="struct_vma_allocation_create_info.html#a3bf940c0271d85d6ba32a4d820075055">VmaAllocationCreateInfo</a></li>
<li>memoryTypeIndex&#160;:&#160;<a class="el" href="struct_vma_pool_create_info.html#a596fa76b685d3f1f688f84a709a5b319">VmaPoolCreateInfo</a></li>
<li>minAllocationAlignment&#160;:&#160;<a class="el" href="struct_vma_pool_create_info.html#ade3eca546f0c6ab4e8fbf20eb6d854cb">VmaPoolCreateInfo</a></li>
<li>minBlockCount&#160;:&#160;<a class="el" href="struct_vma_pool_create_info.html#ad8006fb803185c0a699d30f3e9a865ae">VmaPoolCreateInfo</a></li>
<li>moveCount&#160;:&#160;<a class="el" href="struct_vma_defragmentation_pass_info.html#ac1086e657ba995f8d1f4e49b83dcfb6c">VmaDefragmentationPassInfo</a></li>
<li>moveCount&#160;:&#160;<a class="el" href="struct_vma_defragmentation_pass_move_info.html#a1b3e18c23f9691f35baf183e615c4408">VmaDefragmentationPassMoveInfo</a></li>
</ul>
<h3><a id="index_o" name="index_o"></a>- o -</h3><ul>
<li>offset&#160;:&#160;<a class="el" href="struct_vma_allocation_info.html#a4a3c732388dbdc7a23f9365b00825268">VmaAllocationInfo</a>, <a class="el" href="struct_vma_defragmentation_pass_move_info.html#a8ab4508bc03625b0653c880576be96c6">VmaDefragmentationPassMoveInfo</a>, <a class="el" href="struct_vma_virtual_allocation_info.html#accb40a8205f49ccca3de975da7d1a2b5">VmaVirtualAllocationInfo</a></li>
<li>offset&#160;:&#160;<a class="el" href="struct_vma_allocation_info.html#a4a3c732388dbdc7a23f9365b00825268">VmaAllocationInfo</a>, <a class="el" href="struct_vma_virtual_allocation_info.html#accb40a8205f49ccca3de975da7d1a2b5">VmaVirtualAllocationInfo</a></li>
<li>operation&#160;:&#160;<a class="el" href="struct_vma_defragmentation_move.html#a20996a4686c9246dff77b375ac4a91e2">VmaDefragmentationMove</a></li>
</ul>
<h3><a id="index_p" name="index_p"></a>- p -</h3><ul>
<li>pAllocationCallbacks&#160;:&#160;<a class="el" href="struct_vma_allocator_create_info.html#a6e409087e3be55400d0e4ccbe43c608d">VmaAllocatorCreateInfo</a>, <a class="el" href="struct_vma_virtual_block_create_info.html#a290283bf915c257d24584872d793ad30">VmaVirtualBlockCreateInfo</a></li>
<li>pAllocations&#160;:&#160;<a class="el" href="struct_vma_defragmentation_info2.html#ab6d288f29d028156cf73542d630a2e32">VmaDefragmentationInfo2</a></li>
<li>pAllocationsChanged&#160;:&#160;<a class="el" href="struct_vma_defragmentation_info2.html#a76d51a644dc7f5405d0cdd0025ecd0cc">VmaDefragmentationInfo2</a></li>
<li>pDeviceMemoryCallbacks&#160;:&#160;<a class="el" href="struct_vma_allocator_create_info.html#af1380969b5e1ea4c3184a877892d260e">VmaAllocatorCreateInfo</a></li>
<li>pfnAllocate&#160;:&#160;<a class="el" href="struct_vma_device_memory_callbacks.html#a4f17f7b255101e733b44d5633aceabfb">VmaDeviceMemoryCallbacks</a></li>
<li>pfnFree&#160;:&#160;<a class="el" href="struct_vma_device_memory_callbacks.html#abe8a3328bbc916f6f712fdb6b299444c">VmaDeviceMemoryCallbacks</a></li>
@ -142,10 +133,8 @@ $(function() {
<li>physicalDevice&#160;:&#160;<a class="el" href="struct_vma_allocator_create_info.html#a08230f04ae6ccf8a78150a9e829a7156">VmaAllocatorCreateInfo</a>, <a class="el" href="struct_vma_allocator_info.html#aba2b703f96e51d567717e1fb2935b47a">VmaAllocatorInfo</a></li>
<li>pMappedData&#160;:&#160;<a class="el" href="struct_vma_allocation_info.html#a5eeffbe2d2f30f53370ff14aefbadbe2">VmaAllocationInfo</a></li>
<li>pMemoryAllocateNext&#160;:&#160;<a class="el" href="struct_vma_pool_create_info.html#af0f8c58f51a2a7a0a389dc79565044d7">VmaPoolCreateInfo</a></li>
<li>pMoves&#160;:&#160;<a class="el" href="struct_vma_defragmentation_pass_info.html#acbd42d4a3357999da130a95cd99a3792">VmaDefragmentationPassInfo</a></li>
<li>pool&#160;:&#160;<a class="el" href="struct_vma_allocation_create_info.html#a6272c0555cfd1fe28bff1afeb6190150">VmaAllocationCreateInfo</a></li>
<li>poolCount&#160;:&#160;<a class="el" href="struct_vma_defragmentation_info2.html#a7e70aa2a1081d849dcc7829b19d3ec9d">VmaDefragmentationInfo2</a></li>
<li>pPools&#160;:&#160;<a class="el" href="struct_vma_defragmentation_info2.html#a3c9c6aa5c97d5670f8e362b3a6f3029b">VmaDefragmentationInfo2</a></li>
<li>pMoves&#160;:&#160;<a class="el" href="struct_vma_defragmentation_pass_move_info.html#adfa7a4994afd9b940e7f1dfaf436a725">VmaDefragmentationPassMoveInfo</a></li>
<li>pool&#160;:&#160;<a class="el" href="struct_vma_allocation_create_info.html#a6272c0555cfd1fe28bff1afeb6190150">VmaAllocationCreateInfo</a>, <a class="el" href="struct_vma_defragmentation_info.html#a18dd2097d8ab2976cdc7dd3e7b978bd4">VmaDefragmentationInfo</a></li>
<li>preferredFlags&#160;:&#160;<a class="el" href="struct_vma_allocation_create_info.html#a7fe8d81a1ad10b2a2faacacee5b15d6d">VmaAllocationCreateInfo</a></li>
<li>preferredLargeHeapBlockSize&#160;:&#160;<a class="el" href="struct_vma_allocator_create_info.html#a8e4714298e3121cdd8b214a1ae7a637a">VmaAllocatorCreateInfo</a></li>
<li>priority&#160;:&#160;<a class="el" href="struct_vma_allocation_create_info.html#a983d39e1a2e63649d78a960aa2fdd0f7">VmaAllocationCreateInfo</a>, <a class="el" href="struct_vma_pool_create_info.html#a16e686c688f6725f119ebf6e24ab5274">VmaPoolCreateInfo</a></li>
@ -162,6 +151,7 @@ $(function() {
<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
<li>size&#160;:&#160;<a class="el" href="struct_vma_allocation_info.html#aac76d113a6a5ccbb09fea00fb25fd18f">VmaAllocationInfo</a>, <a class="el" href="struct_vma_virtual_allocation_create_info.html#aae08752b86817abd0d944c6025dc603e">VmaVirtualAllocationCreateInfo</a>, <a class="el" href="struct_vma_virtual_allocation_info.html#afb6d6bd0a6813869ea0842048d40aa2b">VmaVirtualAllocationInfo</a>, <a class="el" href="struct_vma_virtual_block_create_info.html#a670ab8c6a6e822f3c36781d79e8824e9">VmaVirtualBlockCreateInfo</a></li>
<li>srcAllocation&#160;:&#160;<a class="el" href="struct_vma_defragmentation_move.html#a25aa1bb64efc507a49c6cbc50689f862">VmaDefragmentationMove</a></li>
<li>statistics&#160;:&#160;<a class="el" href="struct_vma_budget.html#a6d15ab3a798fd62d9efa3a1e1f83bf54">VmaBudget</a>, <a class="el" href="struct_vma_detailed_statistics.html#a13efbdb35bd1291191d275f43e96d360">VmaDetailedStatistics</a></li>
</ul>