Vulkan Memory Allocator
|
Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo(). More...
#include <vk_mem_alloc.h>
Public Attributes | |
uint32_t | memoryType |
Memory type index that this allocation was allocated from. More... | |
VkDeviceMemory | deviceMemory |
Handle to Vulkan memory object. More... | |
VkDeviceSize | offset |
Offset in VkDeviceMemory object to the beginning of this allocation, in bytes. (deviceMemory, offset) pair is unique to this allocation. More... | |
VkDeviceSize | size |
Size of this allocation, in bytes. More... | |
void * | pMappedData |
Pointer to the beginning of this allocation as mapped data. More... | |
void * | pUserData |
Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vmaSetAllocationUserData(). More... | |
Parameters of VmaAllocation objects, that can be retrieved using function vmaGetAllocationInfo().
VkDeviceMemory VmaAllocationInfo::deviceMemory |
Handle to Vulkan memory object.
Same memory object can be shared by multiple allocations.
It can change after call to vmaDefragment() if this allocation is passed to the function.
uint32_t VmaAllocationInfo::memoryType |
Memory type index that this allocation was allocated from.
It never changes.
VkDeviceSize VmaAllocationInfo::offset |
Offset in VkDeviceMemory
object to the beginning of this allocation, in bytes. (deviceMemory, offset)
pair is unique to this allocation.
You usually don't need to use this offset. If you create a buffer or an image together with the allocation using e.g. function vmaCreateBuffer(), vmaCreateImage(), functions that operate on these resources refer to the beginning of the buffer or image, not entire device memory block. Functions like vmaMapMemory(), vmaBindBufferMemory() also refer to the beginning of the allocation and apply this offset automatically.
It can change after call to vmaDefragment() if this allocation is passed to the function.
void* VmaAllocationInfo::pMappedData |
Pointer to the beginning of this allocation as mapped data.
If the allocation hasn't been mapped using vmaMapMemory() and hasn't been created with VMA_ALLOCATION_CREATE_MAPPED_BIT flag, this value is null.
It can change after call to vmaMapMemory(), vmaUnmapMemory(). It can also change after call to vmaDefragment() if this allocation is passed to the function.
void* VmaAllocationInfo::pUserData |
Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vmaSetAllocationUserData().
It can change after call to vmaSetAllocationUserData() for this allocation.
VkDeviceSize VmaAllocationInfo::size |
Size of this allocation, in bytes.
It never changes.
VkBufferCreateInfo::size
. Whole size of the allocation is accessible for operations on memory e.g. using a pointer after mapping with vmaMapMemory(), but operations on the resource e.g. using vkCmdCopyBuffer
must be limited to the size of the resource.