Vulkan Memory Allocator
|
Parameters for incremental defragmentation steps. More...
Public Attributes | |
uint32_t | moveCount |
Number of elements in the pMoves array. More... | |
VmaDefragmentationMove * | pMoves |
Array of moves to be performed by the user in the current defragmentation pass. More... | |
Parameters for incremental defragmentation steps.
To be used with function vmaBeginDefragmentationPass().
uint32_t VmaDefragmentationPassMoveInfo::moveCount |
Number of elements in the pMoves
array.
VmaDefragmentationMove* VmaDefragmentationPassMoveInfo::pMoves |
Array of moves to be performed by the user in the current defragmentation pass.
Pointer to an array of moveCount
elements, owned by VMA, created in vmaBeginDefragmentationPass(), destroyed in vmaEndDefragmentationPass().
For each element, you should:
vkCmdCopyBuffer
, vkCmdCopyImage
.Only then you can finish defragmentation pass by calling vmaEndDefragmentationPass(). After this call, the allocation will point to the new place in memory.
Alternatively, if you cannot move specific allocation, you can set VmaDefragmentationMove::operation to VMA_DEFRAGMENTATION_MOVE_OPERATION_IGNORE.
Alternatively, if you decide you want to completely remove the allocation:
Then, after vmaEndDefragmentationPass() the allocation will be freed.