diff --git a/CHANGELOG.md b/CHANGELOG.md index 47c8cf6..0c438d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ Additions to the library API: - Added callback `VmaDefragmentationInfo::pfnBreakCallback` that allows breaking long execution of `vmaBeginDefragmentation`. Also added `PFN_vmaCheckDefragmentationBreakFunction`, `VmaDefragmentationInfo::pBreakCallbackUserData`. - Added support for VK_KHR_maintenance4 extension - `VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE4_BIT` flag (#397). +- Added support for VK_KHR_maintenance5 extension - `VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE5_BIT` flag (#411). Other changes: diff --git a/Doxyfile b/Doxyfile index 7d6534d..99b96fe 100644 --- a/Doxyfile +++ b/Doxyfile @@ -2459,8 +2459,14 @@ PREDEFINED = VMA_CALL_PRE= \ VMA_NOT_NULL_NON_DISPATCHABLE= \ VMA_NULLABLE_NON_DISPATCHABLE= \ VMA_VULKAN_VERSION=1003000 \ - VMA_EXTERNAL_MEMORY=1 \ + VMA_DEDICATED_ALLOCATION=1 \ + VMA_BIND_MEMORY2=1 \ + VMA_MEMORY_BUDGET=1 \ + VMA_BUFFER_DEVICE_ADDRESS=1 \ VMA_MEMORY_PRIORITY=1 \ + VMA_KHR_MAINTENANCE4=1 \ + VMA_KHR_MAINTENANCE5=1 \ + VMA_EXTERNAL_MEMORY=1 \ VMA_EXTENDS_VK_STRUCT= \ VMA_STATS_STRING_ENABLED=1 diff --git a/README.md b/README.md index 7f27077..5ce8d63 100644 --- a/README.md +++ b/README.md @@ -51,10 +51,13 @@ Additional features: - Support for Vulkan 1.0, 1.1, 1.2, 1.3. - Support for extensions (and equivalent functionality included in new Vulkan versions): - VK_KHR_dedicated_allocation: Just enable it and it will be used automatically by the library. - - VK_KHR_buffer_device_address: Flag `VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR` is automatically added to memory allocations where needed. + - VK_KHR_bind_memory2. + - VK_KHR_maintenance4. + - VK_KHR_maintenance5, including `VkBufferUsageFlags2CreateInfoKHR`. - VK_EXT_memory_budget: Used internally if available to query for current usage and budget. If not available, it falls back to an estimation based on memory heap sizes. + - VK_KHR_buffer_device_address: Flag `VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR` is automatically added to memory allocations where needed. - VK_EXT_memory_priority: Set `priority` of allocations or custom pools and it will be set automatically using this extension. - - VK_AMD_device_coherent_memory + - VK_AMD_device_coherent_memory. - Defragmentation of GPU and CPU memory: Let the library move data around to free some memory blocks and make your allocations better compacted. - Statistics: Obtain brief or detailed statistics about the amount of memory used, unused, number of allocated blocks, number of allocations etc. - globally, per memory heap, and per memory type. - Debug annotations: Associate custom `void* pUserData` and debug `char* pName` with each allocation. diff --git a/docs/html/allocation_annotation.html b/docs/html/allocation_annotation.html index 766b381..a068ad3 100644 --- a/docs/html/allocation_annotation.html +++ b/docs/html/allocation_annotation.html @@ -93,18 +93,18 @@ Allocation user data
VmaAllocation allocation;
vmaCreateBuffer(allocator, &bufCreateInfo, &allocCreateInfo, &buffer, &allocation, nullptr);
vmaCreateBuffer
VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
Creates a new VkBuffer, allocates and binds memory for it.
-
VMA_MEMORY_USAGE_AUTO
@ VMA_MEMORY_USAGE_AUTO
Definition vk_mem_alloc.h:511
-
VmaAllocationCreateInfo
Parameters of new VmaAllocation.
Definition vk_mem_alloc.h:1246
-
VmaAllocationCreateInfo::pUserData
void * pUserData
Custom general-purpose pointer that will be stored in VmaAllocation, can be read as VmaAllocationInfo...
Definition vk_mem_alloc.h:1285
-
VmaAllocationCreateInfo::usage
VmaMemoryUsage usage
Intended usage of memory.
Definition vk_mem_alloc.h:1254
+
VMA_MEMORY_USAGE_AUTO
@ VMA_MEMORY_USAGE_AUTO
Definition vk_mem_alloc.h:527
+
VmaAllocationCreateInfo
Parameters of new VmaAllocation.
Definition vk_mem_alloc.h:1263
+
VmaAllocationCreateInfo::pUserData
void * pUserData
Custom general-purpose pointer that will be stored in VmaAllocation, can be read as VmaAllocationInfo...
Definition vk_mem_alloc.h:1302
+
VmaAllocationCreateInfo::usage
VmaMemoryUsage usage
Intended usage of memory.
Definition vk_mem_alloc.h:1271
VmaAllocation
Represents single memory allocation.

The pointer may be later retrieved as VmaAllocationInfo::pUserData:

VmaAllocationInfo allocInfo;
vmaGetAllocationInfo(allocator, allocation, &allocInfo);
MyBufferMetadata* pMetadata = (MyBufferMetadata*)allocInfo.pUserData;
void vmaGetAllocationInfo(VmaAllocator allocator, VmaAllocation allocation, VmaAllocationInfo *pAllocationInfo)
Returns current information about specified allocation.
-
Definition vk_mem_alloc.h:1365
-
void * pUserData
Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vma...
Definition vk_mem_alloc.h:1412
+
Definition vk_mem_alloc.h:1382
+
void * pUserData
Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vma...
Definition vk_mem_alloc.h:1429

It can also be changed using function vmaSetAllocationUserData().

Values of (non-zero) allocations' pUserData are printed in JSON report created by vmaBuildStatsString() in hexadecimal form.

diff --git a/docs/html/choosing_memory_type.html b/docs/html/choosing_memory_type.html index 073bcab..bb61e67 100644 --- a/docs/html/choosing_memory_type.html +++ b/docs/html/choosing_memory_type.html @@ -103,9 +103,9 @@ Usage

VmaAllocation allocation;
vmaCreateBuffer(allocator, &bufferInfo, &allocInfo, &buffer, &allocation, nullptr);
vmaCreateBuffer
VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
Creates a new VkBuffer, allocates and binds memory for it.
-
VMA_MEMORY_USAGE_AUTO
@ VMA_MEMORY_USAGE_AUTO
Definition vk_mem_alloc.h:511
-
VmaAllocationCreateInfo
Parameters of new VmaAllocation.
Definition vk_mem_alloc.h:1246
-
VmaAllocationCreateInfo::usage
VmaMemoryUsage usage
Intended usage of memory.
Definition vk_mem_alloc.h:1254
+
VMA_MEMORY_USAGE_AUTO
@ VMA_MEMORY_USAGE_AUTO
Definition vk_mem_alloc.h:527
+
VmaAllocationCreateInfo
Parameters of new VmaAllocation.
Definition vk_mem_alloc.h:1263
+
VmaAllocationCreateInfo::usage
VmaMemoryUsage usage
Intended usage of memory.
Definition vk_mem_alloc.h:1271
VmaAllocation
Represents single memory allocation.

If you have a preference for putting the resource in GPU (device) memory or CPU (host) memory on systems with discrete graphics card that have the memories separate, you can use VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE or VMA_MEMORY_USAGE_AUTO_PREFER_HOST.

When using VMA_MEMORY_USAGE_AUTO* while you want to map the allocated memory, you also need to specify one of the host access flags: VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT or VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT. This will help the library decide about preferred memory type to ensure it has VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT so you can map it.

@@ -121,8 +121,8 @@ Usage
VkBuffer stagingBuffer;
VmaAllocation stagingAllocation;
vmaCreateBuffer(allocator, &stagingBufferInfo, &stagingAllocInfo, &stagingBuffer, &stagingAllocation, nullptr);
-
VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT
@ VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT
Definition vk_mem_alloc.h:620
-
VmaAllocationCreateInfo::flags
VmaAllocationCreateFlags flags
Use VmaAllocationCreateFlagBits enum.
Definition vk_mem_alloc.h:1248
+
VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT
@ VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT
Definition vk_mem_alloc.h:636
+
VmaAllocationCreateInfo::flags
VmaAllocationCreateFlags flags
Use VmaAllocationCreateFlagBits enum.
Definition vk_mem_alloc.h:1265

For more examples of creating different kinds of resources, see chapter Recommended usage patterns. See also: Memory mapping.

Usage values VMA_MEMORY_USAGE_AUTO* are legal to use only when the library knows about the resource being created by having VkBufferCreateInfo / VkImageCreateInfo passed, so they work with functions like: vmaCreateBuffer(), vmaCreateImage(), vmaFindMemoryTypeIndexForBufferInfo() etc. If you allocate raw memory using function vmaAllocateMemory(), you have to use other means of selecting memory type, as described below.

Note
Old usage values (VMA_MEMORY_USAGE_GPU_ONLY, VMA_MEMORY_USAGE_CPU_ONLY, VMA_MEMORY_USAGE_CPU_TO_GPU, VMA_MEMORY_USAGE_GPU_TO_CPU, VMA_MEMORY_USAGE_CPU_COPY) are still available and work same way as in previous versions of the library for backward compatibility, but they are deprecated.
@@ -137,10 +137,10 @@ Required and preferred flags
VkBuffer buffer;
VmaAllocation allocation;
vmaCreateBuffer(allocator, &bufferInfo, &allocInfo, &buffer, &allocation, nullptr);
-
VMA_ALLOCATION_CREATE_MAPPED_BIT
@ VMA_ALLOCATION_CREATE_MAPPED_BIT
Set this flag to use a memory that will be persistently mapped and retrieve pointer to it.
Definition vk_mem_alloc.h:571
-
VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT
@ VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT
Definition vk_mem_alloc.h:632
-
VmaAllocationCreateInfo::preferredFlags
VkMemoryPropertyFlags preferredFlags
Flags that preferably should be set in a memory type chosen for an allocation.
Definition vk_mem_alloc.h:1264
-
VmaAllocationCreateInfo::requiredFlags
VkMemoryPropertyFlags requiredFlags
Flags that must be set in a Memory Type chosen for an allocation.
Definition vk_mem_alloc.h:1259
+
VMA_ALLOCATION_CREATE_MAPPED_BIT
@ VMA_ALLOCATION_CREATE_MAPPED_BIT
Set this flag to use a memory that will be persistently mapped and retrieve pointer to it.
Definition vk_mem_alloc.h:587
+
VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT
@ VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT
Definition vk_mem_alloc.h:648
+
VmaAllocationCreateInfo::preferredFlags
VkMemoryPropertyFlags preferredFlags
Flags that preferably should be set in a memory type chosen for an allocation.
Definition vk_mem_alloc.h:1281
+
VmaAllocationCreateInfo::requiredFlags
VkMemoryPropertyFlags requiredFlags
Flags that must be set in a Memory Type chosen for an allocation.
Definition vk_mem_alloc.h:1276

A memory type is chosen that has all the required flags and as many preferred flags set as possible.

Value passed in VmaAllocationCreateInfo::usage is internally converted to a set of required and preferred flags, plus some extra "magic" (heuristics).

@@ -155,7 +155,7 @@ Explicit memory types

VkBuffer buffer;
VmaAllocation allocation;
vmaCreateBuffer(allocator, &bufferInfo, &allocInfo, &buffer, &allocation, nullptr);
-
VmaAllocationCreateInfo::memoryTypeBits
uint32_t memoryTypeBits
Bitmask containing one bit set for every memory type acceptable for this allocation.
Definition vk_mem_alloc.h:1272
+
VmaAllocationCreateInfo::memoryTypeBits
uint32_t memoryTypeBits
Bitmask containing one bit set for every memory type acceptable for this allocation.
Definition vk_mem_alloc.h:1289

You can also use this parameter to exclude some memory types. If you inspect memory heaps and types available on the current physical device and you determine that for some reason you don't want to use a specific memory type for the allocation, you can enable automatic memory type selection but exclude certain memory type or types by setting all bits of memoryTypeBits to 1 except the ones you choose.

// ...
uint32_t excludedMemoryTypeIndex = 2;
diff --git a/docs/html/custom_memory_pools.html b/docs/html/custom_memory_pools.html index 98e4b0a..d4a052c 100644 --- a/docs/html/custom_memory_pools.html +++ b/docs/html/custom_memory_pools.html @@ -133,15 +133,15 @@ $(function() {
VkResult vmaCreatePool(VmaAllocator allocator, const VmaPoolCreateInfo *pCreateInfo, VmaPool *pPool)
Allocates Vulkan device memory and creates VmaPool object.
VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
Creates a new VkBuffer, allocates and binds memory for it.
VkResult vmaFindMemoryTypeIndexForBufferInfo(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, uint32_t *pMemoryTypeIndex)
Helps to find memoryTypeIndex, given VkBufferCreateInfo and VmaAllocationCreateInfo.
-
@ VMA_MEMORY_USAGE_AUTO
Definition vk_mem_alloc.h:511
-
Parameters of new VmaAllocation.
Definition vk_mem_alloc.h:1246
-
VmaPool pool
Pool that this allocation should be created in.
Definition vk_mem_alloc.h:1278
-
VmaMemoryUsage usage
Intended usage of memory.
Definition vk_mem_alloc.h:1254
+
@ VMA_MEMORY_USAGE_AUTO
Definition vk_mem_alloc.h:527
+
Parameters of new VmaAllocation.
Definition vk_mem_alloc.h:1263
+
VmaPool pool
Pool that this allocation should be created in.
Definition vk_mem_alloc.h:1295
+
VmaMemoryUsage usage
Intended usage of memory.
Definition vk_mem_alloc.h:1271
Represents single memory allocation.
-
Describes parameter of created VmaPool.
Definition vk_mem_alloc.h:1297
-
uint32_t memoryTypeIndex
Vulkan memory type index to allocate this pool from.
Definition vk_mem_alloc.h:1300
-
VkDeviceSize blockSize
Size of a single VkDeviceMemory block to be allocated as part of this pool, in bytes....
Definition vk_mem_alloc.h:1313
-
size_t maxBlockCount
Maximum number of blocks that can be allocated in this pool. Optional.
Definition vk_mem_alloc.h:1326
+
Describes parameter of created VmaPool.
Definition vk_mem_alloc.h:1314
+
uint32_t memoryTypeIndex
Vulkan memory type index to allocate this pool from.
Definition vk_mem_alloc.h:1317
+
VkDeviceSize blockSize
Size of a single VkDeviceMemory block to be allocated as part of this pool, in bytes....
Definition vk_mem_alloc.h:1330
+
size_t maxBlockCount
Maximum number of blocks that can be allocated in this pool. Optional.
Definition vk_mem_alloc.h:1343
Represents custom memory pool.

You have to free all allocations made from this pool before destroying it.

vmaDestroyBuffer(allocator, buf, alloc);
diff --git a/docs/html/defragmentation.html b/docs/html/defragmentation.html index 35b8025..e690e15 100644 --- a/docs/html/defragmentation.html +++ b/docs/html/defragmentation.html @@ -143,18 +143,18 @@ $(function() {
VkResult vmaBeginDefragmentationPass(VmaAllocator allocator, VmaDefragmentationContext context, VmaDefragmentationPassMoveInfo *pPassInfo)
Starts single defragmentation pass.
VkResult vmaBeginDefragmentation(VmaAllocator allocator, const VmaDefragmentationInfo *pInfo, VmaDefragmentationContext *pContext)
Begins defragmentation process.
VkResult vmaEndDefragmentationPass(VmaAllocator allocator, VmaDefragmentationContext context, VmaDefragmentationPassMoveInfo *pPassInfo)
Ends single defragmentation pass.
-
@ VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FAST_BIT
Definition vk_mem_alloc.h:728
-
Definition vk_mem_alloc.h:1365
-
void * pUserData
Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vma...
Definition vk_mem_alloc.h:1412
+
@ VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FAST_BIT
Definition vk_mem_alloc.h:744
+
Definition vk_mem_alloc.h:1382
+
void * pUserData
Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vma...
Definition vk_mem_alloc.h:1429
An opaque object that represents started defragmentation process.
-
Parameters for defragmentation.
Definition vk_mem_alloc.h:1455
-
VmaPool pool
Custom pool to be defragmented.
Definition vk_mem_alloc.h:1462
-
VmaDefragmentationFlags flags
Use combination of VmaDefragmentationFlagBits.
Definition vk_mem_alloc.h:1457
-
VmaAllocation srcAllocation
Allocation that should be moved.
Definition vk_mem_alloc.h:1488
-
VmaAllocation dstTmpAllocation
Temporary allocation pointing to destination memory that will replace srcAllocation.
Definition vk_mem_alloc.h:1495
-
Parameters for incremental defragmentation steps.
Definition vk_mem_alloc.h:1503
-
uint32_t moveCount
Number of elements in the pMoves array.
Definition vk_mem_alloc.h:1505
-
VmaDefragmentationMove * pMoves
Array of moves to be performed by the user in the current defragmentation pass.
Definition vk_mem_alloc.h:1529
+
Parameters for defragmentation.
Definition vk_mem_alloc.h:1472
+
VmaPool pool
Custom pool to be defragmented.
Definition vk_mem_alloc.h:1479
+
VmaDefragmentationFlags flags
Use combination of VmaDefragmentationFlagBits.
Definition vk_mem_alloc.h:1474
+
VmaAllocation srcAllocation
Allocation that should be moved.
Definition vk_mem_alloc.h:1505
+
VmaAllocation dstTmpAllocation
Temporary allocation pointing to destination memory that will replace srcAllocation.
Definition vk_mem_alloc.h:1512
+
Parameters for incremental defragmentation steps.
Definition vk_mem_alloc.h:1520
+
uint32_t moveCount
Number of elements in the pMoves array.
Definition vk_mem_alloc.h:1522
+
VmaDefragmentationMove * pMoves
Array of moves to be performed by the user in the current defragmentation pass.
Definition vk_mem_alloc.h:1546

Although functions like vmaCreateBuffer(), vmaCreateImage(), vmaDestroyBuffer(), vmaDestroyImage() create/destroy an allocation and a buffer/image at once, these are just a shortcut for creating the resource, allocating memory, and binding them together. Defragmentation works on memory allocations only. You must handle the rest manually. Defragmentation is an iterative process that should repreat "passes" as long as related functions return VK_INCOMPLETE not VK_SUCCESS. In each pass:

  1. vmaBeginDefragmentationPass() function call: diff --git a/docs/html/globals_eval.html b/docs/html/globals_eval.html index 65c688f..5760905 100644 --- a/docs/html/globals_eval.html +++ b/docs/html/globals_eval.html @@ -101,6 +101,7 @@ $(function() {
  2. VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT : vk_mem_alloc.h
  3. VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT : vk_mem_alloc.h
  4. VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE4_BIT : vk_mem_alloc.h
  5. +
  6. VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE5_BIT : vk_mem_alloc.h
  7. VMA_DEFRAGMENTATION_FLAG_ALGORITHM_BALANCED_BIT : vk_mem_alloc.h
  8. VMA_DEFRAGMENTATION_FLAG_ALGORITHM_EXTENSIVE_BIT : vk_mem_alloc.h
  9. VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FAST_BIT : vk_mem_alloc.h
  10. diff --git a/docs/html/group__group__init.html b/docs/html/group__group__init.html index 24bdc12..4dd41fc 100644 --- a/docs/html/group__group__init.html +++ b/docs/html/group__group__init.html @@ -141,7 +141,8 @@ Enumerations , VMA_ALLOCATOR_CREATE_EXT_MEMORY_PRIORITY_BIT = 0x00000040 , VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE4_BIT = 0x00000080 ,
    -  VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF +  VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE5_BIT = 0x00000100 +, VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    }  Flags for created VmaAllocator. More...
    @@ -370,6 +371,9 @@ Functions VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE4_BIT 

    Enables usage of VK_KHR_maintenance4 extension in the library.

    You may set this flag only if you found available and enabled this device extension, while creating Vulkan device passed as VmaAllocatorCreateInfo::device.

    +VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE5_BIT 

    Enables usage of VK_KHR_maintenance5 extension in the library.

    +

    You should set this flag if you found available and enabled this device extension, while creating Vulkan device passed as VmaAllocatorCreateInfo::device.

    + VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM  diff --git a/docs/html/memory_mapping.html b/docs/html/memory_mapping.html index 6556280..ca18df6 100644 --- a/docs/html/memory_mapping.html +++ b/docs/html/memory_mapping.html @@ -105,11 +105,11 @@ Copy functions
    vmaCopyMemoryToAllocation(allocator, &constantBufferData, alloc, 0, sizeof(ConstantBuffer));
    VkResult vmaCopyMemoryToAllocation(VmaAllocator allocator, const void *pSrcHostPointer, VmaAllocation dstAllocation, VkDeviceSize dstAllocationLocalOffset, VkDeviceSize size)
    Maps the allocation temporarily if needed, copies data from specified host pointer to it,...
    VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
    Creates a new VkBuffer, allocates and binds memory for it.
    -
    @ VMA_MEMORY_USAGE_AUTO
    Definition vk_mem_alloc.h:511
    -
    @ VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT
    Definition vk_mem_alloc.h:620
    -
    Parameters of new VmaAllocation.
    Definition vk_mem_alloc.h:1246
    -
    VmaMemoryUsage usage
    Intended usage of memory.
    Definition vk_mem_alloc.h:1254
    -
    VmaAllocationCreateFlags flags
    Use VmaAllocationCreateFlagBits enum.
    Definition vk_mem_alloc.h:1248
    +
    @ VMA_MEMORY_USAGE_AUTO
    Definition vk_mem_alloc.h:527
    +
    @ VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT
    Definition vk_mem_alloc.h:636
    +
    Parameters of new VmaAllocation.
    Definition vk_mem_alloc.h:1263
    +
    VmaMemoryUsage usage
    Intended usage of memory.
    Definition vk_mem_alloc.h:1271
    +
    VmaAllocationCreateFlags flags
    Use VmaAllocationCreateFlagBits enum.
    Definition vk_mem_alloc.h:1265
    Represents single memory allocation.

    Copy in the other direction - from an allocation to a host pointer can be performed the same way using function vmaCopyAllocationToMemory().

    @@ -156,9 +156,9 @@ Persistently mapped memory

    // Buffer is already mapped. You can access its memory.
    memcpy(allocInfo.pMappedData, &constantBufferData, sizeof(constantBufferData));
    -
    @ VMA_ALLOCATION_CREATE_MAPPED_BIT
    Set this flag to use a memory that will be persistently mapped and retrieve pointer to it.
    Definition vk_mem_alloc.h:571
    -
    Definition vk_mem_alloc.h:1365
    -
    void * pMappedData
    Pointer to the beginning of this allocation as mapped data.
    Definition vk_mem_alloc.h:1407
    +
    @ VMA_ALLOCATION_CREATE_MAPPED_BIT
    Set this flag to use a memory that will be persistently mapped and retrieve pointer to it.
    Definition vk_mem_alloc.h:587
    +
    Definition vk_mem_alloc.h:1382
    +
    void * pMappedData
    Pointer to the beginning of this allocation as mapped data.
    Definition vk_mem_alloc.h:1424
    Note
    VMA_ALLOCATION_CREATE_MAPPED_BIT by itself doesn't guarantee that the allocation will end up in a mappable memory type. For this, you need to also specify VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT or VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT. VMA_ALLOCATION_CREATE_MAPPED_BIT only guarantees that if the memory is HOST_VISIBLE, the allocation will be mapped on creation. For an example of how to make use of this fact, see section Advanced data uploading.

    Cache flush and invalidate

    diff --git a/docs/html/menudata.js b/docs/html/menudata.js index 9f63f95..4c345ed 100644 --- a/docs/html/menudata.js +++ b/docs/html/menudata.js @@ -71,5 +71,4 @@ var menudata={children:[ {text:"v",url:"globals_type.html#index_v"}]}, {text:"Enumerations",url:"globals_enum.html"}, {text:"Enumerator",url:"globals_eval.html",children:[ -{text:"v",url:"globals_eval.html#index_v"}]}, -{text:"Macros",url:"globals_defs.html"}]}]}]} +{text:"v",url:"globals_eval.html#index_v"}]}]}]}]} diff --git a/docs/html/quick_start.html b/docs/html/quick_start.html index f81e498..d194082 100644 --- a/docs/html/quick_start.html +++ b/docs/html/quick_start.html @@ -144,7 +144,11 @@ Enabling extensions VK_KHR_maintenance4 VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE4_BIT +VK_KHR_maintenance5 VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE5_BIT + VK_EXT_memory_budget VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT + +VK_KHR_buffer_device_address VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT VK_EXT_memory_priority VMA_ALLOCATOR_CREATE_EXT_MEMORY_PRIORITY_BIT @@ -178,14 +182,14 @@ Enabling extensions
    vmaDestroyAllocator(allocator);
    VkResult vmaCreateAllocator(const VmaAllocatorCreateInfo *pCreateInfo, VmaAllocator *pAllocator)
    Creates VmaAllocator object.
    void vmaDestroyAllocator(VmaAllocator allocator)
    Destroys allocator object.
    -
    @ VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT
    Definition vk_mem_alloc.h:384
    -
    Description of a Allocator to be created.
    Definition vk_mem_alloc.h:1023
    -
    VkPhysicalDevice physicalDevice
    Vulkan physical device.
    Definition vk_mem_alloc.h:1028
    -
    VmaAllocatorCreateFlags flags
    Flags for created allocator. Use VmaAllocatorCreateFlagBits enum.
    Definition vk_mem_alloc.h:1025
    -
    const VmaVulkanFunctions * pVulkanFunctions
    Pointers to Vulkan functions. Can be null.
    Definition vk_mem_alloc.h:1071
    -
    VkInstance instance
    Handle to Vulkan instance object.
    Definition vk_mem_alloc.h:1076
    -
    VkDevice device
    Vulkan device.
    Definition vk_mem_alloc.h:1031
    -
    uint32_t vulkanApiVersion
    Optional. Vulkan version that the application uses.
    Definition vk_mem_alloc.h:1087
    +
    @ VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT
    Definition vk_mem_alloc.h:393
    +
    Description of a Allocator to be created.
    Definition vk_mem_alloc.h:1040
    +
    VkPhysicalDevice physicalDevice
    Vulkan physical device.
    Definition vk_mem_alloc.h:1045
    +
    VmaAllocatorCreateFlags flags
    Flags for created allocator. Use VmaAllocatorCreateFlagBits enum.
    Definition vk_mem_alloc.h:1042
    +
    const VmaVulkanFunctions * pVulkanFunctions
    Pointers to Vulkan functions. Can be null.
    Definition vk_mem_alloc.h:1088
    +
    VkInstance instance
    Handle to Vulkan instance object.
    Definition vk_mem_alloc.h:1093
    +
    VkDevice device
    Vulkan device.
    Definition vk_mem_alloc.h:1048
    +
    uint32_t vulkanApiVersion
    Optional. Vulkan version that the application uses.
    Definition vk_mem_alloc.h:1104
    Represents main object of this library initialized.

    Other configuration options

    @@ -209,9 +213,9 @@ Resource allocation
    VmaAllocation allocation;
    vmaCreateBuffer(allocator, &bufferInfo, &allocInfo, &buffer, &allocation, nullptr);
    VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
    Creates a new VkBuffer, allocates and binds memory for it.
    -
    @ VMA_MEMORY_USAGE_AUTO
    Definition vk_mem_alloc.h:511
    -
    Parameters of new VmaAllocation.
    Definition vk_mem_alloc.h:1246
    -
    VmaMemoryUsage usage
    Intended usage of memory.
    Definition vk_mem_alloc.h:1254
    +
    @ VMA_MEMORY_USAGE_AUTO
    Definition vk_mem_alloc.h:527
    +
    Parameters of new VmaAllocation.
    Definition vk_mem_alloc.h:1263
    +
    VmaMemoryUsage usage
    Intended usage of memory.
    Definition vk_mem_alloc.h:1271
    Represents single memory allocation.

    Don't forget to destroy your buffer and allocation objects when no longer needed:

    vmaDestroyBuffer(allocator, buffer, allocation);
    diff --git a/docs/html/resource_aliasing.html b/docs/html/resource_aliasing.html index 4b5507a..3304333 100644 --- a/docs/html/resource_aliasing.html +++ b/docs/html/resource_aliasing.html @@ -149,8 +149,8 @@ $(function() {
    VkResult vmaBindImageMemory(VmaAllocator allocator, VmaAllocation allocation, VkImage image)
    Binds image to allocation.
    void vmaFreeMemory(VmaAllocator allocator, const VmaAllocation allocation)
    Frees memory previously allocated using vmaAllocateMemory(), vmaAllocateMemoryForBuffer(),...
    VkResult vmaAllocateMemory(VmaAllocator allocator, const VkMemoryRequirements *pVkMemoryRequirements, const VmaAllocationCreateInfo *pCreateInfo, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
    General purpose memory allocation.
    -
    Parameters of new VmaAllocation.
    Definition vk_mem_alloc.h:1246
    -
    VkMemoryPropertyFlags preferredFlags
    Flags that preferably should be set in a memory type chosen for an allocation.
    Definition vk_mem_alloc.h:1264
    +
    Parameters of new VmaAllocation.
    Definition vk_mem_alloc.h:1263
    +
    VkMemoryPropertyFlags preferredFlags
    Flags that preferably should be set in a memory type chosen for an allocation.
    Definition vk_mem_alloc.h:1281
    Represents single memory allocation.

    VMA also provides convenience functions that create a buffer or image and bind it to memory represented by an existing VmaAllocation: vmaCreateAliasingBuffer(), vmaCreateAliasingBuffer2(), vmaCreateAliasingImage(), vmaCreateAliasingImage2(). Versions with "2" offer additional parameter allocationLocalOffset.

    Remember that using resources that alias in memory requires proper synchronization. You need to issue a memory barrier to make sure commands that use img1 and img2 don't overlap on GPU timeline. You also need to treat a resource after aliasing as uninitialized - containing garbage data. For example, if you use img1 and then want to use img2, you need to issue an image memory barrier for img2 with oldLayout = VK_IMAGE_LAYOUT_UNDEFINED.

    diff --git a/docs/html/search/all_14.js b/docs/html/search/all_14.js index 46bbcac..fc32bf5 100644 --- a/docs/html/search/all_14.js +++ b/docs/html/search/all_14.js @@ -63,155 +63,151 @@ var searchData= ['vma_5fallocator_5fcreate_5fkhr_5fbind_5fmemory2_5fbit_60',['VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7ca8fb75bf07cd184ab903596295e863dee',1,'vk_mem_alloc.h']]], ['vma_5fallocator_5fcreate_5fkhr_5fdedicated_5fallocation_5fbit_61',['VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7cace7da7cc6e71a625dfa763c55a597878',1,'vk_mem_alloc.h']]], ['vma_5fallocator_5fcreate_5fkhr_5fmaintenance4_5fbit_62',['VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE4_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7caa2566e7f75e19ae7ec9c4fa509fea5fb',1,'vk_mem_alloc.h']]], - ['vma_5fbind_5fmemory2_63',['VMA_BIND_MEMORY2',['../vk__mem__alloc_8h.html#a88bef97f86d70a34a4c0746e09a2680d',1,'vk_mem_alloc.h']]], - ['vma_5fbuffer_5fdevice_5faddress_64',['VMA_BUFFER_DEVICE_ADDRESS',['../vk__mem__alloc_8h.html#a7f9d5e71b70dd1a137c303a8a8262c10',1,'vk_mem_alloc.h']]], - ['vma_5fdedicated_5fallocation_65',['VMA_DEDICATED_ALLOCATION',['../vk__mem__alloc_8h.html#af7b860e63b96d11e44ae8587ba06bbf4',1,'vk_mem_alloc.h']]], - ['vma_5fdefragmentation_5fflag_5falgorithm_5fbalanced_5fbit_66',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_BALANCED_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50caec35a4138111605a6ff32ca61aa871b6',1,'vk_mem_alloc.h']]], - ['vma_5fdefragmentation_5fflag_5falgorithm_5fextensive_5fbit_67',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_EXTENSIVE_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cae45a9469e5337731627758671741e412',1,'vk_mem_alloc.h']]], - ['vma_5fdefragmentation_5fflag_5falgorithm_5ffast_5fbit_68',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FAST_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50ca2e6469bcf5a094776ceb5d118263f04b',1,'vk_mem_alloc.h']]], - ['vma_5fdefragmentation_5fflag_5falgorithm_5ffull_5fbit_69',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FULL_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cafa162eac5be800bcdd4011427a71156d',1,'vk_mem_alloc.h']]], - ['vma_5fdefragmentation_5fflag_5falgorithm_5fmask_70',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_MASK',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cabcbbdb3bfd53c4c3ab4eaeb5fd4894e9',1,'vk_mem_alloc.h']]], - ['vma_5fdefragmentation_5fflag_5fbits_5fmax_5fenum_71',['VMA_DEFRAGMENTATION_FLAG_BITS_MAX_ENUM',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cab87ec33154803bfeb5ac2b379f1d6a97',1,'vk_mem_alloc.h']]], - ['vma_5fdefragmentation_5fmove_5foperation_5fcopy_72',['VMA_DEFRAGMENTATION_MOVE_OPERATION_COPY',['../group__group__alloc.html#ggada9e3861caf96f08894b0bcc160ec257ad4a06ac46c4cb1c67b0ebc1edfab9f18',1,'vk_mem_alloc.h']]], - ['vma_5fdefragmentation_5fmove_5foperation_5fdestroy_73',['VMA_DEFRAGMENTATION_MOVE_OPERATION_DESTROY',['../group__group__alloc.html#ggada9e3861caf96f08894b0bcc160ec257a9786f8492a9be2c03bd26395e352ab85',1,'vk_mem_alloc.h']]], - ['vma_5fdefragmentation_5fmove_5foperation_5fignore_74',['VMA_DEFRAGMENTATION_MOVE_OPERATION_IGNORE',['../group__group__alloc.html#ggada9e3861caf96f08894b0bcc160ec257ad25bc6f816b226b4fd5170e845f218d2',1,'vk_mem_alloc.h']]], - ['vma_5fkhr_5fmaintenance4_75',['VMA_KHR_MAINTENANCE4',['../vk__mem__alloc_8h.html#abc635c70b154cb54aa4a15cd5da55498',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fbudget_76',['VMA_MEMORY_BUDGET',['../vk__mem__alloc_8h.html#a05decf1cf4ebf767beba7acca6c1ec3a',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fauto_77',['VMA_MEMORY_USAGE_AUTO',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca27cde9026a84d34d525777baa41fce6e',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fauto_5fprefer_5fdevice_78',['VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305ccae2adb696d6a73c18bb20c23666661327',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fauto_5fprefer_5fhost_79',['VMA_MEMORY_USAGE_AUTO_PREFER_HOST',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca9b422585242160b8ed3418310ee6664d',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fcpu_5fcopy_80',['VMA_MEMORY_USAGE_CPU_COPY',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca416a444d4d0fc20067c3f76f32ff2500',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fcpu_5fonly_81',['VMA_MEMORY_USAGE_CPU_ONLY',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca40bdf4cddeffeb12f43d45ca1286e0a5',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fcpu_5fto_5fgpu_82',['VMA_MEMORY_USAGE_CPU_TO_GPU',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca9066b52c5a7079bb74a69aaf8b92ff67',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fgpu_5flazily_5fallocated_83',['VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca835333d9072db63a653818030e17614d',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fgpu_5fonly_84',['VMA_MEMORY_USAGE_GPU_ONLY',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fgpu_5fto_5fcpu_85',['VMA_MEMORY_USAGE_GPU_TO_CPU',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca7b586d2fdaf82a463b58f581ed72be27',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fmax_5fenum_86',['VMA_MEMORY_USAGE_MAX_ENUM',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca091e69437ef693e8d0d287f1c719ba6e',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5funknown_87',['VMA_MEMORY_USAGE_UNKNOWN',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305ccaf50d27e34e0925cf3a63db8c839121dd',1,'vk_mem_alloc.h']]], - ['vma_5fpool_5fcreate_5falgorithm_5fmask_88',['VMA_POOL_CREATE_ALGORITHM_MASK',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7af4d270f8f42517a0f70037ceb6ac1d9c',1,'vk_mem_alloc.h']]], - ['vma_5fpool_5fcreate_5fflag_5fbits_5fmax_5fenum_89',['VMA_POOL_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7a1c7312bea9ea246846b9054fd6bd6aec',1,'vk_mem_alloc.h']]], - ['vma_5fpool_5fcreate_5fignore_5fbuffer_5fimage_5fgranularity_5fbit_90',['VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7a9f1a499508a8edb4e8ba40aa0290a3d2',1,'vk_mem_alloc.h']]], - ['vma_5fpool_5fcreate_5flinear_5falgorithm_5fbit_91',['VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7a13c8a444197c67866be9cb05599fc726',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fallocation_5fcreate_5fflag_5fbits_5fmax_5fenum_92',['VMA_VIRTUAL_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ac1163c03ea837fa663462dc286d6a1a9',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmask_93',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MASK',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ac5b5e45c335368d18df59c9f27df17e3',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmin_5fmemory_5fbit_94',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ae2a9591a62b5e3b1bdcbc81c6188a1bf',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmin_5foffset_5fbit_95',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_OFFSET_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6a3bb82d2aedd587a64846a1d7778852e6',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmin_5ftime_5fbit_96',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6a562d10a46012719d33167d3dc5dbbf9b',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fallocation_5fcreate_5fupper_5faddress_5fbit_97',['VMA_VIRTUAL_ALLOCATION_CREATE_UPPER_ADDRESS_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6a9524a329a55b5ec390d57d90b67ad78e',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fblock_5fcreate_5falgorithm_5fmask_98',['VMA_VIRTUAL_BLOCK_CREATE_ALGORITHM_MASK',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaaf9487467136e1a9e371894dc3a7c4844',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fblock_5fcreate_5fflag_5fbits_5fmax_5fenum_99',['VMA_VIRTUAL_BLOCK_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaa5fc0d333c3d5687a8bbf57df9b377a87',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fblock_5fcreate_5flinear_5falgorithm_5fbit_100',['VMA_VIRTUAL_BLOCK_CREATE_LINEAR_ALGORITHM_BIT',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaae6423e2fa2f3c9211b21c819e3f10f96',1,'vk_mem_alloc.h']]], - ['vmaallocatememory_101',['vmaAllocateMemory',['../group__group__alloc.html#gabf28077dbf82d0908b8acbe8ee8dd9b8',1,'vk_mem_alloc.h']]], - ['vmaallocatememoryforbuffer_102',['vmaAllocateMemoryForBuffer',['../group__group__alloc.html#ga7fdf64415b6c3d83c454f28d2c53df7b',1,'vk_mem_alloc.h']]], - ['vmaallocatememoryforimage_103',['vmaAllocateMemoryForImage',['../group__group__alloc.html#ga0faa3f9e5fb233d29d1e00390650febb',1,'vk_mem_alloc.h']]], - ['vmaallocatememorypages_104',['vmaAllocateMemoryPages',['../group__group__alloc.html#gad37e82e492b3de38fc3f4cffd9ad0ae1',1,'vk_mem_alloc.h']]], - ['vmaallocation_105',['VmaAllocation',['../struct_vma_allocation.html',1,'']]], - ['vmaallocationcreateflagbits_106',['VmaAllocationCreateFlagBits',['../group__group__alloc.html#gad9889c10c798b040d59c92f257cae597',1,'VmaAllocationCreateFlagBits: vk_mem_alloc.h'],['../group__group__alloc.html#ga4fceecc301f4064dc808d3cd6c038941',1,'VmaAllocationCreateFlagBits: vk_mem_alloc.h']]], - ['vmaallocationcreateflags_107',['VmaAllocationCreateFlags',['../group__group__alloc.html#ga5225e5e11f8376f6a31a1791f3d6e817',1,'vk_mem_alloc.h']]], - ['vmaallocationcreateinfo_108',['VmaAllocationCreateInfo',['../struct_vma_allocation_create_info.html',1,'VmaAllocationCreateInfo'],['../group__group__alloc.html#ga3bf110892ea2fb4649fedb68488d026a',1,'VmaAllocationCreateInfo: vk_mem_alloc.h']]], - ['vmaallocationinfo_109',['VmaAllocationInfo',['../struct_vma_allocation_info.html',1,'VmaAllocationInfo'],['../group__group__alloc.html#ga1cf7774606721026a68aabe3af2e5b50',1,'VmaAllocationInfo: vk_mem_alloc.h']]], - ['vmaallocationinfo2_110',['VmaAllocationInfo2',['../struct_vma_allocation_info2.html',1,'VmaAllocationInfo2'],['../group__group__alloc.html#ga25ede29f830f326b8572a18ce879bf64',1,'VmaAllocationInfo2: vk_mem_alloc.h']]], - ['vmaallocator_111',['VmaAllocator',['../struct_vma_allocator.html',1,'']]], - ['vmaallocatorcreateflagbits_112',['VmaAllocatorCreateFlagBits',['../group__group__init.html#ga4f87c9100d154a65a4ad495f7763cf7c',1,'VmaAllocatorCreateFlagBits: vk_mem_alloc.h'],['../group__group__init.html#gafd73b95e737ee7e76f827cb5472f559f',1,'VmaAllocatorCreateFlagBits: vk_mem_alloc.h']]], - ['vmaallocatorcreateflags_113',['VmaAllocatorCreateFlags',['../group__group__init.html#gacfe6863e160722c2c1bbcf7573fddc4d',1,'vk_mem_alloc.h']]], - ['vmaallocatorcreateinfo_114',['VmaAllocatorCreateInfo',['../struct_vma_allocator_create_info.html',1,'VmaAllocatorCreateInfo'],['../group__group__init.html#gaad9652301d33759b83e52d4f3605a14a',1,'VmaAllocatorCreateInfo: vk_mem_alloc.h']]], - ['vmaallocatorinfo_115',['VmaAllocatorInfo',['../struct_vma_allocator_info.html',1,'VmaAllocatorInfo'],['../group__group__init.html#ga1988031b0223fdbd564250fa1edd942c',1,'VmaAllocatorInfo: vk_mem_alloc.h']]], - ['vmabegindefragmentation_116',['vmaBeginDefragmentation',['../group__group__alloc.html#gac3335566858b45541fa9c0d7a6bbb57e',1,'vk_mem_alloc.h']]], - ['vmabegindefragmentationpass_117',['vmaBeginDefragmentationPass',['../group__group__alloc.html#ga980d7da2ce3b1fd5c8b8476bc362cc00',1,'vk_mem_alloc.h']]], - ['vmabindbuffermemory_118',['vmaBindBufferMemory',['../group__group__alloc.html#ga6b0929b914b60cf2d45cac4bf3547470',1,'vk_mem_alloc.h']]], - ['vmabindbuffermemory2_119',['vmaBindBufferMemory2',['../group__group__alloc.html#ga861f4f27189a7d11ab9d9eedc825cb6b',1,'vk_mem_alloc.h']]], - ['vmabindimagememory_120',['vmaBindImageMemory',['../group__group__alloc.html#ga3d3ca45799923aa5d138e9e5f9eb2da5',1,'vk_mem_alloc.h']]], - ['vmabindimagememory2_121',['vmaBindImageMemory2',['../group__group__alloc.html#ga5f3502dd7d38b53fb1533ea3921d038d',1,'vk_mem_alloc.h']]], - ['vmabudget_122',['VmaBudget',['../struct_vma_budget.html',1,'VmaBudget'],['../group__group__stats.html#gaa078667e71b1ef24e87a6a30d128381d',1,'VmaBudget: vk_mem_alloc.h']]], - ['vmabuildstatsstring_123',['vmaBuildStatsString',['../group__group__stats.html#gaa4fee7eb5253377599ef4fd38c93c2a0',1,'vk_mem_alloc.h']]], - ['vmabuildvirtualblockstatsstring_124',['vmaBuildVirtualBlockStatsString',['../group__group__stats.html#ga52d810e1222c592e5d80556ad005f1e6',1,'vk_mem_alloc.h']]], - ['vmacalculatepoolstatistics_125',['vmaCalculatePoolStatistics',['../group__group__stats.html#ga50ba0eb25d2b363b792be4645ca7a380',1,'vk_mem_alloc.h']]], - ['vmacalculatestatistics_126',['vmaCalculateStatistics',['../group__group__stats.html#ga36f3484de7aa6cd6edc4de9edfa0ff59',1,'vk_mem_alloc.h']]], - ['vmacalculatevirtualblockstatistics_127',['vmaCalculateVirtualBlockStatistics',['../group__group__virtual.html#ga93c5741bca44b43e5b849cacbd616098',1,'vk_mem_alloc.h']]], - ['vmacheckcorruption_128',['vmaCheckCorruption',['../group__group__alloc.html#ga49329a7f030dafcf82f7b73334c22e98',1,'vk_mem_alloc.h']]], - ['vmacheckpoolcorruption_129',['vmaCheckPoolCorruption',['../group__group__alloc.html#gad535935619c7a549bf837e1bb0068f89',1,'vk_mem_alloc.h']]], - ['vmaclearvirtualblock_130',['vmaClearVirtualBlock',['../group__group__virtual.html#ga5eda6f55919fb05bd2f56a112590c571',1,'vk_mem_alloc.h']]], - ['vmacopyallocationtomemory_131',['vmaCopyAllocationToMemory',['../group__group__alloc.html#gaac883dd38863944335071213b9ae8477',1,'vk_mem_alloc.h']]], - ['vmacopymemorytoallocation_132',['vmaCopyMemoryToAllocation',['../group__group__alloc.html#ga11731ec58a3a43a22bb925e0780ef405',1,'vk_mem_alloc.h']]], - ['vmacreatealiasingbuffer_133',['vmaCreateAliasingBuffer',['../group__group__alloc.html#ga60d5d4803e3c82505a2bfddb929adb03',1,'vk_mem_alloc.h']]], - ['vmacreatealiasingbuffer2_134',['vmaCreateAliasingBuffer2',['../group__group__alloc.html#gaf0cf014344213e117bd9f9cf5f928122',1,'vk_mem_alloc.h']]], - ['vmacreatealiasingimage_135',['vmaCreateAliasingImage',['../group__group__alloc.html#gaebc4db1f94b53dba2338b4c0fd80d0dc',1,'vk_mem_alloc.h']]], - ['vmacreatealiasingimage2_136',['vmaCreateAliasingImage2',['../group__group__alloc.html#ga69ac829f5bb0737449fa92c2d971f1bb',1,'vk_mem_alloc.h']]], - ['vmacreateallocator_137',['vmaCreateAllocator',['../group__group__init.html#ga200692051ddb34240248234f5f4c17bb',1,'vk_mem_alloc.h']]], - ['vmacreatebuffer_138',['vmaCreateBuffer',['../group__group__alloc.html#gac72ee55598617e8eecca384e746bab51',1,'vk_mem_alloc.h']]], - ['vmacreatebufferwithalignment_139',['vmaCreateBufferWithAlignment',['../group__group__alloc.html#gaa06a690013a0d01e60894ac378083834',1,'vk_mem_alloc.h']]], - ['vmacreateimage_140',['vmaCreateImage',['../group__group__alloc.html#ga02a94f25679275851a53e82eacbcfc73',1,'vk_mem_alloc.h']]], - ['vmacreatepool_141',['vmaCreatePool',['../group__group__alloc.html#ga5c8770ded7c59c8caac6de0c2cb00b50',1,'vk_mem_alloc.h']]], - ['vmacreatevirtualblock_142',['vmaCreateVirtualBlock',['../group__group__virtual.html#gab585754076877265fdae33e5c40ef13b',1,'vk_mem_alloc.h']]], - ['vmadefragmentationcontext_143',['VmaDefragmentationContext',['../struct_vma_defragmentation_context.html',1,'']]], - ['vmadefragmentationflagbits_144',['VmaDefragmentationFlagBits',['../group__group__alloc.html#ga6552a65b71d16f378c6994b3ceaef50c',1,'VmaDefragmentationFlagBits: vk_mem_alloc.h'],['../group__group__alloc.html#ga13415cc0b443353a7b5abda300b833fc',1,'VmaDefragmentationFlagBits: vk_mem_alloc.h']]], - ['vmadefragmentationflags_145',['VmaDefragmentationFlags',['../group__group__alloc.html#ga88a77cef37e5d3c4fc9eb328885d048d',1,'vk_mem_alloc.h']]], - ['vmadefragmentationinfo_146',['VmaDefragmentationInfo',['../struct_vma_defragmentation_info.html',1,'VmaDefragmentationInfo'],['../group__group__alloc.html#ga2bf47f96bf92bed2a49461bd9af3acfa',1,'VmaDefragmentationInfo: vk_mem_alloc.h']]], - ['vmadefragmentationmove_147',['VmaDefragmentationMove',['../struct_vma_defragmentation_move.html',1,'VmaDefragmentationMove'],['../group__group__alloc.html#ga563f4b43d3e31ed603d80cacc9ba8589',1,'VmaDefragmentationMove: vk_mem_alloc.h']]], - ['vmadefragmentationmoveoperation_148',['VmaDefragmentationMoveOperation',['../group__group__alloc.html#gada9e3861caf96f08894b0bcc160ec257',1,'VmaDefragmentationMoveOperation: vk_mem_alloc.h'],['../group__group__alloc.html#ga2ea666deeb3c2c74806a097e27cdb4a1',1,'VmaDefragmentationMoveOperation: vk_mem_alloc.h']]], - ['vmadefragmentationpassmoveinfo_149',['VmaDefragmentationPassMoveInfo',['../struct_vma_defragmentation_pass_move_info.html',1,'VmaDefragmentationPassMoveInfo'],['../group__group__alloc.html#gad6799e8e2b1527abfc84d33bc44aeaf5',1,'VmaDefragmentationPassMoveInfo: vk_mem_alloc.h']]], - ['vmadefragmentationstats_150',['VmaDefragmentationStats',['../struct_vma_defragmentation_stats.html',1,'VmaDefragmentationStats'],['../group__group__alloc.html#gad94034192259c2e34a4d1c5e27810403',1,'VmaDefragmentationStats: vk_mem_alloc.h']]], - ['vmadestroyallocator_151',['vmaDestroyAllocator',['../group__group__init.html#gaa8d164061c88f22fb1fd3c8f3534bc1d',1,'vk_mem_alloc.h']]], - ['vmadestroybuffer_152',['vmaDestroyBuffer',['../group__group__alloc.html#ga0d9f4e4ba5bf9aab1f1c746387753d77',1,'vk_mem_alloc.h']]], - ['vmadestroyimage_153',['vmaDestroyImage',['../group__group__alloc.html#gae50d2cb3b4a3bfd4dd40987234e50e7e',1,'vk_mem_alloc.h']]], - ['vmadestroypool_154',['vmaDestroyPool',['../group__group__alloc.html#ga5485779c8f1948238fc4e92232fa65e1',1,'vk_mem_alloc.h']]], - ['vmadestroyvirtualblock_155',['vmaDestroyVirtualBlock',['../group__group__virtual.html#ga3795f7783ae2c182cede067d656f66a5',1,'vk_mem_alloc.h']]], - ['vmadetailedstatistics_156',['VmaDetailedStatistics',['../struct_vma_detailed_statistics.html',1,'VmaDetailedStatistics'],['../group__group__stats.html#ga9ab0c535a6ca655dc63b8609ab4b8394',1,'VmaDetailedStatistics: vk_mem_alloc.h']]], - ['vmadevicememorycallbacks_157',['VmaDeviceMemoryCallbacks',['../struct_vma_device_memory_callbacks.html',1,'VmaDeviceMemoryCallbacks'],['../group__group__init.html#ga77692d3c8770ea8882d573206bd27b2b',1,'VmaDeviceMemoryCallbacks: vk_mem_alloc.h']]], - ['vmaenddefragmentation_158',['vmaEndDefragmentation',['../group__group__alloc.html#ga59f01ca3d53d50b7cca9b442b77a3e87',1,'vk_mem_alloc.h']]], - ['vmaenddefragmentationpass_159',['vmaEndDefragmentationPass',['../group__group__alloc.html#gaded05a445742a00718ee766144c5c226',1,'vk_mem_alloc.h']]], - ['vmafindmemorytypeindex_160',['vmaFindMemoryTypeIndex',['../group__group__alloc.html#gaef15a94b58fbcb0fe706d5720e84a74a',1,'vk_mem_alloc.h']]], - ['vmafindmemorytypeindexforbufferinfo_161',['vmaFindMemoryTypeIndexForBufferInfo',['../group__group__alloc.html#gae790ab9ffaf7667fb8f62523e6897888',1,'vk_mem_alloc.h']]], - ['vmafindmemorytypeindexforimageinfo_162',['vmaFindMemoryTypeIndexForImageInfo',['../group__group__alloc.html#ga088da83d8eaf3ce9056d9ea0b981d472',1,'vk_mem_alloc.h']]], - ['vmaflushallocation_163',['vmaFlushAllocation',['../group__group__alloc.html#ga30c37c1eec6025f397be41644f48490f',1,'vk_mem_alloc.h']]], - ['vmaflushallocations_164',['vmaFlushAllocations',['../group__group__alloc.html#gac3dd00da721875ed99fa8a881922bdfc',1,'vk_mem_alloc.h']]], - ['vmafreememory_165',['vmaFreeMemory',['../group__group__alloc.html#ga5fea5518972ae9094b1526cbcb19b05f',1,'vk_mem_alloc.h']]], - ['vmafreememorypages_166',['vmaFreeMemoryPages',['../group__group__alloc.html#ga834b1e4aef395c0a1d56a28e69a4a17e',1,'vk_mem_alloc.h']]], - ['vmafreestatsstring_167',['vmaFreeStatsString',['../group__group__stats.html#ga3104eb30d8122c84dd8541063f145288',1,'vk_mem_alloc.h']]], - ['vmafreevirtualblockstatsstring_168',['vmaFreeVirtualBlockStatsString',['../group__group__stats.html#ga47fb8d8aa69df4a7c23a9719b4080623',1,'vk_mem_alloc.h']]], - ['vmagetallocationinfo_169',['vmaGetAllocationInfo',['../group__group__alloc.html#ga86dd08aba8633bfa4ad0df2e76481d8b',1,'vk_mem_alloc.h']]], - ['vmagetallocationinfo2_170',['vmaGetAllocationInfo2',['../group__group__alloc.html#ga1405cf3eae2fd1305d645879173031a0',1,'vk_mem_alloc.h']]], - ['vmagetallocationmemoryproperties_171',['vmaGetAllocationMemoryProperties',['../group__group__alloc.html#ga571e87dd38e552249b56b1b0b982fad1',1,'vk_mem_alloc.h']]], - ['vmagetallocatorinfo_172',['vmaGetAllocatorInfo',['../group__group__init.html#gafa02231a791b37255720d566a52683e7',1,'vk_mem_alloc.h']]], - ['vmagetheapbudgets_173',['vmaGetHeapBudgets',['../group__group__stats.html#ga9f88db9d46a432c0ad7278cecbc5eaa7',1,'vk_mem_alloc.h']]], - ['vmagetmemoryproperties_174',['vmaGetMemoryProperties',['../group__group__init.html#gab88db292a17974f911182543fda52d19',1,'vk_mem_alloc.h']]], - ['vmagetmemorytypeproperties_175',['vmaGetMemoryTypeProperties',['../group__group__init.html#ga8701444752eb5de4464adb5a2b514bca',1,'vk_mem_alloc.h']]], - ['vmagetphysicaldeviceproperties_176',['vmaGetPhysicalDeviceProperties',['../group__group__init.html#gaecabf7b6e91ea87d0316fa0a9e014fe0',1,'vk_mem_alloc.h']]], - ['vmagetpoolname_177',['vmaGetPoolName',['../group__group__alloc.html#gaf09b4e4eafdbee812e8d73ddf960f030',1,'vk_mem_alloc.h']]], - ['vmagetpoolstatistics_178',['vmaGetPoolStatistics',['../group__group__stats.html#ga34d8e7d83774eed0caee5c5ae88e217d',1,'vk_mem_alloc.h']]], - ['vmagetvirtualallocationinfo_179',['vmaGetVirtualAllocationInfo',['../group__group__virtual.html#ga8ee14ceb1fe033ec84d8aa29e1f75afa',1,'vk_mem_alloc.h']]], - ['vmagetvirtualblockstatistics_180',['vmaGetVirtualBlockStatistics',['../group__group__virtual.html#ga2902aa3130866afcc64bb5f984113db3',1,'vk_mem_alloc.h']]], - ['vmainvalidateallocation_181',['vmaInvalidateAllocation',['../group__group__alloc.html#gaaa8412919139ef413a4215ac6a290fae',1,'vk_mem_alloc.h']]], - ['vmainvalidateallocations_182',['vmaInvalidateAllocations',['../group__group__alloc.html#gab25b558d75f7378ec944a1522fdcc3c5',1,'vk_mem_alloc.h']]], - ['vmaisvirtualblockempty_183',['vmaIsVirtualBlockEmpty',['../group__group__virtual.html#gacd53b5b1d23f8fcbad692ccfdc1811f1',1,'vk_mem_alloc.h']]], - ['vmamapmemory_184',['vmaMapMemory',['../group__group__alloc.html#gad5bd1243512d099706de88168992f069',1,'vk_mem_alloc.h']]], - ['vmamemoryusage_185',['VmaMemoryUsage',['../group__group__alloc.html#gaa5846affa1e9da3800e3e78fae2305cc',1,'VmaMemoryUsage: vk_mem_alloc.h'],['../group__group__alloc.html#ga806e8499dde802e59eb72a1dc811c35f',1,'VmaMemoryUsage: vk_mem_alloc.h']]], - ['vmapool_186',['VmaPool',['../struct_vma_pool.html',1,'']]], - ['vmapoolcreateflagbits_187',['VmaPoolCreateFlagBits',['../group__group__alloc.html#ga9a7c45f9c863695d98c83fa5ac940fe7',1,'VmaPoolCreateFlagBits: vk_mem_alloc.h'],['../group__group__alloc.html#ga4d4f2efc2509157a9e4ecd4fd7942303',1,'VmaPoolCreateFlagBits: vk_mem_alloc.h']]], - ['vmapoolcreateflags_188',['VmaPoolCreateFlags',['../group__group__alloc.html#ga2770e325ea42e087c1b91fdf46d0292a',1,'vk_mem_alloc.h']]], - ['vmapoolcreateinfo_189',['VmaPoolCreateInfo',['../struct_vma_pool_create_info.html',1,'VmaPoolCreateInfo'],['../group__group__alloc.html#ga1017aa83489c0eee8d2163d2bf253f67',1,'VmaPoolCreateInfo: vk_mem_alloc.h']]], - ['vmasetallocationname_190',['vmaSetAllocationName',['../group__group__alloc.html#gabe02cbb0cd913b3f125958179f2020fc',1,'vk_mem_alloc.h']]], - ['vmasetallocationuserdata_191',['vmaSetAllocationUserData',['../group__group__alloc.html#gaf9147d31ffc11d62fc187bde283ed14f',1,'vk_mem_alloc.h']]], - ['vmasetcurrentframeindex_192',['vmaSetCurrentFrameIndex',['../group__group__init.html#gade56bf8dc9f5a5eaddf5f119ed525236',1,'vk_mem_alloc.h']]], - ['vmasetpoolname_193',['vmaSetPoolName',['../group__group__alloc.html#gadbae3a0b4ab078024462fc85c37f3b58',1,'vk_mem_alloc.h']]], - ['vmasetvirtualallocationuserdata_194',['vmaSetVirtualAllocationUserData',['../group__group__virtual.html#ga001ea1850458a4062b829e09c303fca2',1,'vk_mem_alloc.h']]], - ['vmastatistics_195',['VmaStatistics',['../struct_vma_statistics.html',1,'VmaStatistics'],['../group__group__stats.html#gac94bd1a382a3922ddc8de3af4d3ddd06',1,'VmaStatistics: vk_mem_alloc.h']]], - ['vmatotalstatistics_196',['VmaTotalStatistics',['../struct_vma_total_statistics.html',1,'VmaTotalStatistics'],['../group__group__stats.html#ga68916e729e55d513f88ffafbadddb770',1,'VmaTotalStatistics: vk_mem_alloc.h']]], - ['vmaunmapmemory_197',['vmaUnmapMemory',['../group__group__alloc.html#ga9bc268595cb33f6ec4d519cfce81ff45',1,'vk_mem_alloc.h']]], - ['vmavirtualallocate_198',['vmaVirtualAllocate',['../group__group__virtual.html#ga6b7cdcc1c3e5103c323fedc4e1319e01',1,'vk_mem_alloc.h']]], - ['vmavirtualallocation_199',['VmaVirtualAllocation',['../struct_vma_virtual_allocation.html',1,'']]], - ['vmavirtualallocationcreateflagbits_200',['VmaVirtualAllocationCreateFlagBits',['../group__group__virtual.html#ga2e9c64d405b14156fea7e10c4ad06cb6',1,'VmaVirtualAllocationCreateFlagBits: vk_mem_alloc.h'],['../group__group__virtual.html#ga936815e64946a6b6d812d08d10184c23',1,'VmaVirtualAllocationCreateFlagBits: vk_mem_alloc.h']]], - ['vmavirtualallocationcreateflags_201',['VmaVirtualAllocationCreateFlags',['../group__group__virtual.html#gae96ffc099bf898257fb19e9410ed08a7',1,'vk_mem_alloc.h']]], - ['vmavirtualallocationcreateinfo_202',['VmaVirtualAllocationCreateInfo',['../struct_vma_virtual_allocation_create_info.html',1,'VmaVirtualAllocationCreateInfo'],['../group__group__virtual.html#gac3c90d80bedc6847a41b82d0e2158c9e',1,'VmaVirtualAllocationCreateInfo: vk_mem_alloc.h']]], - ['vmavirtualallocationinfo_203',['VmaVirtualAllocationInfo',['../struct_vma_virtual_allocation_info.html',1,'VmaVirtualAllocationInfo'],['../group__group__virtual.html#ga75bc33ff7cf18c98e101f570dc2a5ebc',1,'VmaVirtualAllocationInfo: vk_mem_alloc.h']]], - ['vmavirtualblock_204',['VmaVirtualBlock',['../struct_vma_virtual_block.html',1,'']]], - ['vmavirtualblockcreateflagbits_205',['VmaVirtualBlockCreateFlagBits',['../group__group__virtual.html#ga88bcf8c1cd3bb1610ff7343811c65bca',1,'VmaVirtualBlockCreateFlagBits: vk_mem_alloc.h'],['../group__group__virtual.html#ga0860ba1c0a67178fae4aecb63a78573e',1,'VmaVirtualBlockCreateFlagBits: vk_mem_alloc.h']]], - ['vmavirtualblockcreateflags_206',['VmaVirtualBlockCreateFlags',['../group__group__virtual.html#ga4e49c2f0ab7f6b4868833e5bac78d91e',1,'vk_mem_alloc.h']]], - ['vmavirtualblockcreateinfo_207',['VmaVirtualBlockCreateInfo',['../struct_vma_virtual_block_create_info.html',1,'VmaVirtualBlockCreateInfo'],['../group__group__virtual.html#ga4753d42d40217a3a652a3cdf253ad773',1,'VmaVirtualBlockCreateInfo: vk_mem_alloc.h']]], - ['vmavirtualfree_208',['vmaVirtualFree',['../group__group__virtual.html#ga09fc688c0c3653ff23723b037e5d5033',1,'vk_mem_alloc.h']]], - ['vmavulkanfunctions_209',['VmaVulkanFunctions',['../struct_vma_vulkan_functions.html',1,'VmaVulkanFunctions'],['../group__group__init.html#gabb0a8e3b5040d847571cca6c7f9a8074',1,'VmaVulkanFunctions: vk_mem_alloc.h']]], - ['vulkan_20functions_210',['Vulkan functions',['../quick_start.html#quick_start_initialization_importing_vulkan_functions',1,'Importing Vulkan functions'],['../configuration.html#config_Vulkan_functions',1,'Pointers to Vulkan functions']]], - ['vulkan_20memory_20allocator_211',['Vulkan Memory Allocator',['../index.html',1,'']]], - ['vulkan_20version_212',['Selecting Vulkan version',['../quick_start.html#quick_start_initialization_selecting_vulkan_version',1,'']]], - ['vulkanapiversion_213',['vulkanApiVersion',['../struct_vma_allocator_create_info.html#ae0ffc55139b54520a6bb704b29ffc285',1,'VmaAllocatorCreateInfo']]] + ['vma_5fallocator_5fcreate_5fkhr_5fmaintenance5_5fbit_63',['VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE5_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7caca82d4ce40bdb59d3da52a539c21d6b8',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5falgorithm_5fbalanced_5fbit_64',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_BALANCED_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50caec35a4138111605a6ff32ca61aa871b6',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5falgorithm_5fextensive_5fbit_65',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_EXTENSIVE_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cae45a9469e5337731627758671741e412',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5falgorithm_5ffast_5fbit_66',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FAST_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50ca2e6469bcf5a094776ceb5d118263f04b',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5falgorithm_5ffull_5fbit_67',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FULL_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cafa162eac5be800bcdd4011427a71156d',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5falgorithm_5fmask_68',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_MASK',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cabcbbdb3bfd53c4c3ab4eaeb5fd4894e9',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5fbits_5fmax_5fenum_69',['VMA_DEFRAGMENTATION_FLAG_BITS_MAX_ENUM',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cab87ec33154803bfeb5ac2b379f1d6a97',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fmove_5foperation_5fcopy_70',['VMA_DEFRAGMENTATION_MOVE_OPERATION_COPY',['../group__group__alloc.html#ggada9e3861caf96f08894b0bcc160ec257ad4a06ac46c4cb1c67b0ebc1edfab9f18',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fmove_5foperation_5fdestroy_71',['VMA_DEFRAGMENTATION_MOVE_OPERATION_DESTROY',['../group__group__alloc.html#ggada9e3861caf96f08894b0bcc160ec257a9786f8492a9be2c03bd26395e352ab85',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fmove_5foperation_5fignore_72',['VMA_DEFRAGMENTATION_MOVE_OPERATION_IGNORE',['../group__group__alloc.html#ggada9e3861caf96f08894b0bcc160ec257ad25bc6f816b226b4fd5170e845f218d2',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fauto_73',['VMA_MEMORY_USAGE_AUTO',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca27cde9026a84d34d525777baa41fce6e',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fauto_5fprefer_5fdevice_74',['VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305ccae2adb696d6a73c18bb20c23666661327',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fauto_5fprefer_5fhost_75',['VMA_MEMORY_USAGE_AUTO_PREFER_HOST',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca9b422585242160b8ed3418310ee6664d',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fcpu_5fcopy_76',['VMA_MEMORY_USAGE_CPU_COPY',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca416a444d4d0fc20067c3f76f32ff2500',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fcpu_5fonly_77',['VMA_MEMORY_USAGE_CPU_ONLY',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca40bdf4cddeffeb12f43d45ca1286e0a5',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fcpu_5fto_5fgpu_78',['VMA_MEMORY_USAGE_CPU_TO_GPU',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca9066b52c5a7079bb74a69aaf8b92ff67',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fgpu_5flazily_5fallocated_79',['VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca835333d9072db63a653818030e17614d',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fgpu_5fonly_80',['VMA_MEMORY_USAGE_GPU_ONLY',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fgpu_5fto_5fcpu_81',['VMA_MEMORY_USAGE_GPU_TO_CPU',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca7b586d2fdaf82a463b58f581ed72be27',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fmax_5fenum_82',['VMA_MEMORY_USAGE_MAX_ENUM',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca091e69437ef693e8d0d287f1c719ba6e',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5funknown_83',['VMA_MEMORY_USAGE_UNKNOWN',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305ccaf50d27e34e0925cf3a63db8c839121dd',1,'vk_mem_alloc.h']]], + ['vma_5fpool_5fcreate_5falgorithm_5fmask_84',['VMA_POOL_CREATE_ALGORITHM_MASK',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7af4d270f8f42517a0f70037ceb6ac1d9c',1,'vk_mem_alloc.h']]], + ['vma_5fpool_5fcreate_5fflag_5fbits_5fmax_5fenum_85',['VMA_POOL_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7a1c7312bea9ea246846b9054fd6bd6aec',1,'vk_mem_alloc.h']]], + ['vma_5fpool_5fcreate_5fignore_5fbuffer_5fimage_5fgranularity_5fbit_86',['VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7a9f1a499508a8edb4e8ba40aa0290a3d2',1,'vk_mem_alloc.h']]], + ['vma_5fpool_5fcreate_5flinear_5falgorithm_5fbit_87',['VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7a13c8a444197c67866be9cb05599fc726',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fflag_5fbits_5fmax_5fenum_88',['VMA_VIRTUAL_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ac1163c03ea837fa663462dc286d6a1a9',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmask_89',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MASK',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ac5b5e45c335368d18df59c9f27df17e3',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmin_5fmemory_5fbit_90',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ae2a9591a62b5e3b1bdcbc81c6188a1bf',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmin_5foffset_5fbit_91',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_OFFSET_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6a3bb82d2aedd587a64846a1d7778852e6',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmin_5ftime_5fbit_92',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6a562d10a46012719d33167d3dc5dbbf9b',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fupper_5faddress_5fbit_93',['VMA_VIRTUAL_ALLOCATION_CREATE_UPPER_ADDRESS_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6a9524a329a55b5ec390d57d90b67ad78e',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fblock_5fcreate_5falgorithm_5fmask_94',['VMA_VIRTUAL_BLOCK_CREATE_ALGORITHM_MASK',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaaf9487467136e1a9e371894dc3a7c4844',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fblock_5fcreate_5fflag_5fbits_5fmax_5fenum_95',['VMA_VIRTUAL_BLOCK_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaa5fc0d333c3d5687a8bbf57df9b377a87',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fblock_5fcreate_5flinear_5falgorithm_5fbit_96',['VMA_VIRTUAL_BLOCK_CREATE_LINEAR_ALGORITHM_BIT',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaae6423e2fa2f3c9211b21c819e3f10f96',1,'vk_mem_alloc.h']]], + ['vmaallocatememory_97',['vmaAllocateMemory',['../group__group__alloc.html#gabf28077dbf82d0908b8acbe8ee8dd9b8',1,'vk_mem_alloc.h']]], + ['vmaallocatememoryforbuffer_98',['vmaAllocateMemoryForBuffer',['../group__group__alloc.html#ga7fdf64415b6c3d83c454f28d2c53df7b',1,'vk_mem_alloc.h']]], + ['vmaallocatememoryforimage_99',['vmaAllocateMemoryForImage',['../group__group__alloc.html#ga0faa3f9e5fb233d29d1e00390650febb',1,'vk_mem_alloc.h']]], + ['vmaallocatememorypages_100',['vmaAllocateMemoryPages',['../group__group__alloc.html#gad37e82e492b3de38fc3f4cffd9ad0ae1',1,'vk_mem_alloc.h']]], + ['vmaallocation_101',['VmaAllocation',['../struct_vma_allocation.html',1,'']]], + ['vmaallocationcreateflagbits_102',['VmaAllocationCreateFlagBits',['../group__group__alloc.html#gad9889c10c798b040d59c92f257cae597',1,'VmaAllocationCreateFlagBits: vk_mem_alloc.h'],['../group__group__alloc.html#ga4fceecc301f4064dc808d3cd6c038941',1,'VmaAllocationCreateFlagBits: vk_mem_alloc.h']]], + ['vmaallocationcreateflags_103',['VmaAllocationCreateFlags',['../group__group__alloc.html#ga5225e5e11f8376f6a31a1791f3d6e817',1,'vk_mem_alloc.h']]], + ['vmaallocationcreateinfo_104',['VmaAllocationCreateInfo',['../struct_vma_allocation_create_info.html',1,'VmaAllocationCreateInfo'],['../group__group__alloc.html#ga3bf110892ea2fb4649fedb68488d026a',1,'VmaAllocationCreateInfo: vk_mem_alloc.h']]], + ['vmaallocationinfo_105',['VmaAllocationInfo',['../struct_vma_allocation_info.html',1,'VmaAllocationInfo'],['../group__group__alloc.html#ga1cf7774606721026a68aabe3af2e5b50',1,'VmaAllocationInfo: vk_mem_alloc.h']]], + ['vmaallocationinfo2_106',['VmaAllocationInfo2',['../struct_vma_allocation_info2.html',1,'VmaAllocationInfo2'],['../group__group__alloc.html#ga25ede29f830f326b8572a18ce879bf64',1,'VmaAllocationInfo2: vk_mem_alloc.h']]], + ['vmaallocator_107',['VmaAllocator',['../struct_vma_allocator.html',1,'']]], + ['vmaallocatorcreateflagbits_108',['VmaAllocatorCreateFlagBits',['../group__group__init.html#ga4f87c9100d154a65a4ad495f7763cf7c',1,'VmaAllocatorCreateFlagBits: vk_mem_alloc.h'],['../group__group__init.html#gafd73b95e737ee7e76f827cb5472f559f',1,'VmaAllocatorCreateFlagBits: vk_mem_alloc.h']]], + ['vmaallocatorcreateflags_109',['VmaAllocatorCreateFlags',['../group__group__init.html#gacfe6863e160722c2c1bbcf7573fddc4d',1,'vk_mem_alloc.h']]], + ['vmaallocatorcreateinfo_110',['VmaAllocatorCreateInfo',['../struct_vma_allocator_create_info.html',1,'VmaAllocatorCreateInfo'],['../group__group__init.html#gaad9652301d33759b83e52d4f3605a14a',1,'VmaAllocatorCreateInfo: vk_mem_alloc.h']]], + ['vmaallocatorinfo_111',['VmaAllocatorInfo',['../struct_vma_allocator_info.html',1,'VmaAllocatorInfo'],['../group__group__init.html#ga1988031b0223fdbd564250fa1edd942c',1,'VmaAllocatorInfo: vk_mem_alloc.h']]], + ['vmabegindefragmentation_112',['vmaBeginDefragmentation',['../group__group__alloc.html#gac3335566858b45541fa9c0d7a6bbb57e',1,'vk_mem_alloc.h']]], + ['vmabegindefragmentationpass_113',['vmaBeginDefragmentationPass',['../group__group__alloc.html#ga980d7da2ce3b1fd5c8b8476bc362cc00',1,'vk_mem_alloc.h']]], + ['vmabindbuffermemory_114',['vmaBindBufferMemory',['../group__group__alloc.html#ga6b0929b914b60cf2d45cac4bf3547470',1,'vk_mem_alloc.h']]], + ['vmabindbuffermemory2_115',['vmaBindBufferMemory2',['../group__group__alloc.html#ga861f4f27189a7d11ab9d9eedc825cb6b',1,'vk_mem_alloc.h']]], + ['vmabindimagememory_116',['vmaBindImageMemory',['../group__group__alloc.html#ga3d3ca45799923aa5d138e9e5f9eb2da5',1,'vk_mem_alloc.h']]], + ['vmabindimagememory2_117',['vmaBindImageMemory2',['../group__group__alloc.html#ga5f3502dd7d38b53fb1533ea3921d038d',1,'vk_mem_alloc.h']]], + ['vmabudget_118',['VmaBudget',['../struct_vma_budget.html',1,'VmaBudget'],['../group__group__stats.html#gaa078667e71b1ef24e87a6a30d128381d',1,'VmaBudget: vk_mem_alloc.h']]], + ['vmabuildstatsstring_119',['vmaBuildStatsString',['../group__group__stats.html#gaa4fee7eb5253377599ef4fd38c93c2a0',1,'vk_mem_alloc.h']]], + ['vmabuildvirtualblockstatsstring_120',['vmaBuildVirtualBlockStatsString',['../group__group__stats.html#ga52d810e1222c592e5d80556ad005f1e6',1,'vk_mem_alloc.h']]], + ['vmacalculatepoolstatistics_121',['vmaCalculatePoolStatistics',['../group__group__stats.html#ga50ba0eb25d2b363b792be4645ca7a380',1,'vk_mem_alloc.h']]], + ['vmacalculatestatistics_122',['vmaCalculateStatistics',['../group__group__stats.html#ga36f3484de7aa6cd6edc4de9edfa0ff59',1,'vk_mem_alloc.h']]], + ['vmacalculatevirtualblockstatistics_123',['vmaCalculateVirtualBlockStatistics',['../group__group__virtual.html#ga93c5741bca44b43e5b849cacbd616098',1,'vk_mem_alloc.h']]], + ['vmacheckcorruption_124',['vmaCheckCorruption',['../group__group__alloc.html#ga49329a7f030dafcf82f7b73334c22e98',1,'vk_mem_alloc.h']]], + ['vmacheckpoolcorruption_125',['vmaCheckPoolCorruption',['../group__group__alloc.html#gad535935619c7a549bf837e1bb0068f89',1,'vk_mem_alloc.h']]], + ['vmaclearvirtualblock_126',['vmaClearVirtualBlock',['../group__group__virtual.html#ga5eda6f55919fb05bd2f56a112590c571',1,'vk_mem_alloc.h']]], + ['vmacopyallocationtomemory_127',['vmaCopyAllocationToMemory',['../group__group__alloc.html#gaac883dd38863944335071213b9ae8477',1,'vk_mem_alloc.h']]], + ['vmacopymemorytoallocation_128',['vmaCopyMemoryToAllocation',['../group__group__alloc.html#ga11731ec58a3a43a22bb925e0780ef405',1,'vk_mem_alloc.h']]], + ['vmacreatealiasingbuffer_129',['vmaCreateAliasingBuffer',['../group__group__alloc.html#ga60d5d4803e3c82505a2bfddb929adb03',1,'vk_mem_alloc.h']]], + ['vmacreatealiasingbuffer2_130',['vmaCreateAliasingBuffer2',['../group__group__alloc.html#gaf0cf014344213e117bd9f9cf5f928122',1,'vk_mem_alloc.h']]], + ['vmacreatealiasingimage_131',['vmaCreateAliasingImage',['../group__group__alloc.html#gaebc4db1f94b53dba2338b4c0fd80d0dc',1,'vk_mem_alloc.h']]], + ['vmacreatealiasingimage2_132',['vmaCreateAliasingImage2',['../group__group__alloc.html#ga69ac829f5bb0737449fa92c2d971f1bb',1,'vk_mem_alloc.h']]], + ['vmacreateallocator_133',['vmaCreateAllocator',['../group__group__init.html#ga200692051ddb34240248234f5f4c17bb',1,'vk_mem_alloc.h']]], + ['vmacreatebuffer_134',['vmaCreateBuffer',['../group__group__alloc.html#gac72ee55598617e8eecca384e746bab51',1,'vk_mem_alloc.h']]], + ['vmacreatebufferwithalignment_135',['vmaCreateBufferWithAlignment',['../group__group__alloc.html#gaa06a690013a0d01e60894ac378083834',1,'vk_mem_alloc.h']]], + ['vmacreateimage_136',['vmaCreateImage',['../group__group__alloc.html#ga02a94f25679275851a53e82eacbcfc73',1,'vk_mem_alloc.h']]], + ['vmacreatepool_137',['vmaCreatePool',['../group__group__alloc.html#ga5c8770ded7c59c8caac6de0c2cb00b50',1,'vk_mem_alloc.h']]], + ['vmacreatevirtualblock_138',['vmaCreateVirtualBlock',['../group__group__virtual.html#gab585754076877265fdae33e5c40ef13b',1,'vk_mem_alloc.h']]], + ['vmadefragmentationcontext_139',['VmaDefragmentationContext',['../struct_vma_defragmentation_context.html',1,'']]], + ['vmadefragmentationflagbits_140',['VmaDefragmentationFlagBits',['../group__group__alloc.html#ga6552a65b71d16f378c6994b3ceaef50c',1,'VmaDefragmentationFlagBits: vk_mem_alloc.h'],['../group__group__alloc.html#ga13415cc0b443353a7b5abda300b833fc',1,'VmaDefragmentationFlagBits: vk_mem_alloc.h']]], + ['vmadefragmentationflags_141',['VmaDefragmentationFlags',['../group__group__alloc.html#ga88a77cef37e5d3c4fc9eb328885d048d',1,'vk_mem_alloc.h']]], + ['vmadefragmentationinfo_142',['VmaDefragmentationInfo',['../struct_vma_defragmentation_info.html',1,'VmaDefragmentationInfo'],['../group__group__alloc.html#ga2bf47f96bf92bed2a49461bd9af3acfa',1,'VmaDefragmentationInfo: vk_mem_alloc.h']]], + ['vmadefragmentationmove_143',['VmaDefragmentationMove',['../struct_vma_defragmentation_move.html',1,'VmaDefragmentationMove'],['../group__group__alloc.html#ga563f4b43d3e31ed603d80cacc9ba8589',1,'VmaDefragmentationMove: vk_mem_alloc.h']]], + ['vmadefragmentationmoveoperation_144',['VmaDefragmentationMoveOperation',['../group__group__alloc.html#gada9e3861caf96f08894b0bcc160ec257',1,'VmaDefragmentationMoveOperation: vk_mem_alloc.h'],['../group__group__alloc.html#ga2ea666deeb3c2c74806a097e27cdb4a1',1,'VmaDefragmentationMoveOperation: vk_mem_alloc.h']]], + ['vmadefragmentationpassmoveinfo_145',['VmaDefragmentationPassMoveInfo',['../struct_vma_defragmentation_pass_move_info.html',1,'VmaDefragmentationPassMoveInfo'],['../group__group__alloc.html#gad6799e8e2b1527abfc84d33bc44aeaf5',1,'VmaDefragmentationPassMoveInfo: vk_mem_alloc.h']]], + ['vmadefragmentationstats_146',['VmaDefragmentationStats',['../struct_vma_defragmentation_stats.html',1,'VmaDefragmentationStats'],['../group__group__alloc.html#gad94034192259c2e34a4d1c5e27810403',1,'VmaDefragmentationStats: vk_mem_alloc.h']]], + ['vmadestroyallocator_147',['vmaDestroyAllocator',['../group__group__init.html#gaa8d164061c88f22fb1fd3c8f3534bc1d',1,'vk_mem_alloc.h']]], + ['vmadestroybuffer_148',['vmaDestroyBuffer',['../group__group__alloc.html#ga0d9f4e4ba5bf9aab1f1c746387753d77',1,'vk_mem_alloc.h']]], + ['vmadestroyimage_149',['vmaDestroyImage',['../group__group__alloc.html#gae50d2cb3b4a3bfd4dd40987234e50e7e',1,'vk_mem_alloc.h']]], + ['vmadestroypool_150',['vmaDestroyPool',['../group__group__alloc.html#ga5485779c8f1948238fc4e92232fa65e1',1,'vk_mem_alloc.h']]], + ['vmadestroyvirtualblock_151',['vmaDestroyVirtualBlock',['../group__group__virtual.html#ga3795f7783ae2c182cede067d656f66a5',1,'vk_mem_alloc.h']]], + ['vmadetailedstatistics_152',['VmaDetailedStatistics',['../struct_vma_detailed_statistics.html',1,'VmaDetailedStatistics'],['../group__group__stats.html#ga9ab0c535a6ca655dc63b8609ab4b8394',1,'VmaDetailedStatistics: vk_mem_alloc.h']]], + ['vmadevicememorycallbacks_153',['VmaDeviceMemoryCallbacks',['../struct_vma_device_memory_callbacks.html',1,'VmaDeviceMemoryCallbacks'],['../group__group__init.html#ga77692d3c8770ea8882d573206bd27b2b',1,'VmaDeviceMemoryCallbacks: vk_mem_alloc.h']]], + ['vmaenddefragmentation_154',['vmaEndDefragmentation',['../group__group__alloc.html#ga59f01ca3d53d50b7cca9b442b77a3e87',1,'vk_mem_alloc.h']]], + ['vmaenddefragmentationpass_155',['vmaEndDefragmentationPass',['../group__group__alloc.html#gaded05a445742a00718ee766144c5c226',1,'vk_mem_alloc.h']]], + ['vmafindmemorytypeindex_156',['vmaFindMemoryTypeIndex',['../group__group__alloc.html#gaef15a94b58fbcb0fe706d5720e84a74a',1,'vk_mem_alloc.h']]], + ['vmafindmemorytypeindexforbufferinfo_157',['vmaFindMemoryTypeIndexForBufferInfo',['../group__group__alloc.html#gae790ab9ffaf7667fb8f62523e6897888',1,'vk_mem_alloc.h']]], + ['vmafindmemorytypeindexforimageinfo_158',['vmaFindMemoryTypeIndexForImageInfo',['../group__group__alloc.html#ga088da83d8eaf3ce9056d9ea0b981d472',1,'vk_mem_alloc.h']]], + ['vmaflushallocation_159',['vmaFlushAllocation',['../group__group__alloc.html#ga30c37c1eec6025f397be41644f48490f',1,'vk_mem_alloc.h']]], + ['vmaflushallocations_160',['vmaFlushAllocations',['../group__group__alloc.html#gac3dd00da721875ed99fa8a881922bdfc',1,'vk_mem_alloc.h']]], + ['vmafreememory_161',['vmaFreeMemory',['../group__group__alloc.html#ga5fea5518972ae9094b1526cbcb19b05f',1,'vk_mem_alloc.h']]], + ['vmafreememorypages_162',['vmaFreeMemoryPages',['../group__group__alloc.html#ga834b1e4aef395c0a1d56a28e69a4a17e',1,'vk_mem_alloc.h']]], + ['vmafreestatsstring_163',['vmaFreeStatsString',['../group__group__stats.html#ga3104eb30d8122c84dd8541063f145288',1,'vk_mem_alloc.h']]], + ['vmafreevirtualblockstatsstring_164',['vmaFreeVirtualBlockStatsString',['../group__group__stats.html#ga47fb8d8aa69df4a7c23a9719b4080623',1,'vk_mem_alloc.h']]], + ['vmagetallocationinfo_165',['vmaGetAllocationInfo',['../group__group__alloc.html#ga86dd08aba8633bfa4ad0df2e76481d8b',1,'vk_mem_alloc.h']]], + ['vmagetallocationinfo2_166',['vmaGetAllocationInfo2',['../group__group__alloc.html#ga1405cf3eae2fd1305d645879173031a0',1,'vk_mem_alloc.h']]], + ['vmagetallocationmemoryproperties_167',['vmaGetAllocationMemoryProperties',['../group__group__alloc.html#ga571e87dd38e552249b56b1b0b982fad1',1,'vk_mem_alloc.h']]], + ['vmagetallocatorinfo_168',['vmaGetAllocatorInfo',['../group__group__init.html#gafa02231a791b37255720d566a52683e7',1,'vk_mem_alloc.h']]], + ['vmagetheapbudgets_169',['vmaGetHeapBudgets',['../group__group__stats.html#ga9f88db9d46a432c0ad7278cecbc5eaa7',1,'vk_mem_alloc.h']]], + ['vmagetmemoryproperties_170',['vmaGetMemoryProperties',['../group__group__init.html#gab88db292a17974f911182543fda52d19',1,'vk_mem_alloc.h']]], + ['vmagetmemorytypeproperties_171',['vmaGetMemoryTypeProperties',['../group__group__init.html#ga8701444752eb5de4464adb5a2b514bca',1,'vk_mem_alloc.h']]], + ['vmagetphysicaldeviceproperties_172',['vmaGetPhysicalDeviceProperties',['../group__group__init.html#gaecabf7b6e91ea87d0316fa0a9e014fe0',1,'vk_mem_alloc.h']]], + ['vmagetpoolname_173',['vmaGetPoolName',['../group__group__alloc.html#gaf09b4e4eafdbee812e8d73ddf960f030',1,'vk_mem_alloc.h']]], + ['vmagetpoolstatistics_174',['vmaGetPoolStatistics',['../group__group__stats.html#ga34d8e7d83774eed0caee5c5ae88e217d',1,'vk_mem_alloc.h']]], + ['vmagetvirtualallocationinfo_175',['vmaGetVirtualAllocationInfo',['../group__group__virtual.html#ga8ee14ceb1fe033ec84d8aa29e1f75afa',1,'vk_mem_alloc.h']]], + ['vmagetvirtualblockstatistics_176',['vmaGetVirtualBlockStatistics',['../group__group__virtual.html#ga2902aa3130866afcc64bb5f984113db3',1,'vk_mem_alloc.h']]], + ['vmainvalidateallocation_177',['vmaInvalidateAllocation',['../group__group__alloc.html#gaaa8412919139ef413a4215ac6a290fae',1,'vk_mem_alloc.h']]], + ['vmainvalidateallocations_178',['vmaInvalidateAllocations',['../group__group__alloc.html#gab25b558d75f7378ec944a1522fdcc3c5',1,'vk_mem_alloc.h']]], + ['vmaisvirtualblockempty_179',['vmaIsVirtualBlockEmpty',['../group__group__virtual.html#gacd53b5b1d23f8fcbad692ccfdc1811f1',1,'vk_mem_alloc.h']]], + ['vmamapmemory_180',['vmaMapMemory',['../group__group__alloc.html#gad5bd1243512d099706de88168992f069',1,'vk_mem_alloc.h']]], + ['vmamemoryusage_181',['VmaMemoryUsage',['../group__group__alloc.html#gaa5846affa1e9da3800e3e78fae2305cc',1,'VmaMemoryUsage: vk_mem_alloc.h'],['../group__group__alloc.html#ga806e8499dde802e59eb72a1dc811c35f',1,'VmaMemoryUsage: vk_mem_alloc.h']]], + ['vmapool_182',['VmaPool',['../struct_vma_pool.html',1,'']]], + ['vmapoolcreateflagbits_183',['VmaPoolCreateFlagBits',['../group__group__alloc.html#ga9a7c45f9c863695d98c83fa5ac940fe7',1,'VmaPoolCreateFlagBits: vk_mem_alloc.h'],['../group__group__alloc.html#ga4d4f2efc2509157a9e4ecd4fd7942303',1,'VmaPoolCreateFlagBits: vk_mem_alloc.h']]], + ['vmapoolcreateflags_184',['VmaPoolCreateFlags',['../group__group__alloc.html#ga2770e325ea42e087c1b91fdf46d0292a',1,'vk_mem_alloc.h']]], + ['vmapoolcreateinfo_185',['VmaPoolCreateInfo',['../struct_vma_pool_create_info.html',1,'VmaPoolCreateInfo'],['../group__group__alloc.html#ga1017aa83489c0eee8d2163d2bf253f67',1,'VmaPoolCreateInfo: vk_mem_alloc.h']]], + ['vmasetallocationname_186',['vmaSetAllocationName',['../group__group__alloc.html#gabe02cbb0cd913b3f125958179f2020fc',1,'vk_mem_alloc.h']]], + ['vmasetallocationuserdata_187',['vmaSetAllocationUserData',['../group__group__alloc.html#gaf9147d31ffc11d62fc187bde283ed14f',1,'vk_mem_alloc.h']]], + ['vmasetcurrentframeindex_188',['vmaSetCurrentFrameIndex',['../group__group__init.html#gade56bf8dc9f5a5eaddf5f119ed525236',1,'vk_mem_alloc.h']]], + ['vmasetpoolname_189',['vmaSetPoolName',['../group__group__alloc.html#gadbae3a0b4ab078024462fc85c37f3b58',1,'vk_mem_alloc.h']]], + ['vmasetvirtualallocationuserdata_190',['vmaSetVirtualAllocationUserData',['../group__group__virtual.html#ga001ea1850458a4062b829e09c303fca2',1,'vk_mem_alloc.h']]], + ['vmastatistics_191',['VmaStatistics',['../struct_vma_statistics.html',1,'VmaStatistics'],['../group__group__stats.html#gac94bd1a382a3922ddc8de3af4d3ddd06',1,'VmaStatistics: vk_mem_alloc.h']]], + ['vmatotalstatistics_192',['VmaTotalStatistics',['../struct_vma_total_statistics.html',1,'VmaTotalStatistics'],['../group__group__stats.html#ga68916e729e55d513f88ffafbadddb770',1,'VmaTotalStatistics: vk_mem_alloc.h']]], + ['vmaunmapmemory_193',['vmaUnmapMemory',['../group__group__alloc.html#ga9bc268595cb33f6ec4d519cfce81ff45',1,'vk_mem_alloc.h']]], + ['vmavirtualallocate_194',['vmaVirtualAllocate',['../group__group__virtual.html#ga6b7cdcc1c3e5103c323fedc4e1319e01',1,'vk_mem_alloc.h']]], + ['vmavirtualallocation_195',['VmaVirtualAllocation',['../struct_vma_virtual_allocation.html',1,'']]], + ['vmavirtualallocationcreateflagbits_196',['VmaVirtualAllocationCreateFlagBits',['../group__group__virtual.html#ga2e9c64d405b14156fea7e10c4ad06cb6',1,'VmaVirtualAllocationCreateFlagBits: vk_mem_alloc.h'],['../group__group__virtual.html#ga936815e64946a6b6d812d08d10184c23',1,'VmaVirtualAllocationCreateFlagBits: vk_mem_alloc.h']]], + ['vmavirtualallocationcreateflags_197',['VmaVirtualAllocationCreateFlags',['../group__group__virtual.html#gae96ffc099bf898257fb19e9410ed08a7',1,'vk_mem_alloc.h']]], + ['vmavirtualallocationcreateinfo_198',['VmaVirtualAllocationCreateInfo',['../struct_vma_virtual_allocation_create_info.html',1,'VmaVirtualAllocationCreateInfo'],['../group__group__virtual.html#gac3c90d80bedc6847a41b82d0e2158c9e',1,'VmaVirtualAllocationCreateInfo: vk_mem_alloc.h']]], + ['vmavirtualallocationinfo_199',['VmaVirtualAllocationInfo',['../struct_vma_virtual_allocation_info.html',1,'VmaVirtualAllocationInfo'],['../group__group__virtual.html#ga75bc33ff7cf18c98e101f570dc2a5ebc',1,'VmaVirtualAllocationInfo: vk_mem_alloc.h']]], + ['vmavirtualblock_200',['VmaVirtualBlock',['../struct_vma_virtual_block.html',1,'']]], + ['vmavirtualblockcreateflagbits_201',['VmaVirtualBlockCreateFlagBits',['../group__group__virtual.html#ga88bcf8c1cd3bb1610ff7343811c65bca',1,'VmaVirtualBlockCreateFlagBits: vk_mem_alloc.h'],['../group__group__virtual.html#ga0860ba1c0a67178fae4aecb63a78573e',1,'VmaVirtualBlockCreateFlagBits: vk_mem_alloc.h']]], + ['vmavirtualblockcreateflags_202',['VmaVirtualBlockCreateFlags',['../group__group__virtual.html#ga4e49c2f0ab7f6b4868833e5bac78d91e',1,'vk_mem_alloc.h']]], + ['vmavirtualblockcreateinfo_203',['VmaVirtualBlockCreateInfo',['../struct_vma_virtual_block_create_info.html',1,'VmaVirtualBlockCreateInfo'],['../group__group__virtual.html#ga4753d42d40217a3a652a3cdf253ad773',1,'VmaVirtualBlockCreateInfo: vk_mem_alloc.h']]], + ['vmavirtualfree_204',['vmaVirtualFree',['../group__group__virtual.html#ga09fc688c0c3653ff23723b037e5d5033',1,'vk_mem_alloc.h']]], + ['vmavulkanfunctions_205',['VmaVulkanFunctions',['../struct_vma_vulkan_functions.html',1,'VmaVulkanFunctions'],['../group__group__init.html#gabb0a8e3b5040d847571cca6c7f9a8074',1,'VmaVulkanFunctions: vk_mem_alloc.h']]], + ['vulkan_20functions_206',['Vulkan functions',['../quick_start.html#quick_start_initialization_importing_vulkan_functions',1,'Importing Vulkan functions'],['../configuration.html#config_Vulkan_functions',1,'Pointers to Vulkan functions']]], + ['vulkan_20memory_20allocator_207',['Vulkan Memory Allocator',['../index.html',1,'']]], + ['vulkan_20version_208',['Selecting Vulkan version',['../quick_start.html#quick_start_initialization_selecting_vulkan_version',1,'']]], + ['vulkanapiversion_209',['vulkanApiVersion',['../struct_vma_allocator_create_info.html#ae0ffc55139b54520a6bb704b29ffc285',1,'VmaAllocatorCreateInfo']]] ]; diff --git a/docs/html/search/defines_0.js b/docs/html/search/defines_0.js index 7e8c3c9..6eb1fe1 100644 --- a/docs/html/search/defines_0.js +++ b/docs/html/search/defines_0.js @@ -4,5 +4,6 @@ var searchData= ['vma_5fbuffer_5fdevice_5faddress_1',['VMA_BUFFER_DEVICE_ADDRESS',['../vk__mem__alloc_8h.html#a7f9d5e71b70dd1a137c303a8a8262c10',1,'vk_mem_alloc.h']]], ['vma_5fdedicated_5fallocation_2',['VMA_DEDICATED_ALLOCATION',['../vk__mem__alloc_8h.html#af7b860e63b96d11e44ae8587ba06bbf4',1,'vk_mem_alloc.h']]], ['vma_5fkhr_5fmaintenance4_3',['VMA_KHR_MAINTENANCE4',['../vk__mem__alloc_8h.html#abc635c70b154cb54aa4a15cd5da55498',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fbudget_4',['VMA_MEMORY_BUDGET',['../vk__mem__alloc_8h.html#a05decf1cf4ebf767beba7acca6c1ec3a',1,'vk_mem_alloc.h']]] + ['vma_5fkhr_5fmaintenance5_4',['VMA_KHR_MAINTENANCE5',['../vk__mem__alloc_8h.html#aae3b6bc07a36b2852bbebf5002ca8b0a',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fbudget_5',['VMA_MEMORY_BUDGET',['../vk__mem__alloc_8h.html#a05decf1cf4ebf767beba7acca6c1ec3a',1,'vk_mem_alloc.h']]] ]; diff --git a/docs/html/search/enumvalues_0.js b/docs/html/search/enumvalues_0.js index 58c7adb..5ca6514 100644 --- a/docs/html/search/enumvalues_0.js +++ b/docs/html/search/enumvalues_0.js @@ -27,37 +27,38 @@ var searchData= ['vma_5fallocator_5fcreate_5fkhr_5fbind_5fmemory2_5fbit_24',['VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7ca8fb75bf07cd184ab903596295e863dee',1,'vk_mem_alloc.h']]], ['vma_5fallocator_5fcreate_5fkhr_5fdedicated_5fallocation_5fbit_25',['VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7cace7da7cc6e71a625dfa763c55a597878',1,'vk_mem_alloc.h']]], ['vma_5fallocator_5fcreate_5fkhr_5fmaintenance4_5fbit_26',['VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE4_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7caa2566e7f75e19ae7ec9c4fa509fea5fb',1,'vk_mem_alloc.h']]], - ['vma_5fdefragmentation_5fflag_5falgorithm_5fbalanced_5fbit_27',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_BALANCED_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50caec35a4138111605a6ff32ca61aa871b6',1,'vk_mem_alloc.h']]], - ['vma_5fdefragmentation_5fflag_5falgorithm_5fextensive_5fbit_28',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_EXTENSIVE_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cae45a9469e5337731627758671741e412',1,'vk_mem_alloc.h']]], - ['vma_5fdefragmentation_5fflag_5falgorithm_5ffast_5fbit_29',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FAST_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50ca2e6469bcf5a094776ceb5d118263f04b',1,'vk_mem_alloc.h']]], - ['vma_5fdefragmentation_5fflag_5falgorithm_5ffull_5fbit_30',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FULL_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cafa162eac5be800bcdd4011427a71156d',1,'vk_mem_alloc.h']]], - ['vma_5fdefragmentation_5fflag_5falgorithm_5fmask_31',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_MASK',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cabcbbdb3bfd53c4c3ab4eaeb5fd4894e9',1,'vk_mem_alloc.h']]], - ['vma_5fdefragmentation_5fflag_5fbits_5fmax_5fenum_32',['VMA_DEFRAGMENTATION_FLAG_BITS_MAX_ENUM',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cab87ec33154803bfeb5ac2b379f1d6a97',1,'vk_mem_alloc.h']]], - ['vma_5fdefragmentation_5fmove_5foperation_5fcopy_33',['VMA_DEFRAGMENTATION_MOVE_OPERATION_COPY',['../group__group__alloc.html#ggada9e3861caf96f08894b0bcc160ec257ad4a06ac46c4cb1c67b0ebc1edfab9f18',1,'vk_mem_alloc.h']]], - ['vma_5fdefragmentation_5fmove_5foperation_5fdestroy_34',['VMA_DEFRAGMENTATION_MOVE_OPERATION_DESTROY',['../group__group__alloc.html#ggada9e3861caf96f08894b0bcc160ec257a9786f8492a9be2c03bd26395e352ab85',1,'vk_mem_alloc.h']]], - ['vma_5fdefragmentation_5fmove_5foperation_5fignore_35',['VMA_DEFRAGMENTATION_MOVE_OPERATION_IGNORE',['../group__group__alloc.html#ggada9e3861caf96f08894b0bcc160ec257ad25bc6f816b226b4fd5170e845f218d2',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fauto_36',['VMA_MEMORY_USAGE_AUTO',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca27cde9026a84d34d525777baa41fce6e',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fauto_5fprefer_5fdevice_37',['VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305ccae2adb696d6a73c18bb20c23666661327',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fauto_5fprefer_5fhost_38',['VMA_MEMORY_USAGE_AUTO_PREFER_HOST',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca9b422585242160b8ed3418310ee6664d',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fcpu_5fcopy_39',['VMA_MEMORY_USAGE_CPU_COPY',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca416a444d4d0fc20067c3f76f32ff2500',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fcpu_5fonly_40',['VMA_MEMORY_USAGE_CPU_ONLY',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca40bdf4cddeffeb12f43d45ca1286e0a5',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fcpu_5fto_5fgpu_41',['VMA_MEMORY_USAGE_CPU_TO_GPU',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca9066b52c5a7079bb74a69aaf8b92ff67',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fgpu_5flazily_5fallocated_42',['VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca835333d9072db63a653818030e17614d',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fgpu_5fonly_43',['VMA_MEMORY_USAGE_GPU_ONLY',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fgpu_5fto_5fcpu_44',['VMA_MEMORY_USAGE_GPU_TO_CPU',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca7b586d2fdaf82a463b58f581ed72be27',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5fmax_5fenum_45',['VMA_MEMORY_USAGE_MAX_ENUM',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca091e69437ef693e8d0d287f1c719ba6e',1,'vk_mem_alloc.h']]], - ['vma_5fmemory_5fusage_5funknown_46',['VMA_MEMORY_USAGE_UNKNOWN',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305ccaf50d27e34e0925cf3a63db8c839121dd',1,'vk_mem_alloc.h']]], - ['vma_5fpool_5fcreate_5falgorithm_5fmask_47',['VMA_POOL_CREATE_ALGORITHM_MASK',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7af4d270f8f42517a0f70037ceb6ac1d9c',1,'vk_mem_alloc.h']]], - ['vma_5fpool_5fcreate_5fflag_5fbits_5fmax_5fenum_48',['VMA_POOL_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7a1c7312bea9ea246846b9054fd6bd6aec',1,'vk_mem_alloc.h']]], - ['vma_5fpool_5fcreate_5fignore_5fbuffer_5fimage_5fgranularity_5fbit_49',['VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7a9f1a499508a8edb4e8ba40aa0290a3d2',1,'vk_mem_alloc.h']]], - ['vma_5fpool_5fcreate_5flinear_5falgorithm_5fbit_50',['VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7a13c8a444197c67866be9cb05599fc726',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fallocation_5fcreate_5fflag_5fbits_5fmax_5fenum_51',['VMA_VIRTUAL_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ac1163c03ea837fa663462dc286d6a1a9',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmask_52',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MASK',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ac5b5e45c335368d18df59c9f27df17e3',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmin_5fmemory_5fbit_53',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ae2a9591a62b5e3b1bdcbc81c6188a1bf',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmin_5foffset_5fbit_54',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_OFFSET_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6a3bb82d2aedd587a64846a1d7778852e6',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmin_5ftime_5fbit_55',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6a562d10a46012719d33167d3dc5dbbf9b',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fallocation_5fcreate_5fupper_5faddress_5fbit_56',['VMA_VIRTUAL_ALLOCATION_CREATE_UPPER_ADDRESS_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6a9524a329a55b5ec390d57d90b67ad78e',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fblock_5fcreate_5falgorithm_5fmask_57',['VMA_VIRTUAL_BLOCK_CREATE_ALGORITHM_MASK',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaaf9487467136e1a9e371894dc3a7c4844',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fblock_5fcreate_5fflag_5fbits_5fmax_5fenum_58',['VMA_VIRTUAL_BLOCK_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaa5fc0d333c3d5687a8bbf57df9b377a87',1,'vk_mem_alloc.h']]], - ['vma_5fvirtual_5fblock_5fcreate_5flinear_5falgorithm_5fbit_59',['VMA_VIRTUAL_BLOCK_CREATE_LINEAR_ALGORITHM_BIT',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaae6423e2fa2f3c9211b21c819e3f10f96',1,'vk_mem_alloc.h']]] + ['vma_5fallocator_5fcreate_5fkhr_5fmaintenance5_5fbit_27',['VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE5_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7caca82d4ce40bdb59d3da52a539c21d6b8',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5falgorithm_5fbalanced_5fbit_28',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_BALANCED_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50caec35a4138111605a6ff32ca61aa871b6',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5falgorithm_5fextensive_5fbit_29',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_EXTENSIVE_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cae45a9469e5337731627758671741e412',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5falgorithm_5ffast_5fbit_30',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FAST_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50ca2e6469bcf5a094776ceb5d118263f04b',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5falgorithm_5ffull_5fbit_31',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FULL_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cafa162eac5be800bcdd4011427a71156d',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5falgorithm_5fmask_32',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_MASK',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cabcbbdb3bfd53c4c3ab4eaeb5fd4894e9',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5fbits_5fmax_5fenum_33',['VMA_DEFRAGMENTATION_FLAG_BITS_MAX_ENUM',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cab87ec33154803bfeb5ac2b379f1d6a97',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fmove_5foperation_5fcopy_34',['VMA_DEFRAGMENTATION_MOVE_OPERATION_COPY',['../group__group__alloc.html#ggada9e3861caf96f08894b0bcc160ec257ad4a06ac46c4cb1c67b0ebc1edfab9f18',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fmove_5foperation_5fdestroy_35',['VMA_DEFRAGMENTATION_MOVE_OPERATION_DESTROY',['../group__group__alloc.html#ggada9e3861caf96f08894b0bcc160ec257a9786f8492a9be2c03bd26395e352ab85',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fmove_5foperation_5fignore_36',['VMA_DEFRAGMENTATION_MOVE_OPERATION_IGNORE',['../group__group__alloc.html#ggada9e3861caf96f08894b0bcc160ec257ad25bc6f816b226b4fd5170e845f218d2',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fauto_37',['VMA_MEMORY_USAGE_AUTO',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca27cde9026a84d34d525777baa41fce6e',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fauto_5fprefer_5fdevice_38',['VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305ccae2adb696d6a73c18bb20c23666661327',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fauto_5fprefer_5fhost_39',['VMA_MEMORY_USAGE_AUTO_PREFER_HOST',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca9b422585242160b8ed3418310ee6664d',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fcpu_5fcopy_40',['VMA_MEMORY_USAGE_CPU_COPY',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca416a444d4d0fc20067c3f76f32ff2500',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fcpu_5fonly_41',['VMA_MEMORY_USAGE_CPU_ONLY',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca40bdf4cddeffeb12f43d45ca1286e0a5',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fcpu_5fto_5fgpu_42',['VMA_MEMORY_USAGE_CPU_TO_GPU',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca9066b52c5a7079bb74a69aaf8b92ff67',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fgpu_5flazily_5fallocated_43',['VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca835333d9072db63a653818030e17614d',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fgpu_5fonly_44',['VMA_MEMORY_USAGE_GPU_ONLY',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fgpu_5fto_5fcpu_45',['VMA_MEMORY_USAGE_GPU_TO_CPU',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca7b586d2fdaf82a463b58f581ed72be27',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fmax_5fenum_46',['VMA_MEMORY_USAGE_MAX_ENUM',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca091e69437ef693e8d0d287f1c719ba6e',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5funknown_47',['VMA_MEMORY_USAGE_UNKNOWN',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305ccaf50d27e34e0925cf3a63db8c839121dd',1,'vk_mem_alloc.h']]], + ['vma_5fpool_5fcreate_5falgorithm_5fmask_48',['VMA_POOL_CREATE_ALGORITHM_MASK',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7af4d270f8f42517a0f70037ceb6ac1d9c',1,'vk_mem_alloc.h']]], + ['vma_5fpool_5fcreate_5fflag_5fbits_5fmax_5fenum_49',['VMA_POOL_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7a1c7312bea9ea246846b9054fd6bd6aec',1,'vk_mem_alloc.h']]], + ['vma_5fpool_5fcreate_5fignore_5fbuffer_5fimage_5fgranularity_5fbit_50',['VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7a9f1a499508a8edb4e8ba40aa0290a3d2',1,'vk_mem_alloc.h']]], + ['vma_5fpool_5fcreate_5flinear_5falgorithm_5fbit_51',['VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7a13c8a444197c67866be9cb05599fc726',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fflag_5fbits_5fmax_5fenum_52',['VMA_VIRTUAL_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ac1163c03ea837fa663462dc286d6a1a9',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmask_53',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MASK',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ac5b5e45c335368d18df59c9f27df17e3',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmin_5fmemory_5fbit_54',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ae2a9591a62b5e3b1bdcbc81c6188a1bf',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmin_5foffset_5fbit_55',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_OFFSET_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6a3bb82d2aedd587a64846a1d7778852e6',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmin_5ftime_5fbit_56',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6a562d10a46012719d33167d3dc5dbbf9b',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fupper_5faddress_5fbit_57',['VMA_VIRTUAL_ALLOCATION_CREATE_UPPER_ADDRESS_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6a9524a329a55b5ec390d57d90b67ad78e',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fblock_5fcreate_5falgorithm_5fmask_58',['VMA_VIRTUAL_BLOCK_CREATE_ALGORITHM_MASK',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaaf9487467136e1a9e371894dc3a7c4844',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fblock_5fcreate_5fflag_5fbits_5fmax_5fenum_59',['VMA_VIRTUAL_BLOCK_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaa5fc0d333c3d5687a8bbf57df9b377a87',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fblock_5fcreate_5flinear_5falgorithm_5fbit_60',['VMA_VIRTUAL_BLOCK_CREATE_LINEAR_ALGORITHM_BIT',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaae6423e2fa2f3c9211b21c819e3f10f96',1,'vk_mem_alloc.h']]] ]; diff --git a/docs/html/search/searchdata.js b/docs/html/search/searchdata.js index 582dbd0..869c4de 100644 --- a/docs/html/search/searchdata.js +++ b/docs/html/search/searchdata.js @@ -8,9 +8,8 @@ var indexSectionsWithContent = 5: "pv", 6: "v", 7: "v", - 8: "v", - 9: "ailmsv", - 10: "abcdegilmnopqrstuvw" + 8: "ailmsv", + 9: "abcdegilmnopqrstuvw" }; var indexSectionNames = @@ -23,9 +22,8 @@ var indexSectionNames = 5: "typedefs", 6: "enums", 7: "enumvalues", - 8: "defines", - 9: "groups", - 10: "pages" + 8: "groups", + 9: "pages" }; var indexSectionLabels = @@ -38,8 +36,7 @@ var indexSectionLabels = 5: "Typedefs", 6: "Enumerations", 7: "Enumerator", - 8: "Macros", - 9: "Modules", - 10: "Pages" + 8: "Modules", + 9: "Pages" }; diff --git a/docs/html/struct_vma_vulkan_functions.html b/docs/html/struct_vma_vulkan_functions.html index 1b716e3..400f3ad 100644 --- a/docs/html/struct_vma_vulkan_functions.html +++ b/docs/html/struct_vma_vulkan_functions.html @@ -136,6 +136,7 @@ Public Attributes  Fetch "vkBindImageMemory2" on Vulkan >= 1.1, fetch "vkBindImageMemory2KHR" when using VK_KHR_bind_memory2 extension.
      PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR + Fetch from "vkGetPhysicalDeviceMemoryProperties2" on Vulkan >= 1.1, but you can also fetch it from "vkGetPhysicalDeviceMemoryProperties2KHR" if you enabled extension VK_KHR_get_physical_device_properties2.
      PFN_vkGetDeviceBufferMemoryRequirementsKHR vkGetDeviceBufferMemoryRequirements  Fetch from "vkGetDeviceBufferMemoryRequirements" on Vulkan >= 1.3, but you can also fetch it from "vkGetDeviceBufferMemoryRequirementsKHR" if you enabled extension VK_KHR_maintenance4.
    @@ -470,6 +471,8 @@ Public Attributes
    +

    Fetch from "vkGetPhysicalDeviceMemoryProperties2" on Vulkan >= 1.1, but you can also fetch it from "vkGetPhysicalDeviceMemoryProperties2KHR" if you enabled extension VK_KHR_get_physical_device_properties2.

    +
    diff --git a/docs/html/usage_patterns.html b/docs/html/usage_patterns.html index 9982036..2bcee80 100644 --- a/docs/html/usage_patterns.html +++ b/docs/html/usage_patterns.html @@ -106,12 +106,12 @@ GPU-only resource
    VmaAllocation alloc;
    vmaCreateImage(allocator, &imgCreateInfo, &allocCreateInfo, &img, &alloc, nullptr);
    VkResult vmaCreateImage(VmaAllocator allocator, const VkImageCreateInfo *pImageCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkImage *pImage, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
    Function similar to vmaCreateBuffer().
    -
    @ VMA_MEMORY_USAGE_AUTO
    Definition vk_mem_alloc.h:511
    -
    @ VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT
    Set this flag if the allocation should have its own memory block.
    Definition vk_mem_alloc.h:550
    -
    Parameters of new VmaAllocation.
    Definition vk_mem_alloc.h:1246
    -
    float priority
    A floating-point value between 0 and 1, indicating the priority of the allocation relative to other m...
    Definition vk_mem_alloc.h:1292
    -
    VmaMemoryUsage usage
    Intended usage of memory.
    Definition vk_mem_alloc.h:1254
    -
    VmaAllocationCreateFlags flags
    Use VmaAllocationCreateFlagBits enum.
    Definition vk_mem_alloc.h:1248
    +
    @ VMA_MEMORY_USAGE_AUTO
    Definition vk_mem_alloc.h:527
    +
    @ VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT
    Set this flag if the allocation should have its own memory block.
    Definition vk_mem_alloc.h:566
    +
    Parameters of new VmaAllocation.
    Definition vk_mem_alloc.h:1263
    +
    float priority
    A floating-point value between 0 and 1, indicating the priority of the allocation relative to other m...
    Definition vk_mem_alloc.h:1309
    +
    VmaMemoryUsage usage
    Intended usage of memory.
    Definition vk_mem_alloc.h:1271
    +
    VmaAllocationCreateFlags flags
    Use VmaAllocationCreateFlagBits enum.
    Definition vk_mem_alloc.h:1265
    Represents single memory allocation.

    Also consider: Consider creating them as dedicated allocations using VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT, especially if they are large or if you plan to destroy and recreate them with different sizes e.g. when display resolution changes. Prefer to create such resources first and all other GPU resources (like textures and vertex buffers) later. When VK_EXT_memory_priority extension is enabled, it is also worth setting high priority to such allocation to decrease chances to be evicted to system memory by the operating system.

    @@ -136,10 +136,10 @@ Staging copy for upload

    memcpy(allocInfo.pMappedData, myData, myDataSize);
    VkResult vmaCreateBuffer(VmaAllocator allocator, const VkBufferCreateInfo *pBufferCreateInfo, const VmaAllocationCreateInfo *pAllocationCreateInfo, VkBuffer *pBuffer, VmaAllocation *pAllocation, VmaAllocationInfo *pAllocationInfo)
    Creates a new VkBuffer, allocates and binds memory for it.
    -
    @ VMA_ALLOCATION_CREATE_MAPPED_BIT
    Set this flag to use a memory that will be persistently mapped and retrieve pointer to it.
    Definition vk_mem_alloc.h:571
    -
    @ VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT
    Definition vk_mem_alloc.h:620
    -
    Definition vk_mem_alloc.h:1365
    -
    void * pMappedData
    Pointer to the beginning of this allocation as mapped data.
    Definition vk_mem_alloc.h:1407
    +
    @ VMA_ALLOCATION_CREATE_MAPPED_BIT
    Set this flag to use a memory that will be persistently mapped and retrieve pointer to it.
    Definition vk_mem_alloc.h:587
    +
    @ VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT
    Definition vk_mem_alloc.h:636
    +
    Definition vk_mem_alloc.h:1382
    +
    void * pMappedData
    Pointer to the beginning of this allocation as mapped data.
    Definition vk_mem_alloc.h:1424

    Also consider: You can map the allocation using vmaMapMemory() or you can create it as persistenly mapped using VMA_ALLOCATION_CREATE_MAPPED_BIT, as in the example above.

    Readback

    @@ -162,7 +162,7 @@ Readback
    ...
    const float* downloadedData = (const float*)allocInfo.pMappedData;
    -
    @ VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT
    Definition vk_mem_alloc.h:632
    +
    @ VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT
    Definition vk_mem_alloc.h:648

    Advanced data uploading

    For resources that you frequently write on CPU via mapped pointer and frequently read on GPU e.g. as a uniform buffer (also called "dynamic"), multiple options are possible:

    @@ -234,7 +234,7 @@ Advanced data uploading
    }
    VkResult vmaFlushAllocation(VmaAllocator allocator, VmaAllocation allocation, VkDeviceSize offset, VkDeviceSize size)
    Flushes memory of given allocation.
    void vmaGetAllocationMemoryProperties(VmaAllocator allocator, VmaAllocation allocation, VkMemoryPropertyFlags *pFlags)
    Given an allocation, returns Property Flags of its memory type.
    -
    @ VMA_ALLOCATION_CREATE_HOST_ACCESS_ALLOW_TRANSFER_INSTEAD_BIT
    Definition vk_mem_alloc.h:644
    +
    @ VMA_ALLOCATION_CREATE_HOST_ACCESS_ALLOW_TRANSFER_INSTEAD_BIT
    Definition vk_mem_alloc.h:660

    Other use cases

    Here are some other, less obvious use cases and their recommended settings:

    diff --git a/docs/html/virtual_allocator.html b/docs/html/virtual_allocator.html index 3d59913..6a34cc3 100644 --- a/docs/html/virtual_allocator.html +++ b/docs/html/virtual_allocator.html @@ -93,8 +93,8 @@ Creating virtual block
    VmaVirtualBlock block;
    VkResult res = vmaCreateVirtualBlock(&blockCreateInfo, &block);
    VkResult vmaCreateVirtualBlock(const VmaVirtualBlockCreateInfo *pCreateInfo, VmaVirtualBlock *pVirtualBlock)
    Creates new VmaVirtualBlock object.
    -
    Parameters of created VmaVirtualBlock object to be passed to vmaCreateVirtualBlock().
    Definition vk_mem_alloc.h:1554
    -
    VkDeviceSize size
    Total size of the virtual block.
    Definition vk_mem_alloc.h:1560
    +
    Parameters of created VmaVirtualBlock object to be passed to vmaCreateVirtualBlock().
    Definition vk_mem_alloc.h:1571
    +
    VkDeviceSize size
    Total size of the virtual block.
    Definition vk_mem_alloc.h:1577
    Handle to a virtual block object that allows to use core allocation algorithm without allocating any ...

    Making virtual allocations

    @@ -120,8 +120,8 @@ Making virtual allocations
    // Allocation failed - no space for it could be found. Handle this error!
    }
    VkResult vmaVirtualAllocate(VmaVirtualBlock virtualBlock, const VmaVirtualAllocationCreateInfo *pCreateInfo, VmaVirtualAllocation *pAllocation, VkDeviceSize *pOffset)
    Allocates new virtual allocation inside given VmaVirtualBlock.
    -
    Parameters of created virtual allocation to be passed to vmaVirtualAllocate().
    Definition vk_mem_alloc.h:1575
    -
    VkDeviceSize size
    Size of the allocation.
    Definition vk_mem_alloc.h:1580
    +
    Parameters of created virtual allocation to be passed to vmaVirtualAllocate().
    Definition vk_mem_alloc.h:1592
    +
    VkDeviceSize size
    Size of the allocation.
    Definition vk_mem_alloc.h:1597
    Represents single memory allocation done inside VmaVirtualBlock.

    Deallocation

    @@ -149,8 +149,8 @@ Allocation parameters
    vmaVirtualFree(block, alloc);
    void vmaGetVirtualAllocationInfo(VmaVirtualBlock virtualBlock, VmaVirtualAllocation allocation, VmaVirtualAllocationInfo *pVirtualAllocInfo)
    Returns information about a specific virtual allocation within a virtual block, like its size and pUs...
    -
    Parameters of an existing virtual allocation, returned by vmaGetVirtualAllocationInfo().
    Definition vk_mem_alloc.h:1598
    -
    void * pUserData
    Custom pointer associated with the allocation.
    Definition vk_mem_alloc.h:1613
    +
    Parameters of an existing virtual allocation, returned by vmaGetVirtualAllocationInfo().
    Definition vk_mem_alloc.h:1615
    +
    void * pUserData
    Custom pointer associated with the allocation.
    Definition vk_mem_alloc.h:1630

    Alignment and units

    It feels natural to express sizes and offsets in bytes. If an offset of an allocation needs to be aligned to a multiply of some number (e.g. 4 bytes), you can fill optional member VmaVirtualAllocationCreateInfo::alignment to request it. Example:

    @@ -160,7 +160,7 @@ Alignment and units
    VmaVirtualAllocation alloc;
    res = vmaVirtualAllocate(block, &allocCreateInfo, &alloc, nullptr);
    -
    VkDeviceSize alignment
    Required alignment of the allocation. Optional.
    Definition vk_mem_alloc.h:1585
    +
    VkDeviceSize alignment
    Required alignment of the allocation. Optional.
    Definition vk_mem_alloc.h:1602

    Alignments of different allocations made from one block may vary. However, if all alignments and sizes are always multiply of some size e.g. 4 B or sizeof(MyDataStruct), you can express all sizes, alignments, and offsets in multiples of that size instead of individual bytes. It might be more convenient, but you need to make sure to use this new unit consistently in all the places: