Vulkan Memory Allocator: VmaAllocationCreateInfo Struct Reference

Vulkan Memory Allocator

Public Attributes | List of all members
VmaAllocationCreateInfo Struct Reference
Memory allocation

Parameters of new VmaAllocation. More...

## Public Attributes
VmaAllocationCreateFlags | flags
| Use VmaAllocationCreateFlagBits enum. More...
VmaMemoryUsage | usage
| Intended usage of memory. More...
VkMemoryPropertyFlags | requiredFlags
| Flags that must be set in a Memory Type chosen for an allocation. More...
VkMemoryPropertyFlags | preferredFlags
| Flags that preferably should be set in a memory type chosen for an allocation. More...
uint32_t | memoryTypeBits
| Bitmask containing one bit set for every memory type acceptable for this allocation. More...
VmaPool | pool
| Pool that this allocation should be created in. More...
void * | pUserData
| Custom general-purpose pointer that will be stored in VmaAllocation, can be read as VmaAllocationInfo::pUserData and changed using vmaSetAllocationUserData(). More...
float | priority
| A floating-point value between 0 and 1, indicating the priority of the allocation relative to other memory allocations. More...

## Detailed Description

Parameters of new VmaAllocation.

To be used with functions like vmaCreateBuffer(), vmaCreateImage(), and many others.

## Member Data Documentation

## ◆ flags

VmaAllocationCreateFlags VmaAllocationCreateInfo::flags

Use VmaAllocationCreateFlagBits enum.

## ◆ memoryTypeBits

uint32_t VmaAllocationCreateInfo::memoryTypeBits

Bitmask containing one bit set for every memory type acceptable for this allocation.

Value 0 is equivalent to `UINT32_MAX` - it means any memory type is accepted if it meets other requirements specified by this structure, with no further restrictions on memory type index.
If `pool` is not null, this member is ignored.

## ◆ pool

VmaPool VmaAllocationCreateInfo::pool

Pool that this allocation should be created in.

Leave `VK_NULL_HANDLE` to allocate from default pool. If not null, members: `usage`, `requiredFlags`, `preferredFlags`, `memoryTypeBits` are ignored.

## ◆ preferredFlags

VkMemoryPropertyFlags VmaAllocationCreateInfo::preferredFlags

Flags that preferably should be set in a memory type chosen for an allocation.

Set to 0 if no additional flags are preferred.
If `pool` is not null, this member is ignored.

## ◆ priority

float VmaAllocationCreateInfo::priority

A floating-point value between 0 and 1, indicating the priority of the allocation relative to other memory allocations.

It is used only when VMA_ALLOCATOR_CREATE_EXT_MEMORY_PRIORITY_BIT flag was used during creation of the VmaAllocator object and this allocation ends up as dedicated or is explicitly forced as dedicated using VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT. Otherwise, it has the priority of a memory block where it is placed and this variable is ignored.

## ◆ pUserData

void* VmaAllocationCreateInfo::pUserData

Custom general-purpose pointer that will be stored in VmaAllocation, can be read as VmaAllocationInfo::pUserData and changed using vmaSetAllocationUserData().

If VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT is used, it must be either null or pointer to a null-terminated string. The string will be then copied to internal buffer, so it doesn't need to be valid after allocation call.

## ◆ requiredFlags

VkMemoryPropertyFlags VmaAllocationCreateInfo::requiredFlags

Flags that must be set in a Memory Type chosen for an allocation.

Leave 0 if you specify memory requirements in other way.
If `pool` is not null, this member is ignored.

## ◆ usage

VmaMemoryUsage VmaAllocationCreateInfo::usage

Intended usage of memory.

You can leave VMA_MEMORY_USAGE_UNKNOWN if you specify memory requirements in other way.
If `pool` is not null, this member is ignored.

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

- D:/PROJECTS/Vulkan Memory Allocator/REPO/include/vk_mem_alloc.h