Vulkan Memory Allocator
Public Attributes | List of all members
VmaDefragmentationInfo2 Struct Reference

Parameters for defragmentation. More...

#include <vk_mem_alloc.h>

Public Attributes

VmaDefragmentationFlags flags
 Flags for defragmentation. Use VmaDefragmentationFlagBits enum. More...
 
size_t allocationCount
 Number of allocations in pAllocations array. More...
 
VmaAllocationpAllocations
 Pointer to array of allocations that can be defragmented. More...
 
VkBool32 * pAllocationsChanged
 Optional, output. Pointer to array that will be filled with information whether the allocation at certain index has been changed (moved or lost) during defragmentation. More...
 
VkDeviceSize maxCpuBytesToMove
 Maximum total numbers of bytes that can be copied while moving allocations to different places using transfers on CPU side, like memcpy(), memmove(). More...
 
uint32_t maxCpuAllocationsToMove
 Maximum number of allocations that can be moved to a different place using transfers on CPU side, like memcpy(), memmove(). More...
 
VkDeviceSize maxGpuBytesToMove
 Maximum total numbers of bytes that can be copied while moving allocations to different places using transfers on GPU side, posted to commandBuffer. More...
 
uint32_t maxGpuAllocationsToMove
 Maximum number of allocations that can be moved to a different place using transfers on GPU side, posted to commandBuffer. More...
 

Detailed Description

Parameters for defragmentation.

To be used with function vmaDefragmentationBegin().

Member Data Documentation

◆ allocationCount

size_t VmaDefragmentationInfo2::allocationCount

Number of allocations in pAllocations array.

◆ flags

VmaDefragmentationFlags VmaDefragmentationInfo2::flags

Flags for defragmentation. Use VmaDefragmentationFlagBits enum.

◆ maxCpuAllocationsToMove

uint32_t VmaDefragmentationInfo2::maxCpuAllocationsToMove

Maximum number of allocations that can be moved to a different place using transfers on CPU side, like memcpy(), memmove().

UINT32_MAX means no limit.

◆ maxCpuBytesToMove

VkDeviceSize VmaDefragmentationInfo2::maxCpuBytesToMove

Maximum total numbers of bytes that can be copied while moving allocations to different places using transfers on CPU side, like memcpy(), memmove().

VK_WHOLE_SIZE means no limit.

◆ maxGpuAllocationsToMove

uint32_t VmaDefragmentationInfo2::maxGpuAllocationsToMove

Maximum number of allocations that can be moved to a different place using transfers on GPU side, posted to commandBuffer.

UINT32_MAX means no limit.

◆ maxGpuBytesToMove

VkDeviceSize VmaDefragmentationInfo2::maxGpuBytesToMove

Maximum total numbers of bytes that can be copied while moving allocations to different places using transfers on GPU side, posted to commandBuffer.

VK_WHOLE_SIZE means no limit.

◆ pAllocations

VmaAllocation* VmaDefragmentationInfo2::pAllocations

Pointer to array of allocations that can be defragmented.

The array should have allocationCount elements. All other allocations are considered non-moveable during this defragmentation.

◆ pAllocationsChanged

VkBool32* VmaDefragmentationInfo2::pAllocationsChanged

Optional, output. Pointer to array that will be filled with information whether the allocation at certain index has been changed (moved or lost) during defragmentation.

The array should have allocationCount elements. You can pass null if you are not interested in this information.


The documentation for this struct was generated from the following file: