From eb46f6237684abb1867ab2c9bd47ca4d3b0b51e3 Mon Sep 17 00:00:00 2001 From: Adam Sawicki Date: Wed, 28 Aug 2024 13:20:19 +0200 Subject: [PATCH] Added documentation for VK_KHR_external_memory_win32 Rebuilt the documentation. --- README.md | 1 + docs/html/allocation_annotation.html | 34 +- docs/html/annotated.html | 22 +- docs/html/choosing_memory_type.html | 42 +- docs/html/classes.html | 22 +- docs/html/configuration.html | 22 +- docs/html/custom_memory_pools.html | 38 +- docs/html/debugging_memory_usage.html | 22 +- docs/html/defragmentation.html | 44 +- docs/html/deprecated.html | 22 +- .../dir_d44c64559bbebec7f509842c48db8b23.html | 22 +- docs/html/doxygen.css | 31 +- docs/html/doxygen_crawl.html | 424 +++++++++++++++++- docs/html/dynsections.js | 4 + docs/html/enabling_buffer_device_address.html | 22 +- docs/html/files.html | 22 +- docs/html/functions.html | 23 +- docs/html/functions_vars.html | 23 +- docs/html/general_considerations.html | 22 +- docs/html/globals.html | 24 +- docs/html/globals_enum.html | 22 +- docs/html/globals_eval.html | 23 +- docs/html/globals_func.html | 23 +- docs/html/globals_type.html | 22 +- docs/html/group__group__alloc.html | 325 ++++++++------ docs/html/group__group__init.html | 40 +- docs/html/group__group__stats.html | 46 +- docs/html/group__group__virtual.html | 44 +- docs/html/index.html | 23 +- docs/html/memory_mapping.html | 38 +- docs/html/menu.js | 4 +- docs/html/navtree.css | 149 ++++++ docs/html/other_api_interop.html | 22 +- docs/html/pages.html | 22 +- docs/html/quick_start.html | 48 +- docs/html/resize.js | 145 ++++++ docs/html/resource_aliasing.html | 26 +- docs/html/search/all_0.js | 58 ++- docs/html/search/all_1.js | 12 +- docs/html/search/all_11.js | 12 +- docs/html/search/all_13.js | 14 +- docs/html/search/all_14.js | 406 ++++++++--------- docs/html/search/all_15.js | 5 +- docs/html/search/all_2.js | 21 +- docs/html/search/all_3.js | 39 +- docs/html/search/all_4.js | 5 +- docs/html/search/all_5.js | 13 +- docs/html/search/all_7.js | 5 +- docs/html/search/all_8.js | 13 +- docs/html/search/all_b.js | 36 +- docs/html/search/all_e.js | 10 +- docs/html/search/enumvalues_0.js | 71 +-- docs/html/search/functions_0.js | 35 +- docs/html/search/pages_0.js | 4 +- docs/html/search/pages_11.js | 3 +- docs/html/search/variables_c.js | 15 +- docs/html/statistics.html | 22 +- docs/html/staying_within_budget.html | 24 +- docs/html/struct_vma_allocation.html | 22 +- ...ct_vma_allocation_create_info-members.html | 22 +- .../struct_vma_allocation_create_info.html | 22 +- .../struct_vma_allocation_info-members.html | 22 +- docs/html/struct_vma_allocation_info.html | 22 +- .../struct_vma_allocation_info2-members.html | 22 +- docs/html/struct_vma_allocation_info2.html | 22 +- docs/html/struct_vma_allocator.html | 22 +- ...uct_vma_allocator_create_info-members.html | 22 +- .../struct_vma_allocator_create_info.html | 22 +- .../struct_vma_allocator_info-members.html | 22 +- docs/html/struct_vma_allocator_info.html | 22 +- docs/html/struct_vma_budget-members.html | 22 +- docs/html/struct_vma_budget.html | 22 +- .../struct_vma_defragmentation_context.html | 22 +- ...ruct_vma_defragmentation_info-members.html | 22 +- .../html/struct_vma_defragmentation_info.html | 22 +- ...ruct_vma_defragmentation_move-members.html | 22 +- .../html/struct_vma_defragmentation_move.html | 22 +- ...efragmentation_pass_move_info-members.html | 22 +- ...ct_vma_defragmentation_pass_move_info.html | 22 +- ...uct_vma_defragmentation_stats-members.html | 22 +- .../struct_vma_defragmentation_stats.html | 22 +- ...truct_vma_detailed_statistics-members.html | 22 +- docs/html/struct_vma_detailed_statistics.html | 22 +- ...t_vma_device_memory_callbacks-members.html | 22 +- .../struct_vma_device_memory_callbacks.html | 22 +- docs/html/struct_vma_pool.html | 22 +- .../struct_vma_pool_create_info-members.html | 22 +- docs/html/struct_vma_pool_create_info.html | 22 +- docs/html/struct_vma_statistics-members.html | 22 +- docs/html/struct_vma_statistics.html | 22 +- .../struct_vma_total_statistics-members.html | 22 +- docs/html/struct_vma_total_statistics.html | 22 +- docs/html/struct_vma_virtual_allocation.html | 22 +- ...irtual_allocation_create_info-members.html | 22 +- ...ct_vma_virtual_allocation_create_info.html | 22 +- ...t_vma_virtual_allocation_info-members.html | 22 +- .../struct_vma_virtual_allocation_info.html | 22 +- docs/html/struct_vma_virtual_block.html | 22 +- ...vma_virtual_block_create_info-members.html | 22 +- .../struct_vma_virtual_block_create_info.html | 22 +- .../struct_vma_vulkan_functions-members.html | 35 +- docs/html/struct_vma_vulkan_functions.html | 38 +- docs/html/topics.html | 22 +- docs/html/usage_patterns.html | 46 +- docs/html/virtual_allocator.html | 42 +- docs/html/vk__mem__alloc_8h.html | 26 +- docs/html/vk_amd_device_coherent_memory.html | 22 +- docs/html/vk_ext_memory_priority.html | 34 +- docs/html/vk_khr_dedicated_allocation.html | 24 +- docs/html/vk_khr_external_memory_win32.html | 210 +++++++++ include/vk_mem_alloc.h | 171 ++++++- src/Tests.cpp | 5 +- 112 files changed, 3340 insertions(+), 990 deletions(-) create mode 100644 docs/html/navtree.css create mode 100644 docs/html/resize.js create mode 100644 docs/html/vk_khr_external_memory_win32.html diff --git a/README.md b/README.md index c8997c8..10c4e43 100644 --- a/README.md +++ b/README.md @@ -58,6 +58,7 @@ Additional features: - 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_KHR_external_memory_win32. - 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 e1bb2ee..da16467 100644 --- a/docs/html/allocation_annotation.html +++ b/docs/html/allocation_annotation.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Allocation names and user data + + @@ -31,23 +33,33 @@ - + + + +
Allocation names and user data
@@ -93,18 +106,18 @@ Allocation user data
VmaAllocation allocation;
vmaCreateBuffer(allocator, &bufCreateInfo, &allocCreateInfo, &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:529
-
Parameters of new VmaAllocation.
Definition vk_mem_alloc.h:1265
-
void * pUserData
Custom general-purpose pointer that will be stored in VmaAllocation, can be read as VmaAllocationInfo...
Definition vk_mem_alloc.h:1304
-
VmaMemoryUsage usage
Intended usage of memory.
Definition vk_mem_alloc.h:1273
+
@ VMA_MEMORY_USAGE_AUTO
Definition vk_mem_alloc.h:548
+
Parameters of new VmaAllocation.
Definition vk_mem_alloc.h:1289
+
void * pUserData
Custom general-purpose pointer that will be stored in VmaAllocation, can be read as VmaAllocationInfo...
Definition vk_mem_alloc.h:1328
+
VmaMemoryUsage usage
Intended usage of memory.
Definition vk_mem_alloc.h:1297
Represents single memory allocation.

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

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:1384
-
void * pUserData
Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vma...
Definition vk_mem_alloc.h:1431
+
Definition vk_mem_alloc.h:1408
+
void * pUserData
Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vma...
Definition vk_mem_alloc.h:1455

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.

@@ -120,7 +133,8 @@ Allocation names

+ diff --git a/docs/html/annotated.html b/docs/html/annotated.html index ebfe053..f482b3c 100644 --- a/docs/html/annotated.html +++ b/docs/html/annotated.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Class List + + @@ -31,24 +33,35 @@ - + + +
+
+
diff --git a/docs/html/choosing_memory_type.html b/docs/html/choosing_memory_type.html index 9164287..d7a3658 100644 --- a/docs/html/choosing_memory_type.html +++ b/docs/html/choosing_memory_type.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Choosing memory type + + @@ -31,23 +33,33 @@
- + + + +
Choosing memory type
@@ -103,9 +116,9 @@ Usage
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:529
-
Parameters of new VmaAllocation.
Definition vk_mem_alloc.h:1265
-
VmaMemoryUsage usage
Intended usage of memory.
Definition vk_mem_alloc.h:1273
+
@ VMA_MEMORY_USAGE_AUTO
Definition vk_mem_alloc.h:548
+
Parameters of new VmaAllocation.
Definition vk_mem_alloc.h:1289
+
VmaMemoryUsage usage
Intended usage of memory.
Definition vk_mem_alloc.h:1297
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 +134,8 @@ Usage
VkBuffer stagingBuffer;
VmaAllocation stagingAllocation;
vmaCreateBuffer(allocator, &stagingBufferInfo, &stagingAllocInfo, &stagingBuffer, &stagingAllocation, nullptr);
-
@ VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT
Definition vk_mem_alloc.h:638
-
VmaAllocationCreateFlags flags
Use VmaAllocationCreateFlagBits enum.
Definition vk_mem_alloc.h:1267
+
@ VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT
Definition vk_mem_alloc.h:657
+
VmaAllocationCreateFlags flags
Use VmaAllocationCreateFlagBits enum.
Definition vk_mem_alloc.h:1291

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 +150,10 @@ Required and preferred flags
VkBuffer buffer;
VmaAllocation allocation;
vmaCreateBuffer(allocator, &bufferInfo, &allocInfo, &buffer, &allocation, nullptr);
-
@ 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:589
-
@ VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT
Definition vk_mem_alloc.h:650
-
VkMemoryPropertyFlags preferredFlags
Flags that preferably should be set in a memory type chosen for an allocation.
Definition vk_mem_alloc.h:1283
-
VkMemoryPropertyFlags requiredFlags
Flags that must be set in a Memory Type chosen for an allocation.
Definition vk_mem_alloc.h:1278
+
@ 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:608
+
@ VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT
Definition vk_mem_alloc.h:669
+
VkMemoryPropertyFlags preferredFlags
Flags that preferably should be set in a memory type chosen for an allocation.
Definition vk_mem_alloc.h:1307
+
VkMemoryPropertyFlags requiredFlags
Flags that must be set in a Memory Type chosen for an allocation.
Definition vk_mem_alloc.h:1302

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 +168,7 @@ Explicit memory types

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

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;
@@ -178,7 +191,8 @@ Dedicated allocations
+ diff --git a/docs/html/classes.html b/docs/html/classes.html index 08d4f6e..bfbad61 100644 --- a/docs/html/classes.html +++ b/docs/html/classes.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Class Index + + @@ -31,24 +33,35 @@ - + + +
+
+
diff --git a/docs/html/configuration.html b/docs/html/configuration.html index 5a864b5..e445f22 100644 --- a/docs/html/configuration.html +++ b/docs/html/configuration.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Configuration + + @@ -31,23 +33,33 @@
- + + + +
Configuration
@@ -109,7 +122,8 @@ Device heap memory limit
+
diff --git a/docs/html/custom_memory_pools.html b/docs/html/custom_memory_pools.html index 90180cd..c98d488 100644 --- a/docs/html/custom_memory_pools.html +++ b/docs/html/custom_memory_pools.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Custom memory pools + + @@ -31,23 +33,33 @@ - + + + +
Custom memory pools
@@ -133,15 +146,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:529
-
Parameters of new VmaAllocation.
Definition vk_mem_alloc.h:1265
-
VmaPool pool
Pool that this allocation should be created in.
Definition vk_mem_alloc.h:1297
-
VmaMemoryUsage usage
Intended usage of memory.
Definition vk_mem_alloc.h:1273
+
@ VMA_MEMORY_USAGE_AUTO
Definition vk_mem_alloc.h:548
+
Parameters of new VmaAllocation.
Definition vk_mem_alloc.h:1289
+
VmaPool pool
Pool that this allocation should be created in.
Definition vk_mem_alloc.h:1321
+
VmaMemoryUsage usage
Intended usage of memory.
Definition vk_mem_alloc.h:1297
Represents single memory allocation.
-
Describes parameter of created VmaPool.
Definition vk_mem_alloc.h:1316
-
uint32_t memoryTypeIndex
Vulkan memory type index to allocate this pool from.
Definition vk_mem_alloc.h:1319
-
VkDeviceSize blockSize
Size of a single VkDeviceMemory block to be allocated as part of this pool, in bytes....
Definition vk_mem_alloc.h:1332
-
size_t maxBlockCount
Maximum number of blocks that can be allocated in this pool. Optional.
Definition vk_mem_alloc.h:1345
+
Describes parameter of created VmaPool.
Definition vk_mem_alloc.h:1340
+
uint32_t memoryTypeIndex
Vulkan memory type index to allocate this pool from.
Definition vk_mem_alloc.h:1343
+
VkDeviceSize blockSize
Size of a single VkDeviceMemory block to be allocated as part of this pool, in bytes....
Definition vk_mem_alloc.h:1356
+
size_t maxBlockCount
Maximum number of blocks that can be allocated in this pool. Optional.
Definition vk_mem_alloc.h:1369
Represents custom memory pool.

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

vmaDestroyBuffer(allocator, buf, alloc);
@@ -227,7 +240,8 @@ Ring buffer
+
diff --git a/docs/html/debugging_memory_usage.html b/docs/html/debugging_memory_usage.html index 1dadcff..728fce9 100644 --- a/docs/html/debugging_memory_usage.html +++ b/docs/html/debugging_memory_usage.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Debugging incorrect memory usage + + @@ -31,23 +33,33 @@ - + + + +
Debugging incorrect memory usage
@@ -120,7 +133,8 @@ Leak detection features
+
diff --git a/docs/html/defragmentation.html b/docs/html/defragmentation.html index 244264c..2acf0d0 100644 --- a/docs/html/defragmentation.html +++ b/docs/html/defragmentation.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Defragmentation + + @@ -31,23 +33,33 @@ - + + + +
Defragmentation
@@ -143,18 +156,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:746
-
Definition vk_mem_alloc.h:1384
-
void * pUserData
Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vma...
Definition vk_mem_alloc.h:1431
+
@ VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FAST_BIT
Definition vk_mem_alloc.h:765
+
Definition vk_mem_alloc.h:1408
+
void * pUserData
Custom general-purpose pointer that was passed as VmaAllocationCreateInfo::pUserData or set using vma...
Definition vk_mem_alloc.h:1455
An opaque object that represents started defragmentation process.
-
Parameters for defragmentation.
Definition vk_mem_alloc.h:1474
-
VmaPool pool
Custom pool to be defragmented.
Definition vk_mem_alloc.h:1481
-
VmaDefragmentationFlags flags
Use combination of VmaDefragmentationFlagBits.
Definition vk_mem_alloc.h:1476
-
VmaAllocation srcAllocation
Allocation that should be moved.
Definition vk_mem_alloc.h:1507
-
VmaAllocation dstTmpAllocation
Temporary allocation pointing to destination memory that will replace srcAllocation.
Definition vk_mem_alloc.h:1514
-
Parameters for incremental defragmentation steps.
Definition vk_mem_alloc.h:1522
-
uint32_t moveCount
Number of elements in the pMoves array.
Definition vk_mem_alloc.h:1524
-
VmaDefragmentationMove * pMoves
Array of moves to be performed by the user in the current defragmentation pass.
Definition vk_mem_alloc.h:1548
+
Parameters for defragmentation.
Definition vk_mem_alloc.h:1498
+
VmaPool pool
Custom pool to be defragmented.
Definition vk_mem_alloc.h:1505
+
VmaDefragmentationFlags flags
Use combination of VmaDefragmentationFlagBits.
Definition vk_mem_alloc.h:1500
+
VmaAllocation srcAllocation
Allocation that should be moved.
Definition vk_mem_alloc.h:1531
+
VmaAllocation dstTmpAllocation
Temporary allocation pointing to destination memory that will replace srcAllocation.
Definition vk_mem_alloc.h:1538
+
Parameters for incremental defragmentation steps.
Definition vk_mem_alloc.h:1546
+
uint32_t moveCount
Number of elements in the pMoves array.
Definition vk_mem_alloc.h:1548
+
VmaDefragmentationMove * pMoves
Array of moves to be performed by the user in the current defragmentation pass.
Definition vk_mem_alloc.h:1572

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:
      @@ -204,7 +217,8 @@ $(function() {
+ diff --git a/docs/html/deprecated.html b/docs/html/deprecated.html index 856a4f1..e65e330 100644 --- a/docs/html/deprecated.html +++ b/docs/html/deprecated.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Deprecated List + + @@ -31,23 +33,33 @@ - + + +
+
Deprecated List
@@ -92,7 +105,8 @@ $(function() {
+
diff --git a/docs/html/dir_d44c64559bbebec7f509842c48db8b23.html b/docs/html/dir_d44c64559bbebec7f509842c48db8b23.html index 78936ac..5b1ae03 100644 --- a/docs/html/dir_d44c64559bbebec7f509842c48db8b23.html +++ b/docs/html/dir_d44c64559bbebec7f509842c48db8b23.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: D:/PROJECTS/Vulkan Memory Allocator/REPO/include Directory Reference + + @@ -31,23 +33,33 @@ - + + + +
include Directory Reference
@@ -87,7 +100,8 @@ Files
+ diff --git a/docs/html/doxygen.css b/docs/html/doxygen.css index 7b7d851..209912c 100644 --- a/docs/html/doxygen.css +++ b/docs/html/doxygen.css @@ -1,4 +1,4 @@ -/* The standard CSS for doxygen 1.10.0*/ +/* The standard CSS for doxygen 1.11.0*/ html { /* page base colors */ @@ -657,7 +657,24 @@ dl.el { margin-left: -1cm; } +ul.check { + list-style:none; + text-indent: -16px; + padding-left: 38px; +} +li.unchecked:before { + content: "\2610\A0"; +} +li.checked:before { + content: "\2611\A0"; +} + +ol { + text-indent: 0px; +} + ul { + text-indent: 0px; overflow: visible; } @@ -1614,7 +1631,7 @@ dl.note { border-color: #D0C000; } -dl.warning, dl.attention { +dl.warning, dl.attention, dl.important { margin-left: -7px; padding-left: 3px; border-left: 4px solid; @@ -1662,7 +1679,7 @@ dl.bug dt a, dl.deprecated dt a, dl.todo dt a, dl.test a { font-weight: bold !important; } -dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, +dl.warning, dl.attention, dl.important, dl.note, dl.deprecated, dl.bug, dl.invariant, dl.pre, dl.post, dl.todo, dl.test, dl.remark { padding: 10px; margin: 10px 0px; @@ -1675,13 +1692,13 @@ dl.section dd { margin-bottom: 2px; } -dl.warning, dl.attention { +dl.warning, dl.attention, dl.important { background: var(--warning-color-bg); border-left: 8px solid var(--warning-color-hl); color: var(--warning-color-text); } -dl.warning dt, dl.attention dt { +dl.warning dt, dl.attention dt, dl.important dt { color: var(--warning-color-hl); } @@ -1739,7 +1756,9 @@ dl.deprecated dt a { color: var(--deprecated-color-hl) !important; } -dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd, dl.test dd { +dl.note dd, dl.warning dd, dl.pre dd, dl.post dd, +dl.remark dd, dl.attention dd, dl.important dd, dl.invariant dd, +dl.bug dd, dl.deprecated dd, dl.todo dd, dl.test dd { margin-inline-start: 0px; } diff --git a/docs/html/doxygen_crawl.html b/docs/html/doxygen_crawl.html index ad1c927..b15bdb8 100644 --- a/docs/html/doxygen_crawl.html +++ b/docs/html/doxygen_crawl.html @@ -4,7 +4,7 @@ Validator / crawler helper - + @@ -26,6 +26,7 @@ + @@ -118,5 +119,426 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/html/dynsections.js b/docs/html/dynsections.js index 8f49326..b05f4c8 100644 --- a/docs/html/dynsections.js +++ b/docs/html/dynsections.js @@ -23,6 +23,10 @@ @licend The above is the entire license notice for the JavaScript code in this file */ +function toggleVisibility(linkObj) { + return dynsection.toggleVisibility(linkObj); +} + let dynsection = { // helper function diff --git a/docs/html/enabling_buffer_device_address.html b/docs/html/enabling_buffer_device_address.html index 26a0ca2..50f23e9 100644 --- a/docs/html/enabling_buffer_device_address.html +++ b/docs/html/enabling_buffer_device_address.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Enabling buffer device address + + @@ -31,23 +33,33 @@ - + + + +
Enabling buffer device address
@@ -99,7 +112,8 @@ More information
+
diff --git a/docs/html/files.html b/docs/html/files.html index b4b0db0..1654eb1 100644 --- a/docs/html/files.html +++ b/docs/html/files.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: File List + + @@ -31,24 +33,35 @@ - + + +
+
+
diff --git a/docs/html/functions.html b/docs/html/functions.html index 89f2a78..35c78ab 100644 --- a/docs/html/functions.html +++ b/docs/html/functions.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Class Members + + @@ -31,24 +33,35 @@
- + + +
+
vkGetImageMemoryRequirements : VmaVulkanFunctions
  • vkGetImageMemoryRequirements2KHR : VmaVulkanFunctions
  • vkGetInstanceProcAddr : VmaVulkanFunctions
  • +
  • vkGetMemoryWin32HandleKHR : VmaVulkanFunctions
  • vkGetPhysicalDeviceMemoryProperties : VmaVulkanFunctions
  • vkGetPhysicalDeviceMemoryProperties2KHR : VmaVulkanFunctions
  • vkGetPhysicalDeviceProperties : VmaVulkanFunctions
  • @@ -213,7 +227,8 @@ $(function() {
    +
    diff --git a/docs/html/functions_vars.html b/docs/html/functions_vars.html index fd70a92..4a3519b 100644 --- a/docs/html/functions_vars.html +++ b/docs/html/functions_vars.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Class Members - Variables + + @@ -31,24 +33,35 @@ - + + +
    +
    vkGetImageMemoryRequirements : VmaVulkanFunctions
  • vkGetImageMemoryRequirements2KHR : VmaVulkanFunctions
  • vkGetInstanceProcAddr : VmaVulkanFunctions
  • +
  • vkGetMemoryWin32HandleKHR : VmaVulkanFunctions
  • vkGetPhysicalDeviceMemoryProperties : VmaVulkanFunctions
  • vkGetPhysicalDeviceMemoryProperties2KHR : VmaVulkanFunctions
  • vkGetPhysicalDeviceProperties : VmaVulkanFunctions
  • @@ -213,7 +227,8 @@ $(function() {
    +
    diff --git a/docs/html/general_considerations.html b/docs/html/general_considerations.html index 8ada9d3..5a288f1 100644 --- a/docs/html/general_considerations.html +++ b/docs/html/general_considerations.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: General considerations + + @@ -31,23 +33,33 @@ - + + + +
    General considerations
    @@ -139,7 +152,8 @@ Features not supported
    +
    diff --git a/docs/html/globals.html b/docs/html/globals.html index d194bb0..1747d5e 100644 --- a/docs/html/globals.html +++ b/docs/html/globals.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: File Members + + @@ -31,24 +33,35 @@ - + + +
    +
    VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM : vk_mem_alloc.h
  • VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT : vk_mem_alloc.h
  • VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT : vk_mem_alloc.h
  • +
  • VMA_ALLOCATOR_CREATE_KHR_EXTERNAL_MEMORY_WIN32_BIT : vk_mem_alloc.h
  • VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE4_BIT : vk_mem_alloc.h
  • VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE5_BIT : vk_mem_alloc.h
  • VMA_DEFRAGMENTATION_FLAG_ALGORITHM_BALANCED_BIT : vk_mem_alloc.h
  • @@ -214,6 +228,7 @@ $(function() {
  • vmaGetHeapBudgets() : vk_mem_alloc.h
  • vmaGetMemoryProperties() : vk_mem_alloc.h
  • vmaGetMemoryTypeProperties() : vk_mem_alloc.h
  • +
  • vmaGetMemoryWin32Handle() : vk_mem_alloc.h
  • vmaGetPhysicalDeviceProperties() : vk_mem_alloc.h
  • vmaGetPoolName() : vk_mem_alloc.h
  • vmaGetPoolStatistics() : vk_mem_alloc.h
  • @@ -249,7 +264,8 @@ $(function() {
    +
    diff --git a/docs/html/globals_enum.html b/docs/html/globals_enum.html index 5cc7197..ab69d6f 100644 --- a/docs/html/globals_enum.html +++ b/docs/html/globals_enum.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: File Members + + @@ -31,24 +33,35 @@ - + + +
    +
    +
    diff --git a/docs/html/globals_eval.html b/docs/html/globals_eval.html index 5760905..c47c1ee 100644 --- a/docs/html/globals_eval.html +++ b/docs/html/globals_eval.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: File Members + + @@ -31,24 +33,35 @@
    - + + +
    +
    VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM : vk_mem_alloc.h
  • VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT : vk_mem_alloc.h
  • VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT : vk_mem_alloc.h
  • +
  • VMA_ALLOCATOR_CREATE_KHR_EXTERNAL_MEMORY_WIN32_BIT : vk_mem_alloc.h
  • VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE4_BIT : vk_mem_alloc.h
  • VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE5_BIT : vk_mem_alloc.h
  • VMA_DEFRAGMENTATION_FLAG_ALGORITHM_BALANCED_BIT : vk_mem_alloc.h
  • @@ -139,7 +153,8 @@ $(function() {
    +
    diff --git a/docs/html/globals_func.html b/docs/html/globals_func.html index 601468d..7d87f86 100644 --- a/docs/html/globals_func.html +++ b/docs/html/globals_func.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: File Members + + @@ -31,24 +33,35 @@ - + + +
    +
    vmaGetHeapBudgets() : vk_mem_alloc.h
  • vmaGetMemoryProperties() : vk_mem_alloc.h
  • vmaGetMemoryTypeProperties() : vk_mem_alloc.h
  • +
  • vmaGetMemoryWin32Handle() : vk_mem_alloc.h
  • vmaGetPhysicalDeviceProperties() : vk_mem_alloc.h
  • vmaGetPoolName() : vk_mem_alloc.h
  • vmaGetPoolStatistics() : vk_mem_alloc.h
  • @@ -148,7 +162,8 @@ $(function() {
    +
    diff --git a/docs/html/globals_type.html b/docs/html/globals_type.html index 5e55025..d485153 100644 --- a/docs/html/globals_type.html +++ b/docs/html/globals_type.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: File Members + + @@ -31,24 +33,35 @@ - + + +
    +
    +
    diff --git a/docs/html/group__group__alloc.html b/docs/html/group__group__alloc.html index 3e1e9e4..176c501 100644 --- a/docs/html/group__group__alloc.html +++ b/docs/html/group__group__alloc.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Memory allocation + + @@ -31,24 +33,35 @@
    - + + +
    +
    void vmaGetAllocationMemoryProperties (VmaAllocator allocator, VmaAllocation allocation, VkMemoryPropertyFlags *pFlags)  Given an allocation, returns Property Flags of its memory type.
      +VkResult vmaGetMemoryWin32Handle (VmaAllocator allocator, VmaAllocation allocation, HANDLE hTargetProcess, HANDLE *pHandle) + Given an allocation, returns Win32 handle that may be imported by other processes or APIs.
    +  VkResult vmaMapMemory (VmaAllocator allocator, VmaAllocation allocation, void **ppData)  Maps memory represented by given allocation and returns pointer to it.
      @@ -872,22 +888,22 @@ Functions VkResult vmaAllocateMemory ( - VmaAllocator allocator, + VmaAllocator allocator, - const VkMemoryRequirements * pVkMemoryRequirements, + const VkMemoryRequirements * pVkMemoryRequirements, - const VmaAllocationCreateInfo * pCreateInfo, + const VmaAllocationCreateInfo * pCreateInfo, - VmaAllocation * pAllocation, + VmaAllocation * pAllocation, @@ -922,22 +938,22 @@ Functions VkResult vmaAllocateMemoryForBuffer ( - VmaAllocator allocator, + VmaAllocator allocator, - VkBuffer buffer, + VkBuffer buffer, - const VmaAllocationCreateInfo * pCreateInfo, + const VmaAllocationCreateInfo * pCreateInfo, - VmaAllocation * pAllocation, + VmaAllocation * pAllocation, @@ -973,22 +989,22 @@ Functions VkResult vmaAllocateMemoryForImage ( - VmaAllocator allocator, + VmaAllocator allocator, - VkImage image, + VkImage image, - const VmaAllocationCreateInfo * pCreateInfo, + const VmaAllocationCreateInfo * pCreateInfo, - VmaAllocation * pAllocation, + VmaAllocation * pAllocation, @@ -1024,27 +1040,27 @@ Functions VkResult vmaAllocateMemoryPages ( - VmaAllocator allocator, + VmaAllocator allocator, - const VkMemoryRequirements * pVkMemoryRequirements, + const VkMemoryRequirements * pVkMemoryRequirements, - const VmaAllocationCreateInfo * pCreateInfo, + const VmaAllocationCreateInfo * pCreateInfo, - size_t allocationCount, + size_t allocationCount, - VmaAllocation * pAllocations, + VmaAllocation * pAllocations, @@ -1081,12 +1097,12 @@ Functions VkResult vmaBeginDefragmentation ( - VmaAllocator allocator, + VmaAllocator allocator, - const VmaDefragmentationInfo * pInfo, + const VmaDefragmentationInfo * pInfo, @@ -1123,12 +1139,12 @@ Functions VkResult vmaBeginDefragmentationPass ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaDefragmentationContext context, + VmaDefragmentationContext context, @@ -1164,12 +1180,12 @@ Functions VkResult vmaBindBufferMemory ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaAllocation allocation, + VmaAllocation allocation, @@ -1194,22 +1210,22 @@ Functions VkResult vmaBindBufferMemory2 ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaAllocation allocation, + VmaAllocation allocation, - VkDeviceSize allocationLocalOffset, + VkDeviceSize allocationLocalOffset, - VkBuffer buffer, + VkBuffer buffer, @@ -1244,12 +1260,12 @@ Functions VkResult vmaBindImageMemory ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaAllocation allocation, + VmaAllocation allocation, @@ -1274,22 +1290,22 @@ Functions VkResult vmaBindImageMemory2 ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaAllocation allocation, + VmaAllocation allocation, - VkDeviceSize allocationLocalOffset, + VkDeviceSize allocationLocalOffset, - VkImage image, + VkImage image, @@ -1324,7 +1340,7 @@ Functions VkResult vmaCheckCorruption ( - VmaAllocator allocator, + VmaAllocator allocator, @@ -1362,7 +1378,7 @@ Functions VkResult vmaCheckPoolCorruption ( - VmaAllocator allocator, + VmaAllocator allocator, @@ -1393,22 +1409,22 @@ Functions VkResult vmaCopyAllocationToMemory ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaAllocation srcAllocation, + VmaAllocation srcAllocation, - VkDeviceSize srcAllocationLocalOffset, + VkDeviceSize srcAllocationLocalOffset, - void * pDstHostPointer, + void * pDstHostPointer, @@ -1444,22 +1460,22 @@ Functions VkResult vmaCopyMemoryToAllocation ( - VmaAllocator allocator, + VmaAllocator allocator, - const void * pSrcHostPointer, + const void * pSrcHostPointer, - VmaAllocation dstAllocation, + VmaAllocation dstAllocation, - VkDeviceSize dstAllocationLocalOffset, + VkDeviceSize dstAllocationLocalOffset, @@ -1495,17 +1511,17 @@ Functions VkResult vmaCreateAliasingBuffer ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaAllocation allocation, + VmaAllocation allocation, - const VkBufferCreateInfo * pBufferCreateInfo, + const VkBufferCreateInfo * pBufferCreateInfo, @@ -1545,22 +1561,22 @@ Functions VkResult vmaCreateAliasingBuffer2 ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaAllocation allocation, + VmaAllocation allocation, - VkDeviceSize allocationLocalOffset, + VkDeviceSize allocationLocalOffset, - const VkBufferCreateInfo * pBufferCreateInfo, + const VkBufferCreateInfo * pBufferCreateInfo, @@ -1601,17 +1617,17 @@ Functions VkResult vmaCreateAliasingImage ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaAllocation allocation, + VmaAllocation allocation, - const VkImageCreateInfo * pImageCreateInfo, + const VkImageCreateInfo * pImageCreateInfo, @@ -1634,22 +1650,22 @@ Functions VkResult vmaCreateAliasingImage2 ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaAllocation allocation, + VmaAllocation allocation, - VkDeviceSize allocationLocalOffset, + VkDeviceSize allocationLocalOffset, - const VkImageCreateInfo * pImageCreateInfo, + const VkImageCreateInfo * pImageCreateInfo, @@ -1672,27 +1688,27 @@ Functions VkResult vmaCreateBuffer ( - VmaAllocator allocator, + VmaAllocator allocator, - const VkBufferCreateInfo * pBufferCreateInfo, + const VkBufferCreateInfo * pBufferCreateInfo, - const VmaAllocationCreateInfo * pAllocationCreateInfo, + const VmaAllocationCreateInfo * pAllocationCreateInfo, - VkBuffer * pBuffer, + VkBuffer * pBuffer, - VmaAllocation * pAllocation, + VmaAllocation * pAllocation, @@ -1736,32 +1752,32 @@ Functions VkResult vmaCreateBufferWithAlignment ( - VmaAllocator allocator, + VmaAllocator allocator, - const VkBufferCreateInfo * pBufferCreateInfo, + const VkBufferCreateInfo * pBufferCreateInfo, - const VmaAllocationCreateInfo * pAllocationCreateInfo, + const VmaAllocationCreateInfo * pAllocationCreateInfo, - VkDeviceSize minAlignment, + VkDeviceSize minAlignment, - VkBuffer * pBuffer, + VkBuffer * pBuffer, - VmaAllocation * pAllocation, + VmaAllocation * pAllocation, @@ -1785,27 +1801,27 @@ Functions VkResult vmaCreateImage ( - VmaAllocator allocator, + VmaAllocator allocator, - const VkImageCreateInfo * pImageCreateInfo, + const VkImageCreateInfo * pImageCreateInfo, - const VmaAllocationCreateInfo * pAllocationCreateInfo, + const VmaAllocationCreateInfo * pAllocationCreateInfo, - VkImage * pImage, + VkImage * pImage, - VmaAllocation * pAllocation, + VmaAllocation * pAllocation, @@ -1828,12 +1844,12 @@ Functions VkResult vmaCreatePool ( - VmaAllocator allocator, + VmaAllocator allocator, - const VmaPoolCreateInfo * pCreateInfo, + const VmaPoolCreateInfo * pCreateInfo, @@ -1864,12 +1880,12 @@ Functions void vmaDestroyBuffer ( - VmaAllocator allocator, + VmaAllocator allocator, - VkBuffer buffer, + VkBuffer buffer, @@ -1897,12 +1913,12 @@ Functions void vmaDestroyImage ( - VmaAllocator allocator, + VmaAllocator allocator, - VkImage image, + VkImage image, @@ -1929,7 +1945,7 @@ Functions void vmaDestroyPool ( - VmaAllocator allocator, + VmaAllocator allocator, @@ -1952,12 +1968,12 @@ Functions void vmaEndDefragmentation ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaDefragmentationContext context, + VmaDefragmentationContext context, @@ -1989,12 +2005,12 @@ Functions VkResult vmaEndDefragmentationPass ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaDefragmentationContext context, + VmaDefragmentationContext context, @@ -2032,17 +2048,17 @@ Functions VkResult vmaFindMemoryTypeIndex ( - VmaAllocator allocator, + VmaAllocator allocator, - uint32_t memoryTypeBits, + uint32_t memoryTypeBits, - const VmaAllocationCreateInfo * pAllocationCreateInfo, + const VmaAllocationCreateInfo * pAllocationCreateInfo, @@ -2073,17 +2089,17 @@ Functions VkResult vmaFindMemoryTypeIndexForBufferInfo ( - VmaAllocator allocator, + VmaAllocator allocator, - const VkBufferCreateInfo * pBufferCreateInfo, + const VkBufferCreateInfo * pBufferCreateInfo, - const VmaAllocationCreateInfo * pAllocationCreateInfo, + const VmaAllocationCreateInfo * pAllocationCreateInfo, @@ -2107,17 +2123,17 @@ Functions VkResult vmaFindMemoryTypeIndexForImageInfo ( - VmaAllocator allocator, + VmaAllocator allocator, - const VkImageCreateInfo * pImageCreateInfo, + const VkImageCreateInfo * pImageCreateInfo, - const VmaAllocationCreateInfo * pAllocationCreateInfo, + const VmaAllocationCreateInfo * pAllocationCreateInfo, @@ -2141,17 +2157,17 @@ Functions VkResult vmaFlushAllocation ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaAllocation allocation, + VmaAllocation allocation, - VkDeviceSize offset, + VkDeviceSize offset, @@ -2184,22 +2200,22 @@ Functions VkResult vmaFlushAllocations ( - VmaAllocator allocator, + VmaAllocator allocator, - uint32_t allocationCount, + uint32_t allocationCount, - const VmaAllocation * allocations, + const VmaAllocation * allocations, - const VkDeviceSize * offsets, + const VkDeviceSize * offsets, @@ -2234,7 +2250,7 @@ Functions void vmaFreeMemory ( - VmaAllocator allocator, + VmaAllocator allocator, @@ -2258,12 +2274,12 @@ Functions void vmaFreeMemoryPages ( - VmaAllocator allocator, + VmaAllocator allocator, - size_t allocationCount, + size_t allocationCount, @@ -2288,12 +2304,12 @@ Functions void vmaGetAllocationInfo ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaAllocation allocation, + VmaAllocation allocation, @@ -2319,12 +2335,12 @@ Functions void vmaGetAllocationInfo2 ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaAllocation allocation, + VmaAllocation allocation, @@ -2348,12 +2364,12 @@ Functions void vmaGetAllocationMemoryProperties ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaAllocation allocation, + VmaAllocation allocation, @@ -2366,6 +2382,52 @@ Functions

    Given an allocation, returns Property Flags of its memory type.

    This is just a convenience function. Same information can be obtained using vmaGetAllocationInfo() + vmaGetMemoryProperties().

    +
    +
    + +

    ◆ vmaGetMemoryWin32Handle()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + +
    VkResult vmaGetMemoryWin32Handle (VmaAllocator allocator,
    VmaAllocation allocation,
    HANDLE hTargetProcess,
    HANDLE * pHandle )
    +
    + +

    Given an allocation, returns Win32 handle that may be imported by other processes or APIs.

    +
    Parameters
    + + + +
    hTargetProcessMust be a valid handle to target process or null. If it's null, the function returns handle for the current process.
    [out]pHandleOutput parameter that returns the handle.
    +
    +
    +

    The function fills pHandle with handle that can be used in target process. The handle is fetched using function vkGetMemoryWin32HandleKHR. When no longer needed, you must close it using:

    +
    CloseHandle(handle);
    +

    You can close it any time, before or after destroying the allocation object. It is reference-counted internally by Windows.

    +

    Note the handle is returned for the entire VkDeviceMemory block that the allocation belongs to. If the allocation is sub-allocated from a larger block, you may need to consider the offset of the allocation (VmaAllocationInfo::offset).

    +

    If the function fails with VK_ERROR_FEATURE_NOT_PRESENT error code, please double-check that VmaVulkanFunctions::vkGetMemoryWin32HandleKHR function pointer is set, e.g. either by using VMA_DYNAMIC_VULKAN_FUNCTIONS or by manually passing it through VmaAllocatorCreateInfo::pVulkanFunctions.

    +

    For more information, see chapter VK_KHR_external_memory_win32.

    +
    @@ -2377,12 +2439,12 @@ Functions void vmaGetPoolName ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaPool pool, + VmaPool pool, @@ -2406,17 +2468,17 @@ Functions VkResult vmaInvalidateAllocation ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaAllocation allocation, + VmaAllocation allocation, - VkDeviceSize offset, + VkDeviceSize offset, @@ -2449,22 +2511,22 @@ Functions VkResult vmaInvalidateAllocations ( - VmaAllocator allocator, + VmaAllocator allocator, - uint32_t allocationCount, + uint32_t allocationCount, - const VmaAllocation * allocations, + const VmaAllocation * allocations, - const VkDeviceSize * offsets, + const VkDeviceSize * offsets, @@ -2499,12 +2561,12 @@ Functions VkResult vmaMapMemory ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaAllocation allocation, + VmaAllocation allocation, @@ -2535,12 +2597,12 @@ Functions void vmaSetAllocationName ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaAllocation allocation, + VmaAllocation allocation, @@ -2564,12 +2626,12 @@ Functions void vmaSetAllocationUserData ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaAllocation allocation, + VmaAllocation allocation, @@ -2593,12 +2655,12 @@ Functions void vmaSetPoolName ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaPool pool, + VmaPool pool, @@ -2622,7 +2684,7 @@ Functions void vmaUnmapMemory ( - VmaAllocator allocator, + VmaAllocator allocator, @@ -2641,7 +2703,8 @@ Functions + diff --git a/docs/html/group__group__init.html b/docs/html/group__group__init.html index 4dd41fc..af62821 100644 --- a/docs/html/group__group__init.html +++ b/docs/html/group__group__init.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Library initialization + + @@ -31,24 +33,35 @@ - + + +
    +
    , VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE4_BIT = 0x00000080 ,
      VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE5_BIT = 0x00000100 +, VMA_ALLOCATOR_CREATE_KHR_EXTERNAL_MEMORY_WIN32_BIT = 0x00000200 , VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    } @@ -374,6 +388,9 @@ Functions 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_KHR_EXTERNAL_MEMORY_WIN32_BIT 

    Enables usage of VK_KHR_external_memory_win32 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. For more information, see VK_KHR_external_memory_win32.

    + VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM  @@ -389,7 +406,7 @@ Functions VkResult vmaCreateAllocator ( - const VmaAllocatorCreateInfo * pCreateInfo, + const VmaAllocatorCreateInfo * pCreateInfo, @@ -431,7 +448,7 @@ Functions void vmaGetAllocatorInfo ( - VmaAllocator allocator, + VmaAllocator allocator, @@ -455,7 +472,7 @@ Functions void vmaGetMemoryProperties ( - VmaAllocator allocator, + VmaAllocator allocator, @@ -477,12 +494,12 @@ Functions void vmaGetMemoryTypeProperties ( - VmaAllocator allocator, + VmaAllocator allocator, - uint32_t memoryTypeIndex, + uint32_t memoryTypeIndex, @@ -506,7 +523,7 @@ Functions void vmaGetPhysicalDeviceProperties ( - VmaAllocator allocator, + VmaAllocator allocator, @@ -528,7 +545,7 @@ Functions void vmaSetCurrentFrameIndex ( - VmaAllocator allocator, + VmaAllocator allocator, @@ -545,7 +562,8 @@ Functions
    +
    diff --git a/docs/html/group__group__stats.html b/docs/html/group__group__stats.html index b2fe644..bca4523 100644 --- a/docs/html/group__group__stats.html +++ b/docs/html/group__group__stats.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Statistics + + @@ -31,24 +33,35 @@ - + + +
    +
    void vmaBuildStatsString ( - VmaAllocator allocator, + VmaAllocator allocator, - char ** ppStatsString, + char ** ppStatsString, @@ -259,12 +272,12 @@ Functions void vmaBuildVirtualBlockStatsString ( - VmaVirtualBlock virtualBlock, + VmaVirtualBlock virtualBlock, - char ** ppStatsString, + char ** ppStatsString, @@ -296,12 +309,12 @@ Functions void vmaCalculatePoolStatistics ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaPool pool, + VmaPool pool, @@ -332,7 +345,7 @@ Functions void vmaCalculateStatistics ( - VmaAllocator allocator, + VmaAllocator allocator, @@ -357,7 +370,7 @@ Functions void vmaFreeStatsString ( - VmaAllocator allocator, + VmaAllocator allocator, @@ -378,7 +391,7 @@ Functions void vmaFreeVirtualBlockStatsString ( - VmaVirtualBlock virtualBlock, + VmaVirtualBlock virtualBlock, @@ -401,7 +414,7 @@ Functions void vmaGetHeapBudgets ( - VmaAllocator allocator, + VmaAllocator allocator, @@ -433,12 +446,12 @@ Functions void vmaGetPoolStatistics ( - VmaAllocator allocator, + VmaAllocator allocator, - VmaPool pool, + VmaPool pool, @@ -463,7 +476,8 @@ Functions
    +
    diff --git a/docs/html/group__group__virtual.html b/docs/html/group__group__virtual.html index ba153d7..fde7e1e 100644 --- a/docs/html/group__group__virtual.html +++ b/docs/html/group__group__virtual.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Virtual allocator + + @@ -31,24 +33,35 @@ - + + +
    +
    void vmaCalculateVirtualBlockStatistics ( - VmaVirtualBlock virtualBlock, + VmaVirtualBlock virtualBlock, @@ -406,7 +419,7 @@ Functions VkResult vmaCreateVirtualBlock ( - const VmaVirtualBlockCreateInfo * pCreateInfo, + const VmaVirtualBlockCreateInfo * pCreateInfo, @@ -457,12 +470,12 @@ Functions void vmaGetVirtualAllocationInfo ( - VmaVirtualBlock virtualBlock, + VmaVirtualBlock virtualBlock, - VmaVirtualAllocation allocation, + VmaVirtualAllocation allocation, @@ -485,7 +498,7 @@ Functions void vmaGetVirtualBlockStatistics ( - VmaVirtualBlock virtualBlock, + VmaVirtualBlock virtualBlock, @@ -528,12 +541,12 @@ Functions void vmaSetVirtualAllocationUserData ( - VmaVirtualBlock virtualBlock, + VmaVirtualBlock virtualBlock, - VmaVirtualAllocation allocation, + VmaVirtualAllocation allocation, @@ -556,17 +569,17 @@ Functions VkResult vmaVirtualAllocate ( - VmaVirtualBlock virtualBlock, + VmaVirtualBlock virtualBlock, - const VmaVirtualAllocationCreateInfo * pCreateInfo, + const VmaVirtualAllocationCreateInfo * pCreateInfo, - VmaVirtualAllocation * pAllocation, + VmaVirtualAllocation * pAllocation, @@ -599,7 +612,7 @@ Functions void vmaVirtualFree ( - VmaVirtualBlock virtualBlock, + VmaVirtualBlock virtualBlock, @@ -617,7 +630,8 @@ Functions
    +
    diff --git a/docs/html/index.html b/docs/html/index.html index 502e1af..df3d810 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Vulkan Memory Allocator + + @@ -31,24 +33,35 @@ - + + +
    + +
    diff --git a/docs/html/memory_mapping.html b/docs/html/memory_mapping.html index 961bd7d..ce6d320 100644 --- a/docs/html/memory_mapping.html +++ b/docs/html/memory_mapping.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Memory mapping + + @@ -31,23 +33,33 @@ - + + + +
    Memory mapping
    @@ -105,11 +118,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:529
    -
    @ VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT
    Definition vk_mem_alloc.h:638
    -
    Parameters of new VmaAllocation.
    Definition vk_mem_alloc.h:1265
    -
    VmaMemoryUsage usage
    Intended usage of memory.
    Definition vk_mem_alloc.h:1273
    -
    VmaAllocationCreateFlags flags
    Use VmaAllocationCreateFlagBits enum.
    Definition vk_mem_alloc.h:1267
    +
    @ VMA_MEMORY_USAGE_AUTO
    Definition vk_mem_alloc.h:548
    +
    @ VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT
    Definition vk_mem_alloc.h:657
    +
    Parameters of new VmaAllocation.
    Definition vk_mem_alloc.h:1289
    +
    VmaMemoryUsage usage
    Intended usage of memory.
    Definition vk_mem_alloc.h:1297
    +
    VmaAllocationCreateFlags flags
    Use VmaAllocationCreateFlagBits enum.
    Definition vk_mem_alloc.h:1291
    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 +169,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:589
    -
    Definition vk_mem_alloc.h:1384
    -
    void * pMappedData
    Pointer to the beginning of this allocation as mapped data.
    Definition vk_mem_alloc.h:1426
    +
    @ 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:608
    +
    Definition vk_mem_alloc.h:1408
    +
    void * pMappedData
    Pointer to the beginning of this allocation as mapped data.
    Definition vk_mem_alloc.h:1450
    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

    @@ -169,7 +182,8 @@ Cache flush and invalidate + diff --git a/docs/html/menu.js b/docs/html/menu.js index 717761d..0fd1e99 100644 --- a/docs/html/menu.js +++ b/docs/html/menu.js @@ -22,7 +22,7 @@ @licend The above is the entire license notice for the JavaScript code in this file */ -function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { +function initMenu(relPath,searchEnabled,serverSide,searchPage,search,treeview) { function makeTree(data,relPath) { let result=''; if ('children' in data) { @@ -91,7 +91,7 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { let prevWidth = 0; if ($mainMenuState.length) { const initResizableIfExists = function() { - if (typeof initResizable==='function') initResizable(); + if (typeof initResizable==='function') initResizable(treeview); } // animate mobile menu $mainMenuState.change(function() { diff --git a/docs/html/navtree.css b/docs/html/navtree.css new file mode 100644 index 0000000..69211d4 --- /dev/null +++ b/docs/html/navtree.css @@ -0,0 +1,149 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: var(--nav-text-active-color); + text-shadow: var(--nav-text-active-shadow); +} + +#nav-tree .selected .arrow { + color: var(--nav-arrow-selected-color); + text-shadow: none; +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px var(--font-family-nav); +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:var(--nav-text-active-color); +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: $width; + overflow : hidden; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background-image:var(--nav-splitbar-image); + background-size:100%; + background-repeat:repeat-y; + background-attachment: scroll; + cursor:ew-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-repeat:repeat-x; + background-color: var(--nav-background-color); + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/docs/html/other_api_interop.html b/docs/html/other_api_interop.html index e9b728a..106509e 100644 --- a/docs/html/other_api_interop.html +++ b/docs/html/other_api_interop.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Interop with other graphics APIs + + @@ -31,23 +33,33 @@ - + + + +
    Interop with other graphics APIs
    @@ -98,7 +111,8 @@ Extended allocation information
    +
    diff --git a/docs/html/pages.html b/docs/html/pages.html index 05a3a45..828edce 100644 --- a/docs/html/pages.html +++ b/docs/html/pages.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Related Pages + + @@ -31,24 +33,35 @@ - + + +
    +
    +
    diff --git a/docs/html/quick_start.html b/docs/html/quick_start.html index 585fbc8..46356be 100644 --- a/docs/html/quick_start.html +++ b/docs/html/quick_start.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Quick start + + @@ -31,23 +33,33 @@
    - + + + +
    Quick start
    @@ -152,7 +165,9 @@ Enabling extensions VK_EXT_memory_priority VMA_ALLOCATOR_CREATE_EXT_MEMORY_PRIORITY_BIT -VK_AMD_device_coherent_memory VMA_ALLOCATOR_CREATE_AMD_DEVICE_COHERENT_MEMORY_BIT +VK_AMD_device_coherent_memory VMA_ALLOCATOR_CREATE_AMD_DEVICE_COHERENT_MEMORY_BIT + +VK_KHR_external_memory_win32 VMA_ALLOCATOR_CREATE_KHR_EXTERNAL_MEMORY_WIN32_BIT

    Example with fetching pointers to Vulkan functions dynamically:

    #define VMA_STATIC_VULKAN_FUNCTIONS 0
    @@ -182,14 +197,14 @@ Enabling extensions
    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:395
    -
    Description of a Allocator to be created.
    Definition vk_mem_alloc.h:1042
    -
    VkPhysicalDevice physicalDevice
    Vulkan physical device.
    Definition vk_mem_alloc.h:1047
    -
    VmaAllocatorCreateFlags flags
    Flags for created allocator. Use VmaAllocatorCreateFlagBits enum.
    Definition vk_mem_alloc.h:1044
    -
    const VmaVulkanFunctions * pVulkanFunctions
    Pointers to Vulkan functions. Can be null.
    Definition vk_mem_alloc.h:1090
    -
    VkInstance instance
    Handle to Vulkan instance object.
    Definition vk_mem_alloc.h:1095
    -
    VkDevice device
    Vulkan device.
    Definition vk_mem_alloc.h:1050
    -
    uint32_t vulkanApiVersion
    Optional. Vulkan version that the application uses.
    Definition vk_mem_alloc.h:1106
    +
    @ VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT
    Definition vk_mem_alloc.h:405
    +
    Description of a Allocator to be created.
    Definition vk_mem_alloc.h:1066
    +
    VkPhysicalDevice physicalDevice
    Vulkan physical device.
    Definition vk_mem_alloc.h:1071
    +
    VmaAllocatorCreateFlags flags
    Flags for created allocator. Use VmaAllocatorCreateFlagBits enum.
    Definition vk_mem_alloc.h:1068
    +
    const VmaVulkanFunctions * pVulkanFunctions
    Pointers to Vulkan functions. Can be null.
    Definition vk_mem_alloc.h:1114
    +
    VkInstance instance
    Handle to Vulkan instance object.
    Definition vk_mem_alloc.h:1119
    +
    VkDevice device
    Vulkan device.
    Definition vk_mem_alloc.h:1074
    +
    uint32_t vulkanApiVersion
    Optional. Vulkan version that the application uses.
    Definition vk_mem_alloc.h:1130
    Represents main object of this library initialized.

    Other configuration options

    @@ -213,9 +228,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:529
    -
    Parameters of new VmaAllocation.
    Definition vk_mem_alloc.h:1265
    -
    VmaMemoryUsage usage
    Intended usage of memory.
    Definition vk_mem_alloc.h:1273
    +
    @ VMA_MEMORY_USAGE_AUTO
    Definition vk_mem_alloc.h:548
    +
    Parameters of new VmaAllocation.
    Definition vk_mem_alloc.h:1289
    +
    VmaMemoryUsage usage
    Intended usage of memory.
    Definition vk_mem_alloc.h:1297
    Represents single memory allocation.

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

    vmaDestroyBuffer(allocator, buffer, allocation);
    @@ -225,7 +240,8 @@ Resource allocation
    +
    diff --git a/docs/html/resize.js b/docs/html/resize.js new file mode 100644 index 0000000..7d8cdc7 --- /dev/null +++ b/docs/html/resize.js @@ -0,0 +1,145 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +function initResizable(treeview) { + let sidenav,navtree,content,header,footer,barWidth=6; + const RESIZE_COOKIE_NAME = ''+'width'; + + function resizeWidth() { + const sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(sidenavWidth)+"px"}); + } + Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); + } + + function restoreWidth(navWidth) { + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + } + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight(treeview) { + const headerHeight = header.outerHeight(); + const windowHeight = $(window).height(); + let contentHeight; + if (treeview) + { + const footerHeight = footer.outerHeight(); + let navtreeHeight,sideNavHeight; + if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */ + contentHeight = windowHeight - headerHeight - footerHeight; + navtreeHeight = contentHeight; + sideNavHeight = contentHeight; + } else if (page_layout==1) { /* DISABLE_INDEX=YES */ + contentHeight = windowHeight - footerHeight; + navtreeHeight = windowHeight - headerHeight; + sideNavHeight = windowHeight; + } + navtree.css({height:navtreeHeight + "px"}); + sidenav.css({height:sideNavHeight + "px"}); + } + else + { + contentHeight = windowHeight - headerHeight; + } + content.css({height:contentHeight + "px"}); + if (location.hash.slice(1)) { + (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView(); + } + } + + function collapseExpand() { + let newWidth; + if (sidenav.width()>0) { + newWidth=0; + } else { + const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); + newWidth = (width>250 && width<$(window).width()) ? width : 250; + } + restoreWidth(newWidth); + const sidenavWidth = $(sidenav).outerWidth(); + Cookie.writeSetting(RESIZE_COOKIE_NAME,sidenavWidth-barWidth); + } + + header = $("#top"); + content = $("#doc-content"); + footer = $("#nav-path"); + sidenav = $("#side-nav"); + if (!treeview) { +// title = $("#titlearea"); +// titleH = $(title).height(); +// let animating = false; +// content.on("scroll", function() { +// slideOpts = { duration: 200, +// step: function() { +// contentHeight = $(window).height() - header.outerHeight(); +// content.css({ height : contentHeight + "px" }); +// }, +// done: function() { animating=false; } +// }; +// if (content.scrollTop()>titleH && title.css('display')!='none' && !animating) { +// title.slideUp(slideOpts); +// animating=true; +// } else if (content.scrollTop()<=titleH && title.css('display')=='none' && !animating) { +// title.slideDown(slideOpts); +// animating=true; +// } +// }); + } else { + navtree = $("#nav-tree"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + } + $(window).resize(function() { resizeHeight(treeview); }); + if (treeview) + { + const device = navigator.userAgent.toLowerCase(); + const touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + const width = Cookie.readSetting(RESIZE_COOKIE_NAME,250); + if (width) { restoreWidth(width); } else { resizeWidth(); } + } + resizeHeight(treeview); + const url = location.href; + const i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + const _preventDefault = function(evt) { evt.preventDefault(); }; + if (treeview) + { + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + $(".ui-resizable-handle").dblclick(collapseExpand); + } + $(window).on('load',resizeHeight); +} +/* @license-end */ diff --git a/docs/html/resource_aliasing.html b/docs/html/resource_aliasing.html index 5a4cbb0..89a81c2 100644 --- a/docs/html/resource_aliasing.html +++ b/docs/html/resource_aliasing.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Resource aliasing (overlap) + + @@ -31,23 +33,33 @@ - + + + +
    Resource aliasing (overlap)
    @@ -149,8 +162,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:1265
    -
    VkMemoryPropertyFlags preferredFlags
    Flags that preferably should be set in a memory type chosen for an allocation.
    Definition vk_mem_alloc.h:1283
    +
    Parameters of new VmaAllocation.
    Definition vk_mem_alloc.h:1289
    +
    VkMemoryPropertyFlags preferredFlags
    Flags that preferably should be set in a memory type chosen for an allocation.
    Definition vk_mem_alloc.h:1307
    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.

    @@ -164,7 +177,8 @@ $(function() {
    + diff --git a/docs/html/search/all_0.js b/docs/html/search/all_0.js index d6d01c1..e9a0b3f 100644 --- a/docs/html/search/all_0.js +++ b/docs/html/search/all_0.js @@ -3,35 +3,33 @@ var searchData= ['additional_20considerations_0',['Additional considerations',['../virtual_allocator.html#virtual_allocator_additional_considerations',1,'']]], ['address_1',['Enabling buffer device address',['../enabling_buffer_device_address.html',1,'index']]], ['advanced_20data_20uploading_2',['Advanced data uploading',['../usage_patterns.html#usage_patterns_advanced_data_uploading',1,'']]], - ['algorithm_3',['Algorithm',['../general_considerations.html#general_considerations_allocation_algorithm',1,'Allocation algorithm'],['../custom_memory_pools.html#linear_algorithm',1,'Linear allocation algorithm']]], + ['algorithm_3',['algorithm',['../general_considerations.html#general_considerations_allocation_algorithm',1,'Allocation algorithm'],['../custom_memory_pools.html#linear_algorithm',1,'Linear allocation algorithm']]], ['aliasing_20overlap_4',['Resource aliasing (overlap)',['../resource_aliasing.html',1,'index']]], - ['alignment_5',['alignment',['../struct_vma_virtual_allocation_create_info.html#a9d19709872fc1904a105079e1c885821',1,'VmaVirtualAllocationCreateInfo']]], - ['alignment_6',['Custom alignment',['../other_api_interop.html#opengl_interop_custom_alignment',1,'']]], - ['alignment_20and_20units_7',['Alignment and units',['../virtual_allocator.html#virtual_allocator_alignment_and_units',1,'']]], - ['allocation_8',['Memory allocation',['../group__group__alloc.html',1,'']]], - ['allocation_9',['Resource allocation',['../quick_start.html#quick_start_resource_allocation',1,'']]], - ['allocation_20algorithm_10',['Allocation algorithm',['../general_considerations.html#general_considerations_allocation_algorithm',1,'Allocation algorithm'],['../custom_memory_pools.html#linear_algorithm',1,'Linear allocation algorithm']]], - ['allocation_20callbacks_11',['Device memory allocation callbacks',['../configuration.html#allocation_callbacks',1,'']]], - ['allocation_20information_12',['Extended allocation information',['../other_api_interop.html#opengl_interop_extended_allocation_information',1,'']]], - ['allocation_20names_13',['Allocation names',['../allocation_annotation.html#allocation_names',1,'']]], - ['allocation_20names_20and_20user_20data_14',['Allocation names and user data',['../allocation_annotation.html',1,'index']]], - ['allocation_20parameters_15',['Allocation parameters',['../virtual_allocator.html#virtual_allocator_allocation_parameters',1,'']]], - ['allocation_20user_20data_16',['Allocation user data',['../allocation_annotation.html#allocation_user_data',1,'']]], - ['allocationbytes_17',['allocationBytes',['../struct_vma_statistics.html#a21db06eba3422f87a2b4b4703d879c16',1,'VmaStatistics']]], - ['allocationcount_18',['allocationCount',['../struct_vma_statistics.html#ab0ff76e50f58f9f54b6f265e5bf5dde2',1,'VmaStatistics']]], - ['allocationinfo_19',['allocationInfo',['../struct_vma_allocation_info2.html#a315218ac1206a05026c95e06a8bbd6d5',1,'VmaAllocationInfo2']]], - ['allocations_20',['Allocations',['../choosing_memory_type.html#choosing_memory_type_dedicated_allocations',1,'Dedicated allocations'],['../virtual_allocator.html#virtual_allocator_making_virtual_allocations',1,'Making virtual allocations']]], - ['allocationsizemax_21',['allocationSizeMax',['../struct_vma_detailed_statistics.html#a06b2add24eed3449a66ff151979a0201',1,'VmaDetailedStatistics']]], - ['allocationsizemin_22',['allocationSizeMin',['../struct_vma_detailed_statistics.html#a6fb397e7487e10f2a52e241577d2a2b8',1,'VmaDetailedStatistics']]], - ['allocationsmoved_23',['allocationsMoved',['../struct_vma_defragmentation_stats.html#aefeabf130022008eadd75999478af3f9',1,'VmaDefragmentationStats']]], - ['allocator_24',['Custom host memory allocator',['../configuration.html#custom_memory_allocator',1,'']]], - ['allocator_25',['allocator',['../group__group__virtual.html',1,'Virtual allocator'],['../virtual_allocator.html',1,'Virtual allocator']]], - ['allocator_26',['Vulkan Memory Allocator',['../index.html',1,'']]], - ['and_20compatibility_27',['Versioning and compatibility',['../general_considerations.html#general_considerations_versioning_and_compatibility',1,'']]], - ['and_20invalidate_28',['Cache flush and invalidate',['../memory_mapping.html#memory_mapping_cache_control',1,'']]], - ['and_20preferred_20flags_29',['Required and preferred flags',['../choosing_memory_type.html#choosing_memory_type_required_preferred_flags',1,'']]], - ['and_20units_30',['Alignment and units',['../virtual_allocator.html#virtual_allocator_alignment_and_units',1,'']]], - ['and_20user_20data_31',['Allocation names and user data',['../allocation_annotation.html',1,'index']]], - ['apis_32',['Interop with other graphics APIs',['../other_api_interop.html',1,'index']]], - ['at_20once_33',['Free-at-once',['../custom_memory_pools.html#linear_algorithm_free_at_once',1,'']]] + ['alignment_5',['alignment',['../struct_vma_virtual_allocation_create_info.html#a9d19709872fc1904a105079e1c885821',1,'VmaVirtualAllocationCreateInfo::alignment'],['../other_api_interop.html#opengl_interop_custom_alignment',1,'Custom alignment']]], + ['alignment_20and_20units_6',['Alignment and units',['../virtual_allocator.html#virtual_allocator_alignment_and_units',1,'']]], + ['allocation_7',['allocation',['../group__group__alloc.html',1,'Memory allocation'],['../vk_khr_external_memory_win32.html#vk_khr_external_memory_win32_memory_allocation',1,'Memory allocation'],['../quick_start.html#quick_start_resource_allocation',1,'Resource allocation']]], + ['allocation_20algorithm_8',['Allocation algorithm',['../general_considerations.html#general_considerations_allocation_algorithm',1,'']]], + ['allocation_20algorithm_9',['Linear allocation algorithm',['../custom_memory_pools.html#linear_algorithm',1,'']]], + ['allocation_20callbacks_10',['Device memory allocation callbacks',['../configuration.html#allocation_callbacks',1,'']]], + ['allocation_20information_11',['Extended allocation information',['../other_api_interop.html#opengl_interop_extended_allocation_information',1,'']]], + ['allocation_20names_12',['Allocation names',['../allocation_annotation.html#allocation_names',1,'']]], + ['allocation_20names_20and_20user_20data_13',['Allocation names and user data',['../allocation_annotation.html',1,'index']]], + ['allocation_20parameters_14',['Allocation parameters',['../virtual_allocator.html#virtual_allocator_allocation_parameters',1,'']]], + ['allocation_20user_20data_15',['Allocation user data',['../allocation_annotation.html#allocation_user_data',1,'']]], + ['allocationbytes_16',['allocationBytes',['../struct_vma_statistics.html#a21db06eba3422f87a2b4b4703d879c16',1,'VmaStatistics']]], + ['allocationcount_17',['allocationCount',['../struct_vma_statistics.html#ab0ff76e50f58f9f54b6f265e5bf5dde2',1,'VmaStatistics']]], + ['allocationinfo_18',['allocationInfo',['../struct_vma_allocation_info2.html#a315218ac1206a05026c95e06a8bbd6d5',1,'VmaAllocationInfo2']]], + ['allocations_19',['allocations',['../choosing_memory_type.html#choosing_memory_type_dedicated_allocations',1,'Dedicated allocations'],['../virtual_allocator.html#virtual_allocator_making_virtual_allocations',1,'Making virtual allocations']]], + ['allocationsizemax_20',['allocationSizeMax',['../struct_vma_detailed_statistics.html#a06b2add24eed3449a66ff151979a0201',1,'VmaDetailedStatistics']]], + ['allocationsizemin_21',['allocationSizeMin',['../struct_vma_detailed_statistics.html#a6fb397e7487e10f2a52e241577d2a2b8',1,'VmaDetailedStatistics']]], + ['allocationsmoved_22',['allocationsMoved',['../struct_vma_defragmentation_stats.html#aefeabf130022008eadd75999478af3f9',1,'VmaDefragmentationStats']]], + ['allocator_23',['Vulkan Memory Allocator',['../index.html',1,'']]], + ['allocator_24',['allocator',['../configuration.html#custom_memory_allocator',1,'Custom host memory allocator'],['../group__group__virtual.html',1,'Virtual allocator'],['../virtual_allocator.html',1,'Virtual allocator']]], + ['and_20compatibility_25',['Versioning and compatibility',['../general_considerations.html#general_considerations_versioning_and_compatibility',1,'']]], + ['and_20invalidate_26',['Cache flush and invalidate',['../memory_mapping.html#memory_mapping_cache_control',1,'']]], + ['and_20preferred_20flags_27',['Required and preferred flags',['../choosing_memory_type.html#choosing_memory_type_required_preferred_flags',1,'']]], + ['and_20units_28',['Alignment and units',['../virtual_allocator.html#virtual_allocator_alignment_and_units',1,'']]], + ['and_20user_20data_29',['Allocation names and user data',['../allocation_annotation.html',1,'index']]], + ['apis_30',['Interop with other graphics APIs',['../other_api_interop.html',1,'index']]], + ['at_20once_31',['Free-at-once',['../custom_memory_pools.html#linear_algorithm_free_at_once',1,'']]] ]; diff --git a/docs/html/search/all_1.js b/docs/html/search/all_1.js index bdc116e..66092f1 100644 --- a/docs/html/search/all_1.js +++ b/docs/html/search/all_1.js @@ -4,11 +4,9 @@ var searchData= ['blockbytes_1',['blockBytes',['../struct_vma_statistics.html#a2afbc1c7aa8ad7bbb8de06215ba7e5c4',1,'VmaStatistics']]], ['blockcount_2',['blockCount',['../struct_vma_statistics.html#a309179d5853a6a7cd534df497ee43957',1,'VmaStatistics']]], ['blocksize_3',['blockSize',['../struct_vma_pool_create_info.html#aa4265160536cdb9be821b7686c16c676',1,'VmaPoolCreateInfo::blockSize'],['../struct_vma_allocation_info2.html#aae839de16b3a62cc42c69df378e8e3a2',1,'VmaAllocationInfo2::blockSize']]], - ['budget_4',['budget',['../struct_vma_budget.html#ab82e1d1754c2d210d0bdf90220bc6cdd',1,'VmaBudget']]], - ['budget_5',['Querying for budget',['../staying_within_budget.html#staying_within_budget_querying_for_budget',1,'']]], - ['budget_6',['Staying within budget',['../staying_within_budget.html',1,'index']]], - ['buffer_7',['Ring buffer',['../custom_memory_pools.html#linear_algorithm_ring_buffer',1,'']]], - ['buffer_20device_20address_8',['Enabling buffer device address',['../enabling_buffer_device_address.html',1,'index']]], - ['bytesfreed_9',['bytesFreed',['../struct_vma_defragmentation_stats.html#ab0cb9ac0dbc106c77e384ea676422f28',1,'VmaDefragmentationStats']]], - ['bytesmoved_10',['bytesMoved',['../struct_vma_defragmentation_stats.html#a36f9d5df2a10ba2a36b16e126d60572d',1,'VmaDefragmentationStats']]] + ['budget_4',['budget',['../struct_vma_budget.html#ab82e1d1754c2d210d0bdf90220bc6cdd',1,'VmaBudget::budget'],['../staying_within_budget.html#staying_within_budget_querying_for_budget',1,'Querying for budget'],['../staying_within_budget.html',1,'Staying within budget']]], + ['buffer_5',['Ring buffer',['../custom_memory_pools.html#linear_algorithm_ring_buffer',1,'']]], + ['buffer_20device_20address_6',['Enabling buffer device address',['../enabling_buffer_device_address.html',1,'index']]], + ['bytesfreed_7',['bytesFreed',['../struct_vma_defragmentation_stats.html#ab0cb9ac0dbc106c77e384ea676422f28',1,'VmaDefragmentationStats']]], + ['bytesmoved_8',['bytesMoved',['../struct_vma_defragmentation_stats.html#a36f9d5df2a10ba2a36b16e126d60572d',1,'VmaDefragmentationStats']]] ]; diff --git a/docs/html/search/all_11.js b/docs/html/search/all_11.js index 9b7390a..d5021c3 100644 --- a/docs/html/search/all_11.js +++ b/docs/html/search/all_11.js @@ -5,12 +5,12 @@ var searchData= ['setup_2',['Project setup',['../quick_start.html#quick_start_project_setup',1,'']]], ['size_3',['size',['../struct_vma_allocation_info.html#aac76d113a6a5ccbb09fea00fb25fd18f',1,'VmaAllocationInfo::size'],['../struct_vma_virtual_block_create_info.html#a670ab8c6a6e822f3c36781d79e8824e9',1,'VmaVirtualBlockCreateInfo::size'],['../struct_vma_virtual_allocation_create_info.html#aae08752b86817abd0d944c6025dc603e',1,'VmaVirtualAllocationCreateInfo::size'],['../struct_vma_virtual_allocation_info.html#afb6d6bd0a6813869ea0842048d40aa2b',1,'VmaVirtualAllocationInfo::size']]], ['srcallocation_4',['srcAllocation',['../struct_vma_defragmentation_move.html#a25aa1bb64efc507a49c6cbc50689f862',1,'VmaDefragmentationMove']]], - ['stack_5',['Stack',['../custom_memory_pools.html#linear_algorithm_double_stack',1,'Double stack'],['../custom_memory_pools.html#linear_algorithm_stack',1,'Stack']]], - ['staging_20copy_20for_20upload_6',['Staging copy for upload',['../usage_patterns.html#usage_patterns_staging_copy_upload',1,'']]], - ['start_7',['Quick start',['../quick_start.html',1,'index']]], - ['statistics_8',['Numeric statistics',['../statistics.html#statistics_numeric_statistics',1,'']]], - ['statistics_9',['statistics',['../struct_vma_detailed_statistics.html#a13efbdb35bd1291191d275f43e96d360',1,'VmaDetailedStatistics::statistics'],['../struct_vma_budget.html#a6d15ab3a798fd62d9efa3a1e1f83bf54',1,'VmaBudget::statistics']]], - ['statistics_10',['Statistics',['../group__group__stats.html',1,'Statistics'],['../statistics.html',1,'Statistics'],['../virtual_allocator.html#virtual_allocator_statistics',1,'Statistics']]], + ['stack_5',['Stack',['../custom_memory_pools.html#linear_algorithm_stack',1,'']]], + ['stack_6',['Double stack',['../custom_memory_pools.html#linear_algorithm_double_stack',1,'']]], + ['staging_20copy_20for_20upload_7',['Staging copy for upload',['../usage_patterns.html#usage_patterns_staging_copy_upload',1,'']]], + ['start_8',['Quick start',['../quick_start.html',1,'index']]], + ['statistics_9',['Statistics',['../group__group__stats.html',1,'Statistics'],['../statistics.html',1,'Statistics'],['../virtual_allocator.html#virtual_allocator_statistics',1,'Statistics']]], + ['statistics_10',['statistics',['../statistics.html#statistics_numeric_statistics',1,'Numeric statistics'],['../struct_vma_detailed_statistics.html#a13efbdb35bd1291191d275f43e96d360',1,'VmaDetailedStatistics::statistics'],['../struct_vma_budget.html#a6d15ab3a798fd62d9efa3a1e1f83bf54',1,'VmaBudget::statistics']]], ['staying_20within_20budget_11',['Staying within budget',['../staying_within_budget.html',1,'index']]], ['supported_12',['Features not supported',['../general_considerations.html#general_considerations_features_not_supported',1,'']]] ]; diff --git a/docs/html/search/all_13.js b/docs/html/search/all_13.js index 0281382..2ab89fc 100644 --- a/docs/html/search/all_13.js +++ b/docs/html/search/all_13.js @@ -6,12 +6,10 @@ var searchData= ['unusedrangesizemin_3',['unusedRangeSizeMin',['../struct_vma_detailed_statistics.html#a830eda847ed735d0e91da25cfcf797a4',1,'VmaDetailedStatistics']]], ['upload_4',['Staging copy for upload',['../usage_patterns.html#usage_patterns_staging_copy_upload',1,'']]], ['uploading_5',['Advanced data uploading',['../usage_patterns.html#usage_patterns_advanced_data_uploading',1,'']]], - ['usage_6',['Controlling memory usage',['../staying_within_budget.html#staying_within_budget_controlling_memory_usage',1,'']]], - ['usage_7',['usage',['../debugging_memory_usage.html',1,'Debugging incorrect memory usage'],['../struct_vma_budget.html#a84dd1ecca8b0110259eb206dbadb11f6',1,'VmaBudget::usage'],['../struct_vma_allocation_create_info.html#accb8b06b1f677d858cb9af20705fa910',1,'VmaAllocationCreateInfo::usage']]], - ['usage_8',['Usage',['../choosing_memory_type.html#choosing_memory_type_usage',1,'Usage'],['../vk_ext_memory_priority.html#vk_ext_memory_priority_usage',1,'Usage'],['../vk_amd_device_coherent_memory.html#vk_amd_device_coherent_memory_usage',1,'Usage'],['../enabling_buffer_device_address.html#enabling_buffer_device_address_usage',1,'Usage']]], - ['usage_20patterns_9',['Recommended usage patterns',['../usage_patterns.html',1,'index']]], - ['use_20cases_10',['Other use cases',['../usage_patterns.html#usage_patterns_other_use_cases',1,'']]], - ['use_20custom_20pools_11',['When not to use custom pools',['../custom_memory_pools.html#custom_memory_pools_when_not_use',1,'']]], - ['user_20data_12',['Allocation names and user data',['../allocation_annotation.html',1,'index']]], - ['user_20data_13',['Allocation user data',['../allocation_annotation.html#allocation_user_data',1,'']]] + ['usage_6',['Usage',['../choosing_memory_type.html#choosing_memory_type_usage',1,'Usage'],['../vk_ext_memory_priority.html#vk_ext_memory_priority_usage',1,'Usage'],['../vk_amd_device_coherent_memory.html#vk_amd_device_coherent_memory_usage',1,'Usage'],['../enabling_buffer_device_address.html#enabling_buffer_device_address_usage',1,'Usage']]], + ['usage_7',['usage',['../staying_within_budget.html#staying_within_budget_controlling_memory_usage',1,'Controlling memory usage'],['../debugging_memory_usage.html',1,'Debugging incorrect memory usage'],['../struct_vma_budget.html#a84dd1ecca8b0110259eb206dbadb11f6',1,'VmaBudget::usage'],['../struct_vma_allocation_create_info.html#accb8b06b1f677d858cb9af20705fa910',1,'VmaAllocationCreateInfo::usage']]], + ['usage_20patterns_8',['Recommended usage patterns',['../usage_patterns.html',1,'index']]], + ['use_20cases_9',['Other use cases',['../usage_patterns.html#usage_patterns_other_use_cases',1,'']]], + ['use_20custom_20pools_10',['When not to use custom pools',['../custom_memory_pools.html#custom_memory_pools_when_not_use',1,'']]], + ['user_20data_11',['user data',['../allocation_annotation.html',1,'Allocation names and user data'],['../allocation_annotation.html#allocation_user_data',1,'Allocation user data']]] ]; diff --git a/docs/html/search/all_14.js b/docs/html/search/all_14.js index fc32bf5..479caf4 100644 --- a/docs/html/search/all_14.js +++ b/docs/html/search/all_14.js @@ -9,205 +9,209 @@ var searchData= ['vk_5famd_5fdevice_5fcoherent_5fmemory_6',['VK_AMD_device_coherent_memory',['../vk_amd_device_coherent_memory.html',1,'index']]], ['vk_5fext_5fmemory_5fpriority_7',['VK_EXT_memory_priority',['../vk_ext_memory_priority.html',1,'index']]], ['vk_5fkhr_5fdedicated_5fallocation_8',['VK_KHR_dedicated_allocation',['../vk_khr_dedicated_allocation.html',1,'index']]], - ['vk_5fmem_5falloc_2eh_9',['vk_mem_alloc.h',['../vk__mem__alloc_8h.html',1,'']]], - ['vkallocatememory_10',['vkAllocateMemory',['../struct_vma_vulkan_functions.html#a2943bf99dfd784a0e8f599d987e22e6c',1,'VmaVulkanFunctions']]], - ['vkbindbuffermemory_11',['vkBindBufferMemory',['../struct_vma_vulkan_functions.html#a94fc4f3a605d9880bb3c0ba2c2fc80b2',1,'VmaVulkanFunctions']]], - ['vkbindbuffermemory2khr_12',['vkBindBufferMemory2KHR',['../struct_vma_vulkan_functions.html#a0c4907235aab9df2767b79836afa2dc9',1,'VmaVulkanFunctions']]], - ['vkbindimagememory_13',['vkBindImageMemory',['../struct_vma_vulkan_functions.html#a1338d96a128a5ade648b8d934907c637',1,'VmaVulkanFunctions']]], - ['vkbindimagememory2khr_14',['vkBindImageMemory2KHR',['../struct_vma_vulkan_functions.html#ab95aaa73ab8a3fe9fd3daaaec4e0b2bf',1,'VmaVulkanFunctions']]], - ['vkcmdcopybuffer_15',['vkCmdCopyBuffer',['../struct_vma_vulkan_functions.html#ae5c0db8c89a3b82593dc16aa6a49fa3a',1,'VmaVulkanFunctions']]], - ['vkcreatebuffer_16',['vkCreateBuffer',['../struct_vma_vulkan_functions.html#ae8084315a25006271a2edfc3a447519f',1,'VmaVulkanFunctions']]], - ['vkcreateimage_17',['vkCreateImage',['../struct_vma_vulkan_functions.html#a23ebe70be515b9b5010a1d691200e325',1,'VmaVulkanFunctions']]], - ['vkdestroybuffer_18',['vkDestroyBuffer',['../struct_vma_vulkan_functions.html#a7e054606faddb07f0e8556f3ed317d45',1,'VmaVulkanFunctions']]], - ['vkdestroyimage_19',['vkDestroyImage',['../struct_vma_vulkan_functions.html#a90b898227039b1dcb3520f6e91f09ffa',1,'VmaVulkanFunctions']]], - ['vkflushmappedmemoryranges_20',['vkFlushMappedMemoryRanges',['../struct_vma_vulkan_functions.html#a33c322f4c4ad2810f8a9c97a277572f9',1,'VmaVulkanFunctions']]], - ['vkfreememory_21',['vkFreeMemory',['../struct_vma_vulkan_functions.html#a4c658701778564d62034255b5dda91b4',1,'VmaVulkanFunctions']]], - ['vkgetbuffermemoryrequirements_22',['vkGetBufferMemoryRequirements',['../struct_vma_vulkan_functions.html#a5b92901df89a4194b0d12f6071d4d143',1,'VmaVulkanFunctions']]], - ['vkgetbuffermemoryrequirements2khr_23',['vkGetBufferMemoryRequirements2KHR',['../struct_vma_vulkan_functions.html#a9d8d1b05d2b1e7e1d9b27f6f585acf9c',1,'VmaVulkanFunctions']]], - ['vkgetdevicebuffermemoryrequirements_24',['vkGetDeviceBufferMemoryRequirements',['../struct_vma_vulkan_functions.html#ab25228053223e8a4dcd062574beed88d',1,'VmaVulkanFunctions']]], - ['vkgetdeviceimagememoryrequirements_25',['vkGetDeviceImageMemoryRequirements',['../struct_vma_vulkan_functions.html#a10a9bf098a46640fa0a75f1c5fd80b9a',1,'VmaVulkanFunctions']]], - ['vkgetdeviceprocaddr_26',['vkGetDeviceProcAddr',['../struct_vma_vulkan_functions.html#ac383ab9af127e5e136622fa4ebea9e57',1,'VmaVulkanFunctions']]], - ['vkgetimagememoryrequirements_27',['vkGetImageMemoryRequirements',['../struct_vma_vulkan_functions.html#a475f6f49f8debe4d10800592606d53f4',1,'VmaVulkanFunctions']]], - ['vkgetimagememoryrequirements2khr_28',['vkGetImageMemoryRequirements2KHR',['../struct_vma_vulkan_functions.html#a9cdcdc1e2b2ea7c571f7d27e30ba6875',1,'VmaVulkanFunctions']]], - ['vkgetinstanceprocaddr_29',['vkGetInstanceProcAddr',['../struct_vma_vulkan_functions.html#a3eafa102f5f8915f093f40675636b849',1,'VmaVulkanFunctions']]], - ['vkgetphysicaldevicememoryproperties_30',['vkGetPhysicalDeviceMemoryProperties',['../struct_vma_vulkan_functions.html#a60d25c33bba06bb8592e6875cbaa9830',1,'VmaVulkanFunctions']]], - ['vkgetphysicaldevicememoryproperties2khr_31',['vkGetPhysicalDeviceMemoryProperties2KHR',['../struct_vma_vulkan_functions.html#a0d992896e6ffcf92b9d7ea049fa5c445',1,'VmaVulkanFunctions']]], - ['vkgetphysicaldeviceproperties_32',['vkGetPhysicalDeviceProperties',['../struct_vma_vulkan_functions.html#a77b7a74082823e865dd6546623468f96',1,'VmaVulkanFunctions']]], - ['vkinvalidatemappedmemoryranges_33',['vkInvalidateMappedMemoryRanges',['../struct_vma_vulkan_functions.html#a5c1093bc32386a8060c37c9f282078a1',1,'VmaVulkanFunctions']]], - ['vkmapmemory_34',['vkMapMemory',['../struct_vma_vulkan_functions.html#ab5c1f38dea3a2cf00dc9eb4f57218c49',1,'VmaVulkanFunctions']]], - ['vkunmapmemory_35',['vkUnmapMemory',['../struct_vma_vulkan_functions.html#acc798589736f0becb317fc2196c1d8b9',1,'VmaVulkanFunctions']]], - ['vma_5fallocation_5fcreate_5fcan_5falias_5fbit_36',['VMA_ALLOCATION_CREATE_CAN_ALIAS_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597afb0ee060cd733aaa5e249704ff589ad6',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fdedicated_5fmemory_5fbit_37',['VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a3fc311d855c2ff53f1090ef5c722b38f',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fdont_5fbind_5fbit_38',['VMA_ALLOCATION_CREATE_DONT_BIND_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a2310568c62208af432724305fe29ccea',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fflag_5fbits_5fmax_5fenum_39',['VMA_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597ae5633ec569f4899cf8f29e7385b2f882',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fhost_5faccess_5fallow_5ftransfer_5finstead_5fbit_40',['VMA_ALLOCATION_CREATE_HOST_ACCESS_ALLOW_TRANSFER_INSTEAD_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a11337f96eacf34c1016c339eac165cad',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fhost_5faccess_5frandom_5fbit_41',['VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597add61238d98e20917b9a06c617763f492',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fhost_5faccess_5fsequential_5fwrite_5fbit_42',['VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a9be224df3bfc1cfa06203aed689a30c5',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fmapped_5fbit_43',['VMA_ALLOCATION_CREATE_MAPPED_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a11da372cc3a82931c5e5d6146cd9dd1f',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fnever_5fallocate_5fbit_44',['VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a89759603401014eb325eb22a3839f2ff',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fstrategy_5fbest_5ffit_5fbit_45',['VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a839826775c62319466441f86496f036d',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fstrategy_5ffirst_5ffit_5fbit_46',['VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a33eb2052674f3ad92386c714a65fb777',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fstrategy_5fmask_47',['VMA_ALLOCATION_CREATE_STRATEGY_MASK',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a8e16845d81ae3d27c47106d4770d5c7e',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fstrategy_5fmin_5fmemory_5fbit_48',['VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a8af1210cf591784afa026d94998f735d',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fstrategy_5fmin_5foffset_5fbit_49',['VMA_ALLOCATION_CREATE_STRATEGY_MIN_OFFSET_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a8099acedc0d04cdccaaddcfe37fd227d',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fstrategy_5fmin_5ftime_5fbit_50',['VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a0729e932b7ea170e3a128cad96c5cf6d',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fupper_5faddress_5fbit_51',['VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a42ba3a2d2c7117953210b7c3ef8da0df',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fuser_5fdata_5fcopy_5fstring_5fbit_52',['VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597aa6f24f821cd6a7c5e4a443f7bf59c520',1,'vk_mem_alloc.h']]], - ['vma_5fallocation_5fcreate_5fwithin_5fbudget_5fbit_53',['VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597ab8b1764f3e9022368e440c057783b92d',1,'vk_mem_alloc.h']]], - ['vma_5fallocator_5fcreate_5famd_5fdevice_5fcoherent_5fmemory_5fbit_54',['VMA_ALLOCATOR_CREATE_AMD_DEVICE_COHERENT_MEMORY_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7ca2acce4886d8078552efa38878413970f',1,'vk_mem_alloc.h']]], - ['vma_5fallocator_5fcreate_5fbuffer_5fdevice_5faddress_5fbit_55',['VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7ca5f1b28b0414319d1687e1f2b30ab0089',1,'vk_mem_alloc.h']]], - ['vma_5fallocator_5fcreate_5fext_5fmemory_5fbudget_5fbit_56',['VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7ca4d4687863f7bd4b418c6006dc04400b0',1,'vk_mem_alloc.h']]], - ['vma_5fallocator_5fcreate_5fext_5fmemory_5fpriority_5fbit_57',['VMA_ALLOCATOR_CREATE_EXT_MEMORY_PRIORITY_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7caffdd7a5169be3dbd7cbf6b3619e4f78a',1,'vk_mem_alloc.h']]], - ['vma_5fallocator_5fcreate_5fexternally_5fsynchronized_5fbit_58',['VMA_ALLOCATOR_CREATE_EXTERNALLY_SYNCHRONIZED_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7ca4816ddaed324ba110172ca608a20f29d',1,'vk_mem_alloc.h']]], - ['vma_5fallocator_5fcreate_5fflag_5fbits_5fmax_5fenum_59',['VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7cae4d5ad929caba5f23eb502b13bd5286c',1,'vk_mem_alloc.h']]], - ['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_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']]] + ['vk_5fkhr_5fexternal_5fmemory_5fwin32_9',['VK_KHR_external_memory_win32',['../vk_khr_external_memory_win32.html',1,'index']]], + ['vk_5fmem_5falloc_2eh_10',['vk_mem_alloc.h',['../vk__mem__alloc_8h.html',1,'']]], + ['vkallocatememory_11',['vkAllocateMemory',['../struct_vma_vulkan_functions.html#a2943bf99dfd784a0e8f599d987e22e6c',1,'VmaVulkanFunctions']]], + ['vkbindbuffermemory_12',['vkBindBufferMemory',['../struct_vma_vulkan_functions.html#a94fc4f3a605d9880bb3c0ba2c2fc80b2',1,'VmaVulkanFunctions']]], + ['vkbindbuffermemory2khr_13',['vkBindBufferMemory2KHR',['../struct_vma_vulkan_functions.html#a0c4907235aab9df2767b79836afa2dc9',1,'VmaVulkanFunctions']]], + ['vkbindimagememory_14',['vkBindImageMemory',['../struct_vma_vulkan_functions.html#a1338d96a128a5ade648b8d934907c637',1,'VmaVulkanFunctions']]], + ['vkbindimagememory2khr_15',['vkBindImageMemory2KHR',['../struct_vma_vulkan_functions.html#ab95aaa73ab8a3fe9fd3daaaec4e0b2bf',1,'VmaVulkanFunctions']]], + ['vkcmdcopybuffer_16',['vkCmdCopyBuffer',['../struct_vma_vulkan_functions.html#ae5c0db8c89a3b82593dc16aa6a49fa3a',1,'VmaVulkanFunctions']]], + ['vkcreatebuffer_17',['vkCreateBuffer',['../struct_vma_vulkan_functions.html#ae8084315a25006271a2edfc3a447519f',1,'VmaVulkanFunctions']]], + ['vkcreateimage_18',['vkCreateImage',['../struct_vma_vulkan_functions.html#a23ebe70be515b9b5010a1d691200e325',1,'VmaVulkanFunctions']]], + ['vkdestroybuffer_19',['vkDestroyBuffer',['../struct_vma_vulkan_functions.html#a7e054606faddb07f0e8556f3ed317d45',1,'VmaVulkanFunctions']]], + ['vkdestroyimage_20',['vkDestroyImage',['../struct_vma_vulkan_functions.html#a90b898227039b1dcb3520f6e91f09ffa',1,'VmaVulkanFunctions']]], + ['vkflushmappedmemoryranges_21',['vkFlushMappedMemoryRanges',['../struct_vma_vulkan_functions.html#a33c322f4c4ad2810f8a9c97a277572f9',1,'VmaVulkanFunctions']]], + ['vkfreememory_22',['vkFreeMemory',['../struct_vma_vulkan_functions.html#a4c658701778564d62034255b5dda91b4',1,'VmaVulkanFunctions']]], + ['vkgetbuffermemoryrequirements_23',['vkGetBufferMemoryRequirements',['../struct_vma_vulkan_functions.html#a5b92901df89a4194b0d12f6071d4d143',1,'VmaVulkanFunctions']]], + ['vkgetbuffermemoryrequirements2khr_24',['vkGetBufferMemoryRequirements2KHR',['../struct_vma_vulkan_functions.html#a9d8d1b05d2b1e7e1d9b27f6f585acf9c',1,'VmaVulkanFunctions']]], + ['vkgetdevicebuffermemoryrequirements_25',['vkGetDeviceBufferMemoryRequirements',['../struct_vma_vulkan_functions.html#ab25228053223e8a4dcd062574beed88d',1,'VmaVulkanFunctions']]], + ['vkgetdeviceimagememoryrequirements_26',['vkGetDeviceImageMemoryRequirements',['../struct_vma_vulkan_functions.html#a10a9bf098a46640fa0a75f1c5fd80b9a',1,'VmaVulkanFunctions']]], + ['vkgetdeviceprocaddr_27',['vkGetDeviceProcAddr',['../struct_vma_vulkan_functions.html#ac383ab9af127e5e136622fa4ebea9e57',1,'VmaVulkanFunctions']]], + ['vkgetimagememoryrequirements_28',['vkGetImageMemoryRequirements',['../struct_vma_vulkan_functions.html#a475f6f49f8debe4d10800592606d53f4',1,'VmaVulkanFunctions']]], + ['vkgetimagememoryrequirements2khr_29',['vkGetImageMemoryRequirements2KHR',['../struct_vma_vulkan_functions.html#a9cdcdc1e2b2ea7c571f7d27e30ba6875',1,'VmaVulkanFunctions']]], + ['vkgetinstanceprocaddr_30',['vkGetInstanceProcAddr',['../struct_vma_vulkan_functions.html#a3eafa102f5f8915f093f40675636b849',1,'VmaVulkanFunctions']]], + ['vkgetmemorywin32handlekhr_31',['vkGetMemoryWin32HandleKHR',['../struct_vma_vulkan_functions.html#af45d10a2b47971f4cf5bcacf1d331f86',1,'VmaVulkanFunctions']]], + ['vkgetphysicaldevicememoryproperties_32',['vkGetPhysicalDeviceMemoryProperties',['../struct_vma_vulkan_functions.html#a60d25c33bba06bb8592e6875cbaa9830',1,'VmaVulkanFunctions']]], + ['vkgetphysicaldevicememoryproperties2khr_33',['vkGetPhysicalDeviceMemoryProperties2KHR',['../struct_vma_vulkan_functions.html#a0d992896e6ffcf92b9d7ea049fa5c445',1,'VmaVulkanFunctions']]], + ['vkgetphysicaldeviceproperties_34',['vkGetPhysicalDeviceProperties',['../struct_vma_vulkan_functions.html#a77b7a74082823e865dd6546623468f96',1,'VmaVulkanFunctions']]], + ['vkinvalidatemappedmemoryranges_35',['vkInvalidateMappedMemoryRanges',['../struct_vma_vulkan_functions.html#a5c1093bc32386a8060c37c9f282078a1',1,'VmaVulkanFunctions']]], + ['vkmapmemory_36',['vkMapMemory',['../struct_vma_vulkan_functions.html#ab5c1f38dea3a2cf00dc9eb4f57218c49',1,'VmaVulkanFunctions']]], + ['vkunmapmemory_37',['vkUnmapMemory',['../struct_vma_vulkan_functions.html#acc798589736f0becb317fc2196c1d8b9',1,'VmaVulkanFunctions']]], + ['vma_5fallocation_5fcreate_5fcan_5falias_5fbit_38',['VMA_ALLOCATION_CREATE_CAN_ALIAS_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597afb0ee060cd733aaa5e249704ff589ad6',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fdedicated_5fmemory_5fbit_39',['VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a3fc311d855c2ff53f1090ef5c722b38f',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fdont_5fbind_5fbit_40',['VMA_ALLOCATION_CREATE_DONT_BIND_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a2310568c62208af432724305fe29ccea',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fflag_5fbits_5fmax_5fenum_41',['VMA_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597ae5633ec569f4899cf8f29e7385b2f882',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fhost_5faccess_5fallow_5ftransfer_5finstead_5fbit_42',['VMA_ALLOCATION_CREATE_HOST_ACCESS_ALLOW_TRANSFER_INSTEAD_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a11337f96eacf34c1016c339eac165cad',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fhost_5faccess_5frandom_5fbit_43',['VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597add61238d98e20917b9a06c617763f492',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fhost_5faccess_5fsequential_5fwrite_5fbit_44',['VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a9be224df3bfc1cfa06203aed689a30c5',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fmapped_5fbit_45',['VMA_ALLOCATION_CREATE_MAPPED_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a11da372cc3a82931c5e5d6146cd9dd1f',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fnever_5fallocate_5fbit_46',['VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a89759603401014eb325eb22a3839f2ff',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fstrategy_5fbest_5ffit_5fbit_47',['VMA_ALLOCATION_CREATE_STRATEGY_BEST_FIT_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a839826775c62319466441f86496f036d',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fstrategy_5ffirst_5ffit_5fbit_48',['VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a33eb2052674f3ad92386c714a65fb777',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fstrategy_5fmask_49',['VMA_ALLOCATION_CREATE_STRATEGY_MASK',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a8e16845d81ae3d27c47106d4770d5c7e',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fstrategy_5fmin_5fmemory_5fbit_50',['VMA_ALLOCATION_CREATE_STRATEGY_MIN_MEMORY_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a8af1210cf591784afa026d94998f735d',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fstrategy_5fmin_5foffset_5fbit_51',['VMA_ALLOCATION_CREATE_STRATEGY_MIN_OFFSET_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a8099acedc0d04cdccaaddcfe37fd227d',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fstrategy_5fmin_5ftime_5fbit_52',['VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a0729e932b7ea170e3a128cad96c5cf6d',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fupper_5faddress_5fbit_53',['VMA_ALLOCATION_CREATE_UPPER_ADDRESS_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597a42ba3a2d2c7117953210b7c3ef8da0df',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fuser_5fdata_5fcopy_5fstring_5fbit_54',['VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597aa6f24f821cd6a7c5e4a443f7bf59c520',1,'vk_mem_alloc.h']]], + ['vma_5fallocation_5fcreate_5fwithin_5fbudget_5fbit_55',['VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT',['../group__group__alloc.html#ggad9889c10c798b040d59c92f257cae597ab8b1764f3e9022368e440c057783b92d',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5famd_5fdevice_5fcoherent_5fmemory_5fbit_56',['VMA_ALLOCATOR_CREATE_AMD_DEVICE_COHERENT_MEMORY_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7ca2acce4886d8078552efa38878413970f',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5fbuffer_5fdevice_5faddress_5fbit_57',['VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7ca5f1b28b0414319d1687e1f2b30ab0089',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5fext_5fmemory_5fbudget_5fbit_58',['VMA_ALLOCATOR_CREATE_EXT_MEMORY_BUDGET_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7ca4d4687863f7bd4b418c6006dc04400b0',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5fext_5fmemory_5fpriority_5fbit_59',['VMA_ALLOCATOR_CREATE_EXT_MEMORY_PRIORITY_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7caffdd7a5169be3dbd7cbf6b3619e4f78a',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5fexternally_5fsynchronized_5fbit_60',['VMA_ALLOCATOR_CREATE_EXTERNALLY_SYNCHRONIZED_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7ca4816ddaed324ba110172ca608a20f29d',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5fflag_5fbits_5fmax_5fenum_61',['VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7cae4d5ad929caba5f23eb502b13bd5286c',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5fkhr_5fbind_5fmemory2_5fbit_62',['VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7ca8fb75bf07cd184ab903596295e863dee',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5fkhr_5fdedicated_5fallocation_5fbit_63',['VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7cace7da7cc6e71a625dfa763c55a597878',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5fkhr_5fexternal_5fmemory_5fwin32_5fbit_64',['VMA_ALLOCATOR_CREATE_KHR_EXTERNAL_MEMORY_WIN32_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7ca4897d1181a186e327f4dadd680ad00ac',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5fkhr_5fmaintenance4_5fbit_65',['VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE4_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7caa2566e7f75e19ae7ec9c4fa509fea5fb',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5fkhr_5fmaintenance5_5fbit_66',['VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE5_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7caca82d4ce40bdb59d3da52a539c21d6b8',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5falgorithm_5fbalanced_5fbit_67',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_BALANCED_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50caec35a4138111605a6ff32ca61aa871b6',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5falgorithm_5fextensive_5fbit_68',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_EXTENSIVE_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cae45a9469e5337731627758671741e412',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5falgorithm_5ffast_5fbit_69',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FAST_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50ca2e6469bcf5a094776ceb5d118263f04b',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5falgorithm_5ffull_5fbit_70',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FULL_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cafa162eac5be800bcdd4011427a71156d',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5falgorithm_5fmask_71',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_MASK',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cabcbbdb3bfd53c4c3ab4eaeb5fd4894e9',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5fbits_5fmax_5fenum_72',['VMA_DEFRAGMENTATION_FLAG_BITS_MAX_ENUM',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cab87ec33154803bfeb5ac2b379f1d6a97',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fmove_5foperation_5fcopy_73',['VMA_DEFRAGMENTATION_MOVE_OPERATION_COPY',['../group__group__alloc.html#ggada9e3861caf96f08894b0bcc160ec257ad4a06ac46c4cb1c67b0ebc1edfab9f18',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fmove_5foperation_5fdestroy_74',['VMA_DEFRAGMENTATION_MOVE_OPERATION_DESTROY',['../group__group__alloc.html#ggada9e3861caf96f08894b0bcc160ec257a9786f8492a9be2c03bd26395e352ab85',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fmove_5foperation_5fignore_75',['VMA_DEFRAGMENTATION_MOVE_OPERATION_IGNORE',['../group__group__alloc.html#ggada9e3861caf96f08894b0bcc160ec257ad25bc6f816b226b4fd5170e845f218d2',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fauto_76',['VMA_MEMORY_USAGE_AUTO',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca27cde9026a84d34d525777baa41fce6e',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fauto_5fprefer_5fdevice_77',['VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305ccae2adb696d6a73c18bb20c23666661327',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fauto_5fprefer_5fhost_78',['VMA_MEMORY_USAGE_AUTO_PREFER_HOST',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca9b422585242160b8ed3418310ee6664d',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fcpu_5fcopy_79',['VMA_MEMORY_USAGE_CPU_COPY',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca416a444d4d0fc20067c3f76f32ff2500',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fcpu_5fonly_80',['VMA_MEMORY_USAGE_CPU_ONLY',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca40bdf4cddeffeb12f43d45ca1286e0a5',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fcpu_5fto_5fgpu_81',['VMA_MEMORY_USAGE_CPU_TO_GPU',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca9066b52c5a7079bb74a69aaf8b92ff67',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fgpu_5flazily_5fallocated_82',['VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca835333d9072db63a653818030e17614d',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fgpu_5fonly_83',['VMA_MEMORY_USAGE_GPU_ONLY',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fgpu_5fto_5fcpu_84',['VMA_MEMORY_USAGE_GPU_TO_CPU',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca7b586d2fdaf82a463b58f581ed72be27',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fmax_5fenum_85',['VMA_MEMORY_USAGE_MAX_ENUM',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca091e69437ef693e8d0d287f1c719ba6e',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5funknown_86',['VMA_MEMORY_USAGE_UNKNOWN',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305ccaf50d27e34e0925cf3a63db8c839121dd',1,'vk_mem_alloc.h']]], + ['vma_5fpool_5fcreate_5falgorithm_5fmask_87',['VMA_POOL_CREATE_ALGORITHM_MASK',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7af4d270f8f42517a0f70037ceb6ac1d9c',1,'vk_mem_alloc.h']]], + ['vma_5fpool_5fcreate_5fflag_5fbits_5fmax_5fenum_88',['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_89',['VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7a9f1a499508a8edb4e8ba40aa0290a3d2',1,'vk_mem_alloc.h']]], + ['vma_5fpool_5fcreate_5flinear_5falgorithm_5fbit_90',['VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7a13c8a444197c67866be9cb05599fc726',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fflag_5fbits_5fmax_5fenum_91',['VMA_VIRTUAL_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ac1163c03ea837fa663462dc286d6a1a9',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmask_92',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MASK',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ac5b5e45c335368d18df59c9f27df17e3',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmin_5fmemory_5fbit_93',['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_94',['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_95',['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_96',['VMA_VIRTUAL_ALLOCATION_CREATE_UPPER_ADDRESS_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6a9524a329a55b5ec390d57d90b67ad78e',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fblock_5fcreate_5falgorithm_5fmask_97',['VMA_VIRTUAL_BLOCK_CREATE_ALGORITHM_MASK',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaaf9487467136e1a9e371894dc3a7c4844',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fblock_5fcreate_5fflag_5fbits_5fmax_5fenum_98',['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_99',['VMA_VIRTUAL_BLOCK_CREATE_LINEAR_ALGORITHM_BIT',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaae6423e2fa2f3c9211b21c819e3f10f96',1,'vk_mem_alloc.h']]], + ['vmaallocatememory_100',['vmaAllocateMemory',['../group__group__alloc.html#gabf28077dbf82d0908b8acbe8ee8dd9b8',1,'vk_mem_alloc.h']]], + ['vmaallocatememoryforbuffer_101',['vmaAllocateMemoryForBuffer',['../group__group__alloc.html#ga7fdf64415b6c3d83c454f28d2c53df7b',1,'vk_mem_alloc.h']]], + ['vmaallocatememoryforimage_102',['vmaAllocateMemoryForImage',['../group__group__alloc.html#ga0faa3f9e5fb233d29d1e00390650febb',1,'vk_mem_alloc.h']]], + ['vmaallocatememorypages_103',['vmaAllocateMemoryPages',['../group__group__alloc.html#gad37e82e492b3de38fc3f4cffd9ad0ae1',1,'vk_mem_alloc.h']]], + ['vmaallocation_104',['VmaAllocation',['../struct_vma_allocation.html',1,'']]], + ['vmaallocationcreateflagbits_105',['VmaAllocationCreateFlagBits',['../group__group__alloc.html#gad9889c10c798b040d59c92f257cae597',1,'VmaAllocationCreateFlagBits: vk_mem_alloc.h'],['../group__group__alloc.html#ga4fceecc301f4064dc808d3cd6c038941',1,'VmaAllocationCreateFlagBits: vk_mem_alloc.h']]], + ['vmaallocationcreateflags_106',['VmaAllocationCreateFlags',['../group__group__alloc.html#ga5225e5e11f8376f6a31a1791f3d6e817',1,'vk_mem_alloc.h']]], + ['vmaallocationcreateinfo_107',['VmaAllocationCreateInfo',['../struct_vma_allocation_create_info.html',1,'VmaAllocationCreateInfo'],['../group__group__alloc.html#ga3bf110892ea2fb4649fedb68488d026a',1,'VmaAllocationCreateInfo: vk_mem_alloc.h']]], + ['vmaallocationinfo_108',['VmaAllocationInfo',['../struct_vma_allocation_info.html',1,'VmaAllocationInfo'],['../group__group__alloc.html#ga1cf7774606721026a68aabe3af2e5b50',1,'VmaAllocationInfo: vk_mem_alloc.h']]], + ['vmaallocationinfo2_109',['VmaAllocationInfo2',['../struct_vma_allocation_info2.html',1,'VmaAllocationInfo2'],['../group__group__alloc.html#ga25ede29f830f326b8572a18ce879bf64',1,'VmaAllocationInfo2: vk_mem_alloc.h']]], + ['vmaallocator_110',['VmaAllocator',['../struct_vma_allocator.html',1,'']]], + ['vmaallocatorcreateflagbits_111',['VmaAllocatorCreateFlagBits',['../group__group__init.html#ga4f87c9100d154a65a4ad495f7763cf7c',1,'VmaAllocatorCreateFlagBits: vk_mem_alloc.h'],['../group__group__init.html#gafd73b95e737ee7e76f827cb5472f559f',1,'VmaAllocatorCreateFlagBits: vk_mem_alloc.h']]], + ['vmaallocatorcreateflags_112',['VmaAllocatorCreateFlags',['../group__group__init.html#gacfe6863e160722c2c1bbcf7573fddc4d',1,'vk_mem_alloc.h']]], + ['vmaallocatorcreateinfo_113',['VmaAllocatorCreateInfo',['../struct_vma_allocator_create_info.html',1,'VmaAllocatorCreateInfo'],['../group__group__init.html#gaad9652301d33759b83e52d4f3605a14a',1,'VmaAllocatorCreateInfo: vk_mem_alloc.h']]], + ['vmaallocatorinfo_114',['VmaAllocatorInfo',['../struct_vma_allocator_info.html',1,'VmaAllocatorInfo'],['../group__group__init.html#ga1988031b0223fdbd564250fa1edd942c',1,'VmaAllocatorInfo: vk_mem_alloc.h']]], + ['vmabegindefragmentation_115',['vmaBeginDefragmentation',['../group__group__alloc.html#gac3335566858b45541fa9c0d7a6bbb57e',1,'vk_mem_alloc.h']]], + ['vmabegindefragmentationpass_116',['vmaBeginDefragmentationPass',['../group__group__alloc.html#ga980d7da2ce3b1fd5c8b8476bc362cc00',1,'vk_mem_alloc.h']]], + ['vmabindbuffermemory_117',['vmaBindBufferMemory',['../group__group__alloc.html#ga6b0929b914b60cf2d45cac4bf3547470',1,'vk_mem_alloc.h']]], + ['vmabindbuffermemory2_118',['vmaBindBufferMemory2',['../group__group__alloc.html#ga861f4f27189a7d11ab9d9eedc825cb6b',1,'vk_mem_alloc.h']]], + ['vmabindimagememory_119',['vmaBindImageMemory',['../group__group__alloc.html#ga3d3ca45799923aa5d138e9e5f9eb2da5',1,'vk_mem_alloc.h']]], + ['vmabindimagememory2_120',['vmaBindImageMemory2',['../group__group__alloc.html#ga5f3502dd7d38b53fb1533ea3921d038d',1,'vk_mem_alloc.h']]], + ['vmabudget_121',['VmaBudget',['../struct_vma_budget.html',1,'VmaBudget'],['../group__group__stats.html#gaa078667e71b1ef24e87a6a30d128381d',1,'VmaBudget: vk_mem_alloc.h']]], + ['vmabuildstatsstring_122',['vmaBuildStatsString',['../group__group__stats.html#gaa4fee7eb5253377599ef4fd38c93c2a0',1,'vk_mem_alloc.h']]], + ['vmabuildvirtualblockstatsstring_123',['vmaBuildVirtualBlockStatsString',['../group__group__stats.html#ga52d810e1222c592e5d80556ad005f1e6',1,'vk_mem_alloc.h']]], + ['vmacalculatepoolstatistics_124',['vmaCalculatePoolStatistics',['../group__group__stats.html#ga50ba0eb25d2b363b792be4645ca7a380',1,'vk_mem_alloc.h']]], + ['vmacalculatestatistics_125',['vmaCalculateStatistics',['../group__group__stats.html#ga36f3484de7aa6cd6edc4de9edfa0ff59',1,'vk_mem_alloc.h']]], + ['vmacalculatevirtualblockstatistics_126',['vmaCalculateVirtualBlockStatistics',['../group__group__virtual.html#ga93c5741bca44b43e5b849cacbd616098',1,'vk_mem_alloc.h']]], + ['vmacheckcorruption_127',['vmaCheckCorruption',['../group__group__alloc.html#ga49329a7f030dafcf82f7b73334c22e98',1,'vk_mem_alloc.h']]], + ['vmacheckpoolcorruption_128',['vmaCheckPoolCorruption',['../group__group__alloc.html#gad535935619c7a549bf837e1bb0068f89',1,'vk_mem_alloc.h']]], + ['vmaclearvirtualblock_129',['vmaClearVirtualBlock',['../group__group__virtual.html#ga5eda6f55919fb05bd2f56a112590c571',1,'vk_mem_alloc.h']]], + ['vmacopyallocationtomemory_130',['vmaCopyAllocationToMemory',['../group__group__alloc.html#gaac883dd38863944335071213b9ae8477',1,'vk_mem_alloc.h']]], + ['vmacopymemorytoallocation_131',['vmaCopyMemoryToAllocation',['../group__group__alloc.html#ga11731ec58a3a43a22bb925e0780ef405',1,'vk_mem_alloc.h']]], + ['vmacreatealiasingbuffer_132',['vmaCreateAliasingBuffer',['../group__group__alloc.html#ga60d5d4803e3c82505a2bfddb929adb03',1,'vk_mem_alloc.h']]], + ['vmacreatealiasingbuffer2_133',['vmaCreateAliasingBuffer2',['../group__group__alloc.html#gaf0cf014344213e117bd9f9cf5f928122',1,'vk_mem_alloc.h']]], + ['vmacreatealiasingimage_134',['vmaCreateAliasingImage',['../group__group__alloc.html#gaebc4db1f94b53dba2338b4c0fd80d0dc',1,'vk_mem_alloc.h']]], + ['vmacreatealiasingimage2_135',['vmaCreateAliasingImage2',['../group__group__alloc.html#ga69ac829f5bb0737449fa92c2d971f1bb',1,'vk_mem_alloc.h']]], + ['vmacreateallocator_136',['vmaCreateAllocator',['../group__group__init.html#ga200692051ddb34240248234f5f4c17bb',1,'vk_mem_alloc.h']]], + ['vmacreatebuffer_137',['vmaCreateBuffer',['../group__group__alloc.html#gac72ee55598617e8eecca384e746bab51',1,'vk_mem_alloc.h']]], + ['vmacreatebufferwithalignment_138',['vmaCreateBufferWithAlignment',['../group__group__alloc.html#gaa06a690013a0d01e60894ac378083834',1,'vk_mem_alloc.h']]], + ['vmacreateimage_139',['vmaCreateImage',['../group__group__alloc.html#ga02a94f25679275851a53e82eacbcfc73',1,'vk_mem_alloc.h']]], + ['vmacreatepool_140',['vmaCreatePool',['../group__group__alloc.html#ga5c8770ded7c59c8caac6de0c2cb00b50',1,'vk_mem_alloc.h']]], + ['vmacreatevirtualblock_141',['vmaCreateVirtualBlock',['../group__group__virtual.html#gab585754076877265fdae33e5c40ef13b',1,'vk_mem_alloc.h']]], + ['vmadefragmentationcontext_142',['VmaDefragmentationContext',['../struct_vma_defragmentation_context.html',1,'']]], + ['vmadefragmentationflagbits_143',['VmaDefragmentationFlagBits',['../group__group__alloc.html#ga6552a65b71d16f378c6994b3ceaef50c',1,'VmaDefragmentationFlagBits: vk_mem_alloc.h'],['../group__group__alloc.html#ga13415cc0b443353a7b5abda300b833fc',1,'VmaDefragmentationFlagBits: vk_mem_alloc.h']]], + ['vmadefragmentationflags_144',['VmaDefragmentationFlags',['../group__group__alloc.html#ga88a77cef37e5d3c4fc9eb328885d048d',1,'vk_mem_alloc.h']]], + ['vmadefragmentationinfo_145',['VmaDefragmentationInfo',['../struct_vma_defragmentation_info.html',1,'VmaDefragmentationInfo'],['../group__group__alloc.html#ga2bf47f96bf92bed2a49461bd9af3acfa',1,'VmaDefragmentationInfo: vk_mem_alloc.h']]], + ['vmadefragmentationmove_146',['VmaDefragmentationMove',['../struct_vma_defragmentation_move.html',1,'VmaDefragmentationMove'],['../group__group__alloc.html#ga563f4b43d3e31ed603d80cacc9ba8589',1,'VmaDefragmentationMove: vk_mem_alloc.h']]], + ['vmadefragmentationmoveoperation_147',['VmaDefragmentationMoveOperation',['../group__group__alloc.html#gada9e3861caf96f08894b0bcc160ec257',1,'VmaDefragmentationMoveOperation: vk_mem_alloc.h'],['../group__group__alloc.html#ga2ea666deeb3c2c74806a097e27cdb4a1',1,'VmaDefragmentationMoveOperation: vk_mem_alloc.h']]], + ['vmadefragmentationpassmoveinfo_148',['VmaDefragmentationPassMoveInfo',['../struct_vma_defragmentation_pass_move_info.html',1,'VmaDefragmentationPassMoveInfo'],['../group__group__alloc.html#gad6799e8e2b1527abfc84d33bc44aeaf5',1,'VmaDefragmentationPassMoveInfo: vk_mem_alloc.h']]], + ['vmadefragmentationstats_149',['VmaDefragmentationStats',['../struct_vma_defragmentation_stats.html',1,'VmaDefragmentationStats'],['../group__group__alloc.html#gad94034192259c2e34a4d1c5e27810403',1,'VmaDefragmentationStats: vk_mem_alloc.h']]], + ['vmadestroyallocator_150',['vmaDestroyAllocator',['../group__group__init.html#gaa8d164061c88f22fb1fd3c8f3534bc1d',1,'vk_mem_alloc.h']]], + ['vmadestroybuffer_151',['vmaDestroyBuffer',['../group__group__alloc.html#ga0d9f4e4ba5bf9aab1f1c746387753d77',1,'vk_mem_alloc.h']]], + ['vmadestroyimage_152',['vmaDestroyImage',['../group__group__alloc.html#gae50d2cb3b4a3bfd4dd40987234e50e7e',1,'vk_mem_alloc.h']]], + ['vmadestroypool_153',['vmaDestroyPool',['../group__group__alloc.html#ga5485779c8f1948238fc4e92232fa65e1',1,'vk_mem_alloc.h']]], + ['vmadestroyvirtualblock_154',['vmaDestroyVirtualBlock',['../group__group__virtual.html#ga3795f7783ae2c182cede067d656f66a5',1,'vk_mem_alloc.h']]], + ['vmadetailedstatistics_155',['VmaDetailedStatistics',['../struct_vma_detailed_statistics.html',1,'VmaDetailedStatistics'],['../group__group__stats.html#ga9ab0c535a6ca655dc63b8609ab4b8394',1,'VmaDetailedStatistics: vk_mem_alloc.h']]], + ['vmadevicememorycallbacks_156',['VmaDeviceMemoryCallbacks',['../struct_vma_device_memory_callbacks.html',1,'VmaDeviceMemoryCallbacks'],['../group__group__init.html#ga77692d3c8770ea8882d573206bd27b2b',1,'VmaDeviceMemoryCallbacks: vk_mem_alloc.h']]], + ['vmaenddefragmentation_157',['vmaEndDefragmentation',['../group__group__alloc.html#ga59f01ca3d53d50b7cca9b442b77a3e87',1,'vk_mem_alloc.h']]], + ['vmaenddefragmentationpass_158',['vmaEndDefragmentationPass',['../group__group__alloc.html#gaded05a445742a00718ee766144c5c226',1,'vk_mem_alloc.h']]], + ['vmafindmemorytypeindex_159',['vmaFindMemoryTypeIndex',['../group__group__alloc.html#gaef15a94b58fbcb0fe706d5720e84a74a',1,'vk_mem_alloc.h']]], + ['vmafindmemorytypeindexforbufferinfo_160',['vmaFindMemoryTypeIndexForBufferInfo',['../group__group__alloc.html#gae790ab9ffaf7667fb8f62523e6897888',1,'vk_mem_alloc.h']]], + ['vmafindmemorytypeindexforimageinfo_161',['vmaFindMemoryTypeIndexForImageInfo',['../group__group__alloc.html#ga088da83d8eaf3ce9056d9ea0b981d472',1,'vk_mem_alloc.h']]], + ['vmaflushallocation_162',['vmaFlushAllocation',['../group__group__alloc.html#ga30c37c1eec6025f397be41644f48490f',1,'vk_mem_alloc.h']]], + ['vmaflushallocations_163',['vmaFlushAllocations',['../group__group__alloc.html#gac3dd00da721875ed99fa8a881922bdfc',1,'vk_mem_alloc.h']]], + ['vmafreememory_164',['vmaFreeMemory',['../group__group__alloc.html#ga5fea5518972ae9094b1526cbcb19b05f',1,'vk_mem_alloc.h']]], + ['vmafreememorypages_165',['vmaFreeMemoryPages',['../group__group__alloc.html#ga834b1e4aef395c0a1d56a28e69a4a17e',1,'vk_mem_alloc.h']]], + ['vmafreestatsstring_166',['vmaFreeStatsString',['../group__group__stats.html#ga3104eb30d8122c84dd8541063f145288',1,'vk_mem_alloc.h']]], + ['vmafreevirtualblockstatsstring_167',['vmaFreeVirtualBlockStatsString',['../group__group__stats.html#ga47fb8d8aa69df4a7c23a9719b4080623',1,'vk_mem_alloc.h']]], + ['vmagetallocationinfo_168',['vmaGetAllocationInfo',['../group__group__alloc.html#ga86dd08aba8633bfa4ad0df2e76481d8b',1,'vk_mem_alloc.h']]], + ['vmagetallocationinfo2_169',['vmaGetAllocationInfo2',['../group__group__alloc.html#ga1405cf3eae2fd1305d645879173031a0',1,'vk_mem_alloc.h']]], + ['vmagetallocationmemoryproperties_170',['vmaGetAllocationMemoryProperties',['../group__group__alloc.html#ga571e87dd38e552249b56b1b0b982fad1',1,'vk_mem_alloc.h']]], + ['vmagetallocatorinfo_171',['vmaGetAllocatorInfo',['../group__group__init.html#gafa02231a791b37255720d566a52683e7',1,'vk_mem_alloc.h']]], + ['vmagetheapbudgets_172',['vmaGetHeapBudgets',['../group__group__stats.html#ga9f88db9d46a432c0ad7278cecbc5eaa7',1,'vk_mem_alloc.h']]], + ['vmagetmemoryproperties_173',['vmaGetMemoryProperties',['../group__group__init.html#gab88db292a17974f911182543fda52d19',1,'vk_mem_alloc.h']]], + ['vmagetmemorytypeproperties_174',['vmaGetMemoryTypeProperties',['../group__group__init.html#ga8701444752eb5de4464adb5a2b514bca',1,'vk_mem_alloc.h']]], + ['vmagetmemorywin32handle_175',['vmaGetMemoryWin32Handle',['../group__group__alloc.html#ga8d327b7458d8cf426b84b5efba9bb9bf',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']]] ]; diff --git a/docs/html/search/all_15.js b/docs/html/search/all_15.js index abb4d81..f7f2133 100644 --- a/docs/html/search/all_15.js +++ b/docs/html/search/all_15.js @@ -2,6 +2,7 @@ var searchData= [ ['warnings_0',['Validation layer warnings',['../general_considerations.html#general_considerations_validation_layer_warnings',1,'']]], ['when_20not_20to_20use_20custom_20pools_1',['When not to use custom pools',['../custom_memory_pools.html#custom_memory_pools_when_not_use',1,'']]], - ['with_20other_20graphics_20apis_2',['Interop with other graphics APIs',['../other_api_interop.html',1,'index']]], - ['within_20budget_3',['Staying within budget',['../staying_within_budget.html',1,'index']]] + ['win32_20handle_2',['Exporting Win32 handle',['../vk_khr_external_memory_win32.html#vk_khr_external_memory_win32_exporting_win32_handle',1,'']]], + ['with_20other_20graphics_20apis_3',['Interop with other graphics APIs',['../other_api_interop.html',1,'index']]], + ['within_20budget_4',['Staying within budget',['../staying_within_budget.html',1,'index']]] ]; diff --git a/docs/html/search/all_2.js b/docs/html/search/all_2.js index b7bfc59..0a562c6 100644 --- a/docs/html/search/all_2.js +++ b/docs/html/search/all_2.js @@ -8,15 +8,14 @@ var searchData= ['compatibility_5',['Versioning and compatibility',['../general_considerations.html#general_considerations_versioning_and_compatibility',1,'']]], ['configuration_6',['Configuration',['../configuration.html',1,'index']]], ['configuration_20options_7',['Other configuration options',['../quick_start.html#quick_start_initialization_other_config',1,'']]], - ['considerations_8',['Additional considerations',['../virtual_allocator.html#virtual_allocator_additional_considerations',1,'']]], - ['considerations_9',['General considerations',['../general_considerations.html',1,'index']]], - ['controlling_20memory_20usage_10',['Controlling memory usage',['../staying_within_budget.html#staying_within_budget_controlling_memory_usage',1,'']]], - ['copy_20for_20upload_11',['Staging copy for upload',['../usage_patterns.html#usage_patterns_staging_copy_upload',1,'']]], - ['copy_20functions_12',['Copy functions',['../memory_mapping.html#memory_mapping_copy_functions',1,'']]], - ['corruption_20detection_13',['Corruption detection',['../debugging_memory_usage.html#debugging_memory_usage_corruption_detection',1,'']]], - ['creating_20virtual_20block_14',['Creating virtual block',['../virtual_allocator.html#virtual_allocator_creating_virtual_block',1,'']]], - ['custom_20alignment_15',['Custom alignment',['../other_api_interop.html#opengl_interop_custom_alignment',1,'']]], - ['custom_20host_20memory_20allocator_16',['Custom host memory allocator',['../configuration.html#custom_memory_allocator',1,'']]], - ['custom_20memory_20pools_17',['Custom memory pools',['../custom_memory_pools.html',1,'Custom memory pools'],['../choosing_memory_type.html#choosing_memory_type_custom_memory_pools',1,'Custom memory pools']]], - ['custom_20pools_18',['When not to use custom pools',['../custom_memory_pools.html#custom_memory_pools_when_not_use',1,'']]] + ['considerations_8',['considerations',['../virtual_allocator.html#virtual_allocator_additional_considerations',1,'Additional considerations'],['../general_considerations.html',1,'General considerations']]], + ['controlling_20memory_20usage_9',['Controlling memory usage',['../staying_within_budget.html#staying_within_budget_controlling_memory_usage',1,'']]], + ['copy_20for_20upload_10',['Staging copy for upload',['../usage_patterns.html#usage_patterns_staging_copy_upload',1,'']]], + ['copy_20functions_11',['Copy functions',['../memory_mapping.html#memory_mapping_copy_functions',1,'']]], + ['corruption_20detection_12',['Corruption detection',['../debugging_memory_usage.html#debugging_memory_usage_corruption_detection',1,'']]], + ['creating_20virtual_20block_13',['Creating virtual block',['../virtual_allocator.html#virtual_allocator_creating_virtual_block',1,'']]], + ['custom_20alignment_14',['Custom alignment',['../other_api_interop.html#opengl_interop_custom_alignment',1,'']]], + ['custom_20host_20memory_20allocator_15',['Custom host memory allocator',['../configuration.html#custom_memory_allocator',1,'']]], + ['custom_20memory_20pools_16',['Custom memory pools',['../custom_memory_pools.html',1,'Custom memory pools'],['../choosing_memory_type.html#choosing_memory_type_custom_memory_pools',1,'Custom memory pools']]], + ['custom_20pools_17',['When not to use custom pools',['../custom_memory_pools.html#custom_memory_pools_when_not_use',1,'']]] ]; diff --git a/docs/html/search/all_3.js b/docs/html/search/all_3.js index 26ad9b6..b5fcb09 100644 --- a/docs/html/search/all_3.js +++ b/docs/html/search/all_3.js @@ -1,23 +1,22 @@ var searchData= [ - ['data_0',['Allocation names and user data',['../allocation_annotation.html',1,'index']]], - ['data_1',['Allocation user data',['../allocation_annotation.html#allocation_user_data',1,'']]], - ['data_20uploading_2',['Advanced data uploading',['../usage_patterns.html#usage_patterns_advanced_data_uploading',1,'']]], - ['deallocation_3',['Deallocation',['../virtual_allocator.html#virtual_allocator_deallocation',1,'']]], - ['debugging_20incorrect_20memory_20usage_4',['Debugging incorrect memory usage',['../debugging_memory_usage.html',1,'index']]], - ['dedicated_20allocations_5',['Dedicated allocations',['../choosing_memory_type.html#choosing_memory_type_dedicated_allocations',1,'']]], - ['dedicatedmemory_6',['dedicatedMemory',['../struct_vma_allocation_info2.html#a7cf87251bd155d00ac6c6aaf4fc10448',1,'VmaAllocationInfo2']]], - ['defragmentation_7',['Defragmentation',['../defragmentation.html',1,'index']]], - ['deprecated_20list_8',['Deprecated List',['../deprecated.html',1,'']]], - ['detection_9',['Corruption detection',['../debugging_memory_usage.html#debugging_memory_usage_corruption_detection',1,'']]], - ['detection_20features_10',['Leak detection features',['../debugging_memory_usage.html#debugging_memory_usage_leak_detection',1,'']]], - ['device_11',['device',['../struct_vma_allocator_create_info.html#ad924ddd77b04039c88d0c09b0ffcd500',1,'VmaAllocatorCreateInfo::device'],['../struct_vma_allocator_info.html#a012b4c485bf3b0ea8921352c5ee0c357',1,'VmaAllocatorInfo::device']]], - ['device_20address_12',['Enabling buffer device address',['../enabling_buffer_device_address.html',1,'index']]], - ['device_20heap_20memory_20limit_13',['Device heap memory limit',['../configuration.html#heap_memory_limit',1,'']]], - ['device_20memory_20allocation_20callbacks_14',['Device memory allocation callbacks',['../configuration.html#allocation_callbacks',1,'']]], - ['devicememory_15',['deviceMemory',['../struct_vma_allocation_info.html#ae0bfb7dfdf79a76ffefc9a94677a2f67',1,'VmaAllocationInfo']]], - ['devicememoryblocksfreed_16',['deviceMemoryBlocksFreed',['../struct_vma_defragmentation_stats.html#a0113f1877904a5d1ee8f409216ff276b',1,'VmaDefragmentationStats']]], - ['double_20stack_17',['Double stack',['../custom_memory_pools.html#linear_algorithm_double_stack',1,'']]], - ['dsttmpallocation_18',['dstTmpAllocation',['../struct_vma_defragmentation_move.html#ab65b106adf209acd7313296d1075300e',1,'VmaDefragmentationMove']]], - ['dump_19',['JSON dump',['../statistics.html#statistics_json_dump',1,'']]] + ['data_0',['data',['../allocation_annotation.html',1,'Allocation names and user data'],['../allocation_annotation.html#allocation_user_data',1,'Allocation user data']]], + ['data_20uploading_1',['Advanced data uploading',['../usage_patterns.html#usage_patterns_advanced_data_uploading',1,'']]], + ['deallocation_2',['Deallocation',['../virtual_allocator.html#virtual_allocator_deallocation',1,'']]], + ['debugging_20incorrect_20memory_20usage_3',['Debugging incorrect memory usage',['../debugging_memory_usage.html',1,'index']]], + ['dedicated_20allocations_4',['Dedicated allocations',['../choosing_memory_type.html#choosing_memory_type_dedicated_allocations',1,'']]], + ['dedicatedmemory_5',['dedicatedMemory',['../struct_vma_allocation_info2.html#a7cf87251bd155d00ac6c6aaf4fc10448',1,'VmaAllocationInfo2']]], + ['defragmentation_6',['Defragmentation',['../defragmentation.html',1,'index']]], + ['deprecated_20list_7',['Deprecated List',['../deprecated.html',1,'']]], + ['detection_8',['Corruption detection',['../debugging_memory_usage.html#debugging_memory_usage_corruption_detection',1,'']]], + ['detection_20features_9',['Leak detection features',['../debugging_memory_usage.html#debugging_memory_usage_leak_detection',1,'']]], + ['device_10',['device',['../struct_vma_allocator_create_info.html#ad924ddd77b04039c88d0c09b0ffcd500',1,'VmaAllocatorCreateInfo::device'],['../struct_vma_allocator_info.html#a012b4c485bf3b0ea8921352c5ee0c357',1,'VmaAllocatorInfo::device']]], + ['device_20address_11',['Enabling buffer device address',['../enabling_buffer_device_address.html',1,'index']]], + ['device_20heap_20memory_20limit_12',['Device heap memory limit',['../configuration.html#heap_memory_limit',1,'']]], + ['device_20memory_20allocation_20callbacks_13',['Device memory allocation callbacks',['../configuration.html#allocation_callbacks',1,'']]], + ['devicememory_14',['deviceMemory',['../struct_vma_allocation_info.html#ae0bfb7dfdf79a76ffefc9a94677a2f67',1,'VmaAllocationInfo']]], + ['devicememoryblocksfreed_15',['deviceMemoryBlocksFreed',['../struct_vma_defragmentation_stats.html#a0113f1877904a5d1ee8f409216ff276b',1,'VmaDefragmentationStats']]], + ['double_20stack_16',['Double stack',['../custom_memory_pools.html#linear_algorithm_double_stack',1,'']]], + ['dsttmpallocation_17',['dstTmpAllocation',['../struct_vma_defragmentation_move.html#ab65b106adf209acd7313296d1075300e',1,'VmaDefragmentationMove']]], + ['dump_18',['JSON dump',['../statistics.html#statistics_json_dump',1,'']]] ]; diff --git a/docs/html/search/all_4.js b/docs/html/search/all_4.js index d62f021..3f6f0fb 100644 --- a/docs/html/search/all_4.js +++ b/docs/html/search/all_4.js @@ -4,6 +4,7 @@ var searchData= ['enabling_20extensions_1',['Enabling extensions',['../quick_start.html#quick_start_initialization_enabling_extensions',1,'']]], ['explicit_20memory_20types_2',['Explicit memory types',['../choosing_memory_type.html#choosing_memory_type_explicit_memory_types',1,'']]], ['exporting_20memory_3',['Exporting memory',['../other_api_interop.html#opengl_interop_exporting_memory',1,'']]], - ['extended_20allocation_20information_4',['Extended allocation information',['../other_api_interop.html#opengl_interop_extended_allocation_information',1,'']]], - ['extensions_5',['Enabling extensions',['../quick_start.html#quick_start_initialization_enabling_extensions',1,'']]] + ['exporting_20win32_20handle_4',['Exporting Win32 handle',['../vk_khr_external_memory_win32.html#vk_khr_external_memory_win32_exporting_win32_handle',1,'']]], + ['extended_20allocation_20information_5',['Extended allocation information',['../other_api_interop.html#opengl_interop_extended_allocation_information',1,'']]], + ['extensions_6',['Enabling extensions',['../quick_start.html#quick_start_initialization_enabling_extensions',1,'']]] ]; diff --git a/docs/html/search/all_5.js b/docs/html/search/all_5.js index fe15430..32c4375 100644 --- a/docs/html/search/all_5.js +++ b/docs/html/search/all_5.js @@ -2,11 +2,10 @@ var searchData= [ ['features_0',['Leak detection features',['../debugging_memory_usage.html#debugging_memory_usage_leak_detection',1,'']]], ['features_20not_20supported_1',['Features not supported',['../general_considerations.html#general_considerations_features_not_supported',1,'']]], - ['flags_2',['flags',['../struct_vma_allocator_create_info.html#a392ea2ecbaff93f91a7c49f735ad4346',1,'VmaAllocatorCreateInfo::flags'],['../struct_vma_allocation_create_info.html#add09658ac14fe290ace25470ddd6d41b',1,'VmaAllocationCreateInfo::flags'],['../struct_vma_pool_create_info.html#a8405139f63d078340ae74513a59f5446',1,'VmaPoolCreateInfo::flags'],['../struct_vma_defragmentation_info.html#a3e23080c978ecf3abb3180f5b2069da7',1,'VmaDefragmentationInfo::flags'],['../struct_vma_virtual_block_create_info.html#aaab9bf7e2d228c02ab6d90a72a6e6912',1,'VmaVirtualBlockCreateInfo::flags'],['../struct_vma_virtual_allocation_create_info.html#ab10e16956cc4bf20ced9de77d1129ea4',1,'VmaVirtualAllocationCreateInfo::flags']]], - ['flags_3',['Required and preferred flags',['../choosing_memory_type.html#choosing_memory_type_required_preferred_flags',1,'']]], - ['flush_20and_20invalidate_4',['Cache flush and invalidate',['../memory_mapping.html#memory_mapping_cache_control',1,'']]], - ['for_20budget_5',['Querying for budget',['../staying_within_budget.html#staying_within_budget_querying_for_budget',1,'']]], - ['for_20upload_6',['Staging copy for upload',['../usage_patterns.html#usage_patterns_staging_copy_upload',1,'']]], - ['free_20at_20once_7',['Free-at-once',['../custom_memory_pools.html#linear_algorithm_free_at_once',1,'']]], - ['functions_8',['Functions',['../memory_mapping.html#memory_mapping_copy_functions',1,'Copy functions'],['../quick_start.html#quick_start_initialization_importing_vulkan_functions',1,'Importing Vulkan functions'],['../memory_mapping.html#memory_mapping_mapping_functions',1,'Mapping functions'],['../configuration.html#config_Vulkan_functions',1,'Pointers to Vulkan functions']]] + ['flags_2',['flags',['../struct_vma_allocator_create_info.html#a392ea2ecbaff93f91a7c49f735ad4346',1,'VmaAllocatorCreateInfo::flags'],['../struct_vma_allocation_create_info.html#add09658ac14fe290ace25470ddd6d41b',1,'VmaAllocationCreateInfo::flags'],['../struct_vma_pool_create_info.html#a8405139f63d078340ae74513a59f5446',1,'VmaPoolCreateInfo::flags'],['../struct_vma_defragmentation_info.html#a3e23080c978ecf3abb3180f5b2069da7',1,'VmaDefragmentationInfo::flags'],['../struct_vma_virtual_block_create_info.html#aaab9bf7e2d228c02ab6d90a72a6e6912',1,'VmaVirtualBlockCreateInfo::flags'],['../struct_vma_virtual_allocation_create_info.html#ab10e16956cc4bf20ced9de77d1129ea4',1,'VmaVirtualAllocationCreateInfo::flags'],['../choosing_memory_type.html#choosing_memory_type_required_preferred_flags',1,'Required and preferred flags']]], + ['flush_20and_20invalidate_3',['Cache flush and invalidate',['../memory_mapping.html#memory_mapping_cache_control',1,'']]], + ['for_20budget_4',['Querying for budget',['../staying_within_budget.html#staying_within_budget_querying_for_budget',1,'']]], + ['for_20upload_5',['Staging copy for upload',['../usage_patterns.html#usage_patterns_staging_copy_upload',1,'']]], + ['free_20at_20once_6',['Free-at-once',['../custom_memory_pools.html#linear_algorithm_free_at_once',1,'']]], + ['functions_7',['functions',['../memory_mapping.html#memory_mapping_copy_functions',1,'Copy functions'],['../quick_start.html#quick_start_initialization_importing_vulkan_functions',1,'Importing Vulkan functions'],['../memory_mapping.html#memory_mapping_mapping_functions',1,'Mapping functions'],['../configuration.html#config_Vulkan_functions',1,'Pointers to Vulkan functions']]] ]; diff --git a/docs/html/search/all_7.js b/docs/html/search/all_7.js index a4a475a..3c46c93 100644 --- a/docs/html/search/all_7.js +++ b/docs/html/search/all_7.js @@ -1,5 +1,6 @@ var searchData= [ - ['heap_20memory_20limit_0',['Device heap memory limit',['../configuration.html#heap_memory_limit',1,'']]], - ['host_20memory_20allocator_1',['Custom host memory allocator',['../configuration.html#custom_memory_allocator',1,'']]] + ['handle_0',['Exporting Win32 handle',['../vk_khr_external_memory_win32.html#vk_khr_external_memory_win32_exporting_win32_handle',1,'']]], + ['heap_20memory_20limit_1',['Device heap memory limit',['../configuration.html#heap_memory_limit',1,'']]], + ['host_20memory_20allocator_2',['Custom host memory allocator',['../configuration.html#custom_memory_allocator',1,'']]] ]; diff --git a/docs/html/search/all_8.js b/docs/html/search/all_8.js index 3374292..c41930b 100644 --- a/docs/html/search/all_8.js +++ b/docs/html/search/all_8.js @@ -3,11 +3,10 @@ var searchData= ['importing_20vulkan_20functions_0',['Importing Vulkan functions',['../quick_start.html#quick_start_initialization_importing_vulkan_functions',1,'']]], ['incorrect_20memory_20usage_1',['Debugging incorrect memory usage',['../debugging_memory_usage.html',1,'index']]], ['index_2',['Choosing memory type index',['../custom_memory_pools.html#custom_memory_pools_MemTypeIndex',1,'']]], - ['information_3',['Information',['../other_api_interop.html#opengl_interop_extended_allocation_information',1,'Extended allocation information'],['../vk_amd_device_coherent_memory.html#vk_amd_device_coherent_memory_more_information',1,'More information'],['../enabling_buffer_device_address.html#enabling_buffer_device_address_more_information',1,'More information']]], - ['initialization_4',['Initialization',['../quick_start.html#quick_start_initialization',1,'Initialization'],['../vk_ext_memory_priority.html#vk_ext_memory_priority_initialization',1,'Initialization'],['../vk_amd_device_coherent_memory.html#vk_amd_device_coherent_memory_initialization',1,'Initialization'],['../enabling_buffer_device_address.html#enabling_buffer_device_address_initialization',1,'Initialization']]], - ['initialization_5',['Library initialization',['../group__group__init.html',1,'']]], - ['initialization_6',['Memory initialization',['../debugging_memory_usage.html#debugging_memory_usage_initialization',1,'']]], - ['instance_7',['instance',['../struct_vma_allocator_create_info.html#a70dd42e29b1df1d1b9b61532ae0b370b',1,'VmaAllocatorCreateInfo::instance'],['../struct_vma_allocator_info.html#a2ed6a4d2d3fea039d66a13f15d0ce5fe',1,'VmaAllocatorInfo::instance']]], - ['interop_20with_20other_20graphics_20apis_8',['Interop with other graphics APIs',['../other_api_interop.html',1,'index']]], - ['invalidate_9',['Cache flush and invalidate',['../memory_mapping.html#memory_mapping_cache_control',1,'']]] + ['information_3',['information',['../other_api_interop.html#opengl_interop_extended_allocation_information',1,'Extended allocation information'],['../vk_amd_device_coherent_memory.html#vk_amd_device_coherent_memory_more_information',1,'More information'],['../enabling_buffer_device_address.html#enabling_buffer_device_address_more_information',1,'More information']]], + ['initialization_4',['Initialization',['../quick_start.html#quick_start_initialization',1,'Initialization'],['../vk_ext_memory_priority.html#vk_ext_memory_priority_initialization',1,'Initialization'],['../vk_amd_device_coherent_memory.html#vk_amd_device_coherent_memory_initialization',1,'Initialization'],['../vk_khr_external_memory_win32.html#vk_khr_external_memory_win32_initialization',1,'Initialization'],['../enabling_buffer_device_address.html#enabling_buffer_device_address_initialization',1,'Initialization']]], + ['initialization_5',['initialization',['../group__group__init.html',1,'Library initialization'],['../debugging_memory_usage.html#debugging_memory_usage_initialization',1,'Memory initialization']]], + ['instance_6',['instance',['../struct_vma_allocator_create_info.html#a70dd42e29b1df1d1b9b61532ae0b370b',1,'VmaAllocatorCreateInfo::instance'],['../struct_vma_allocator_info.html#a2ed6a4d2d3fea039d66a13f15d0ce5fe',1,'VmaAllocatorInfo::instance']]], + ['interop_20with_20other_20graphics_20apis_7',['Interop with other graphics APIs',['../other_api_interop.html',1,'index']]], + ['invalidate_8',['Cache flush and invalidate',['../memory_mapping.html#memory_mapping_cache_control',1,'']]] ]; diff --git a/docs/html/search/all_b.js b/docs/html/search/all_b.js index ba3db5f..ce45792 100644 --- a/docs/html/search/all_b.js +++ b/docs/html/search/all_b.js @@ -8,27 +8,25 @@ var searchData= ['maxallocationsperpass_5',['maxAllocationsPerPass',['../struct_vma_defragmentation_info.html#ac2db29d309bebc4f7d55041416e9694b',1,'VmaDefragmentationInfo']]], ['maxblockcount_6',['maxBlockCount',['../struct_vma_pool_create_info.html#ae41142f2834fcdc82baa4883c187b75c',1,'VmaPoolCreateInfo']]], ['maxbytesperpass_7',['maxBytesPerPass',['../struct_vma_defragmentation_info.html#a637ada77b02179a27fa92290000afac4',1,'VmaDefragmentationInfo']]], - ['memory_8',['Memory',['../other_api_interop.html#opengl_interop_exporting_memory',1,'Exporting memory'],['../memory_mapping.html#memory_mapping_persistently_mapped_memory',1,'Persistently mapped memory']]], - ['memory_20allocation_9',['Memory allocation',['../group__group__alloc.html',1,'']]], + ['memory_8',['memory',['../other_api_interop.html#opengl_interop_exporting_memory',1,'Exporting memory'],['../memory_mapping.html#memory_mapping_persistently_mapped_memory',1,'Persistently mapped memory']]], + ['memory_20allocation_9',['Memory allocation',['../group__group__alloc.html',1,'Memory allocation'],['../vk_khr_external_memory_win32.html#vk_khr_external_memory_win32_memory_allocation',1,'Memory allocation']]], ['memory_20allocation_20callbacks_10',['Device memory allocation callbacks',['../configuration.html#allocation_callbacks',1,'']]], - ['memory_20allocator_11',['Custom host memory allocator',['../configuration.html#custom_memory_allocator',1,'']]], - ['memory_20allocator_12',['Vulkan Memory Allocator',['../index.html',1,'']]], + ['memory_20allocator_11',['Vulkan Memory Allocator',['../index.html',1,'']]], + ['memory_20allocator_12',['Custom host memory allocator',['../configuration.html#custom_memory_allocator',1,'']]], ['memory_20initialization_13',['Memory initialization',['../debugging_memory_usage.html#debugging_memory_usage_initialization',1,'']]], ['memory_20limit_14',['Device heap memory limit',['../configuration.html#heap_memory_limit',1,'']]], ['memory_20mapping_15',['Memory mapping',['../memory_mapping.html',1,'index']]], - ['memory_20pools_16',['Custom memory pools',['../custom_memory_pools.html',1,'index']]], - ['memory_20pools_17',['Custom memory pools',['../choosing_memory_type.html#choosing_memory_type_custom_memory_pools',1,'']]], - ['memory_20type_18',['Choosing memory type',['../choosing_memory_type.html',1,'index']]], - ['memory_20type_20index_19',['Choosing memory type index',['../custom_memory_pools.html#custom_memory_pools_MemTypeIndex',1,'']]], - ['memory_20types_20',['Explicit memory types',['../choosing_memory_type.html#choosing_memory_type_explicit_memory_types',1,'']]], - ['memory_20usage_21',['Controlling memory usage',['../staying_within_budget.html#staying_within_budget_controlling_memory_usage',1,'']]], - ['memory_20usage_22',['Debugging incorrect memory usage',['../debugging_memory_usage.html',1,'index']]], - ['memoryheap_23',['memoryHeap',['../struct_vma_total_statistics.html#a39beeba5b3a2e7cfe5f5e2331a2705ce',1,'VmaTotalStatistics']]], - ['memorytype_24',['memoryType',['../struct_vma_total_statistics.html#acb70e5b7fe543813ed8ba9282640969d',1,'VmaTotalStatistics::memoryType'],['../struct_vma_allocation_info.html#a7f6b0aa58c135e488e6b40a388dad9d5',1,'VmaAllocationInfo::memoryType']]], - ['memorytypebits_25',['memoryTypeBits',['../struct_vma_allocation_create_info.html#a3bf940c0271d85d6ba32a4d820075055',1,'VmaAllocationCreateInfo']]], - ['memorytypeindex_26',['memoryTypeIndex',['../struct_vma_pool_create_info.html#a596fa76b685d3f1f688f84a709a5b319',1,'VmaPoolCreateInfo']]], - ['minallocationalignment_27',['minAllocationAlignment',['../struct_vma_pool_create_info.html#ade3eca546f0c6ab4e8fbf20eb6d854cb',1,'VmaPoolCreateInfo']]], - ['minblockcount_28',['minBlockCount',['../struct_vma_pool_create_info.html#ad8006fb803185c0a699d30f3e9a865ae',1,'VmaPoolCreateInfo']]], - ['more_20information_29',['More information',['../vk_amd_device_coherent_memory.html#vk_amd_device_coherent_memory_more_information',1,'More information'],['../enabling_buffer_device_address.html#enabling_buffer_device_address_more_information',1,'More information']]], - ['movecount_30',['moveCount',['../struct_vma_defragmentation_pass_move_info.html#a1b3e18c23f9691f35baf183e615c4408',1,'VmaDefragmentationPassMoveInfo']]] + ['memory_20pools_16',['memory pools',['../custom_memory_pools.html',1,'Custom memory pools'],['../choosing_memory_type.html#choosing_memory_type_custom_memory_pools',1,'Custom memory pools']]], + ['memory_20type_17',['Choosing memory type',['../choosing_memory_type.html',1,'index']]], + ['memory_20type_20index_18',['Choosing memory type index',['../custom_memory_pools.html#custom_memory_pools_MemTypeIndex',1,'']]], + ['memory_20types_19',['Explicit memory types',['../choosing_memory_type.html#choosing_memory_type_explicit_memory_types',1,'']]], + ['memory_20usage_20',['memory usage',['../staying_within_budget.html#staying_within_budget_controlling_memory_usage',1,'Controlling memory usage'],['../debugging_memory_usage.html',1,'Debugging incorrect memory usage']]], + ['memoryheap_21',['memoryHeap',['../struct_vma_total_statistics.html#a39beeba5b3a2e7cfe5f5e2331a2705ce',1,'VmaTotalStatistics']]], + ['memorytype_22',['memoryType',['../struct_vma_total_statistics.html#acb70e5b7fe543813ed8ba9282640969d',1,'VmaTotalStatistics::memoryType'],['../struct_vma_allocation_info.html#a7f6b0aa58c135e488e6b40a388dad9d5',1,'VmaAllocationInfo::memoryType']]], + ['memorytypebits_23',['memoryTypeBits',['../struct_vma_allocation_create_info.html#a3bf940c0271d85d6ba32a4d820075055',1,'VmaAllocationCreateInfo']]], + ['memorytypeindex_24',['memoryTypeIndex',['../struct_vma_pool_create_info.html#a596fa76b685d3f1f688f84a709a5b319',1,'VmaPoolCreateInfo']]], + ['minallocationalignment_25',['minAllocationAlignment',['../struct_vma_pool_create_info.html#ade3eca546f0c6ab4e8fbf20eb6d854cb',1,'VmaPoolCreateInfo']]], + ['minblockcount_26',['minBlockCount',['../struct_vma_pool_create_info.html#ad8006fb803185c0a699d30f3e9a865ae',1,'VmaPoolCreateInfo']]], + ['more_20information_27',['More information',['../vk_amd_device_coherent_memory.html#vk_amd_device_coherent_memory_more_information',1,'More information'],['../enabling_buffer_device_address.html#enabling_buffer_device_address_more_information',1,'More information']]], + ['movecount_28',['moveCount',['../struct_vma_defragmentation_pass_move_info.html#a1b3e18c23f9691f35baf183e615c4408',1,'VmaDefragmentationPassMoveInfo']]] ]; diff --git a/docs/html/search/all_e.js b/docs/html/search/all_e.js index bb520a2..fb08578 100644 --- a/docs/html/search/all_e.js +++ b/docs/html/search/all_e.js @@ -20,11 +20,11 @@ var searchData= ['pname_17',['pName',['../struct_vma_allocation_info.html#a28612f3e897e5b268254a3c63413d759',1,'VmaAllocationInfo']]], ['pointers_20to_20vulkan_20functions_18',['Pointers to Vulkan functions',['../configuration.html#config_Vulkan_functions',1,'']]], ['pool_19',['pool',['../struct_vma_allocation_create_info.html#a6272c0555cfd1fe28bff1afeb6190150',1,'VmaAllocationCreateInfo::pool'],['../struct_vma_defragmentation_info.html#a18dd2097d8ab2976cdc7dd3e7b978bd4',1,'VmaDefragmentationInfo::pool']]], - ['pools_20',['Custom memory pools',['../custom_memory_pools.html',1,'index']]], - ['pools_21',['Pools',['../choosing_memory_type.html#choosing_memory_type_custom_memory_pools',1,'Custom memory pools'],['../custom_memory_pools.html#custom_memory_pools_when_not_use',1,'When not to use custom pools']]], - ['preferred_20flags_22',['Required and preferred flags',['../choosing_memory_type.html#choosing_memory_type_required_preferred_flags',1,'']]], - ['preferredflags_23',['preferredFlags',['../struct_vma_allocation_create_info.html#a7fe8d81a1ad10b2a2faacacee5b15d6d',1,'VmaAllocationCreateInfo']]], - ['preferredlargeheapblocksize_24',['preferredLargeHeapBlockSize',['../struct_vma_allocator_create_info.html#a8e4714298e3121cdd8b214a1ae7a637a',1,'VmaAllocatorCreateInfo']]], + ['pools_20',['pools',['../custom_memory_pools.html',1,'Custom memory pools'],['../choosing_memory_type.html#choosing_memory_type_custom_memory_pools',1,'Custom memory pools'],['../custom_memory_pools.html#custom_memory_pools_when_not_use',1,'When not to use custom pools']]], + ['preferred_20flags_21',['Required and preferred flags',['../choosing_memory_type.html#choosing_memory_type_required_preferred_flags',1,'']]], + ['preferredflags_22',['preferredFlags',['../struct_vma_allocation_create_info.html#a7fe8d81a1ad10b2a2faacacee5b15d6d',1,'VmaAllocationCreateInfo']]], + ['preferredlargeheapblocksize_23',['preferredLargeHeapBlockSize',['../struct_vma_allocator_create_info.html#a8e4714298e3121cdd8b214a1ae7a637a',1,'VmaAllocatorCreateInfo']]], + ['preparations_24',['Preparations',['../vk_khr_external_memory_win32.html#vk_khr_external_memory_win32_preparations',1,'']]], ['priority_25',['priority',['../struct_vma_allocation_create_info.html#a983d39e1a2e63649d78a960aa2fdd0f7',1,'VmaAllocationCreateInfo::priority'],['../struct_vma_pool_create_info.html#a16e686c688f6725f119ebf6e24ab5274',1,'VmaPoolCreateInfo::priority']]], ['project_20setup_26',['Project setup',['../quick_start.html#quick_start_project_setup',1,'']]], ['ptypeexternalmemoryhandletypes_27',['pTypeExternalMemoryHandleTypes',['../struct_vma_allocator_create_info.html#ae8f0db05e5cb4c43d7713bf4a49a736b',1,'VmaAllocatorCreateInfo']]], diff --git a/docs/html/search/enumvalues_0.js b/docs/html/search/enumvalues_0.js index 5ca6514..80a7952 100644 --- a/docs/html/search/enumvalues_0.js +++ b/docs/html/search/enumvalues_0.js @@ -26,39 +26,40 @@ var searchData= ['vma_5fallocator_5fcreate_5fflag_5fbits_5fmax_5fenum_23',['VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7cae4d5ad929caba5f23eb502b13bd5286c',1,'vk_mem_alloc.h']]], ['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_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']]] + ['vma_5fallocator_5fcreate_5fkhr_5fexternal_5fmemory_5fwin32_5fbit_26',['VMA_ALLOCATOR_CREATE_KHR_EXTERNAL_MEMORY_WIN32_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7ca4897d1181a186e327f4dadd680ad00ac',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5fkhr_5fmaintenance4_5fbit_27',['VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE4_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7caa2566e7f75e19ae7ec9c4fa509fea5fb',1,'vk_mem_alloc.h']]], + ['vma_5fallocator_5fcreate_5fkhr_5fmaintenance5_5fbit_28',['VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE5_BIT',['../group__group__init.html#gga4f87c9100d154a65a4ad495f7763cf7caca82d4ce40bdb59d3da52a539c21d6b8',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5falgorithm_5fbalanced_5fbit_29',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_BALANCED_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50caec35a4138111605a6ff32ca61aa871b6',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5falgorithm_5fextensive_5fbit_30',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_EXTENSIVE_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cae45a9469e5337731627758671741e412',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5falgorithm_5ffast_5fbit_31',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FAST_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50ca2e6469bcf5a094776ceb5d118263f04b',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5falgorithm_5ffull_5fbit_32',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_FULL_BIT',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cafa162eac5be800bcdd4011427a71156d',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5falgorithm_5fmask_33',['VMA_DEFRAGMENTATION_FLAG_ALGORITHM_MASK',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cabcbbdb3bfd53c4c3ab4eaeb5fd4894e9',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fflag_5fbits_5fmax_5fenum_34',['VMA_DEFRAGMENTATION_FLAG_BITS_MAX_ENUM',['../group__group__alloc.html#gga6552a65b71d16f378c6994b3ceaef50cab87ec33154803bfeb5ac2b379f1d6a97',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fmove_5foperation_5fcopy_35',['VMA_DEFRAGMENTATION_MOVE_OPERATION_COPY',['../group__group__alloc.html#ggada9e3861caf96f08894b0bcc160ec257ad4a06ac46c4cb1c67b0ebc1edfab9f18',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fmove_5foperation_5fdestroy_36',['VMA_DEFRAGMENTATION_MOVE_OPERATION_DESTROY',['../group__group__alloc.html#ggada9e3861caf96f08894b0bcc160ec257a9786f8492a9be2c03bd26395e352ab85',1,'vk_mem_alloc.h']]], + ['vma_5fdefragmentation_5fmove_5foperation_5fignore_37',['VMA_DEFRAGMENTATION_MOVE_OPERATION_IGNORE',['../group__group__alloc.html#ggada9e3861caf96f08894b0bcc160ec257ad25bc6f816b226b4fd5170e845f218d2',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fauto_38',['VMA_MEMORY_USAGE_AUTO',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca27cde9026a84d34d525777baa41fce6e',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fauto_5fprefer_5fdevice_39',['VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305ccae2adb696d6a73c18bb20c23666661327',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fauto_5fprefer_5fhost_40',['VMA_MEMORY_USAGE_AUTO_PREFER_HOST',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca9b422585242160b8ed3418310ee6664d',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fcpu_5fcopy_41',['VMA_MEMORY_USAGE_CPU_COPY',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca416a444d4d0fc20067c3f76f32ff2500',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fcpu_5fonly_42',['VMA_MEMORY_USAGE_CPU_ONLY',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca40bdf4cddeffeb12f43d45ca1286e0a5',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fcpu_5fto_5fgpu_43',['VMA_MEMORY_USAGE_CPU_TO_GPU',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca9066b52c5a7079bb74a69aaf8b92ff67',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fgpu_5flazily_5fallocated_44',['VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca835333d9072db63a653818030e17614d',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fgpu_5fonly_45',['VMA_MEMORY_USAGE_GPU_ONLY',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305ccac6b5dc1432d88647aa4cd456246eadf7',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fgpu_5fto_5fcpu_46',['VMA_MEMORY_USAGE_GPU_TO_CPU',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca7b586d2fdaf82a463b58f581ed72be27',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5fmax_5fenum_47',['VMA_MEMORY_USAGE_MAX_ENUM',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305cca091e69437ef693e8d0d287f1c719ba6e',1,'vk_mem_alloc.h']]], + ['vma_5fmemory_5fusage_5funknown_48',['VMA_MEMORY_USAGE_UNKNOWN',['../group__group__alloc.html#ggaa5846affa1e9da3800e3e78fae2305ccaf50d27e34e0925cf3a63db8c839121dd',1,'vk_mem_alloc.h']]], + ['vma_5fpool_5fcreate_5falgorithm_5fmask_49',['VMA_POOL_CREATE_ALGORITHM_MASK',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7af4d270f8f42517a0f70037ceb6ac1d9c',1,'vk_mem_alloc.h']]], + ['vma_5fpool_5fcreate_5fflag_5fbits_5fmax_5fenum_50',['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_51',['VMA_POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BIT',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7a9f1a499508a8edb4e8ba40aa0290a3d2',1,'vk_mem_alloc.h']]], + ['vma_5fpool_5fcreate_5flinear_5falgorithm_5fbit_52',['VMA_POOL_CREATE_LINEAR_ALGORITHM_BIT',['../group__group__alloc.html#gga9a7c45f9c863695d98c83fa5ac940fe7a13c8a444197c67866be9cb05599fc726',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fflag_5fbits_5fmax_5fenum_53',['VMA_VIRTUAL_ALLOCATION_CREATE_FLAG_BITS_MAX_ENUM',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ac1163c03ea837fa663462dc286d6a1a9',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmask_54',['VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MASK',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6ac5b5e45c335368d18df59c9f27df17e3',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fallocation_5fcreate_5fstrategy_5fmin_5fmemory_5fbit_55',['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_56',['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_57',['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_58',['VMA_VIRTUAL_ALLOCATION_CREATE_UPPER_ADDRESS_BIT',['../group__group__virtual.html#gga2e9c64d405b14156fea7e10c4ad06cb6a9524a329a55b5ec390d57d90b67ad78e',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fblock_5fcreate_5falgorithm_5fmask_59',['VMA_VIRTUAL_BLOCK_CREATE_ALGORITHM_MASK',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaaf9487467136e1a9e371894dc3a7c4844',1,'vk_mem_alloc.h']]], + ['vma_5fvirtual_5fblock_5fcreate_5fflag_5fbits_5fmax_5fenum_60',['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_61',['VMA_VIRTUAL_BLOCK_CREATE_LINEAR_ALGORITHM_BIT',['../group__group__virtual.html#gga88bcf8c1cd3bb1610ff7343811c65bcaae6423e2fa2f3c9211b21c819e3f10f96',1,'vk_mem_alloc.h']]] ]; diff --git a/docs/html/search/functions_0.js b/docs/html/search/functions_0.js index 6c41b96..1f20556 100644 --- a/docs/html/search/functions_0.js +++ b/docs/html/search/functions_0.js @@ -53,21 +53,22 @@ var searchData= ['vmagetheapbudgets_50',['vmaGetHeapBudgets',['../group__group__stats.html#ga9f88db9d46a432c0ad7278cecbc5eaa7',1,'vk_mem_alloc.h']]], ['vmagetmemoryproperties_51',['vmaGetMemoryProperties',['../group__group__init.html#gab88db292a17974f911182543fda52d19',1,'vk_mem_alloc.h']]], ['vmagetmemorytypeproperties_52',['vmaGetMemoryTypeProperties',['../group__group__init.html#ga8701444752eb5de4464adb5a2b514bca',1,'vk_mem_alloc.h']]], - ['vmagetphysicaldeviceproperties_53',['vmaGetPhysicalDeviceProperties',['../group__group__init.html#gaecabf7b6e91ea87d0316fa0a9e014fe0',1,'vk_mem_alloc.h']]], - ['vmagetpoolname_54',['vmaGetPoolName',['../group__group__alloc.html#gaf09b4e4eafdbee812e8d73ddf960f030',1,'vk_mem_alloc.h']]], - ['vmagetpoolstatistics_55',['vmaGetPoolStatistics',['../group__group__stats.html#ga34d8e7d83774eed0caee5c5ae88e217d',1,'vk_mem_alloc.h']]], - ['vmagetvirtualallocationinfo_56',['vmaGetVirtualAllocationInfo',['../group__group__virtual.html#ga8ee14ceb1fe033ec84d8aa29e1f75afa',1,'vk_mem_alloc.h']]], - ['vmagetvirtualblockstatistics_57',['vmaGetVirtualBlockStatistics',['../group__group__virtual.html#ga2902aa3130866afcc64bb5f984113db3',1,'vk_mem_alloc.h']]], - ['vmainvalidateallocation_58',['vmaInvalidateAllocation',['../group__group__alloc.html#gaaa8412919139ef413a4215ac6a290fae',1,'vk_mem_alloc.h']]], - ['vmainvalidateallocations_59',['vmaInvalidateAllocations',['../group__group__alloc.html#gab25b558d75f7378ec944a1522fdcc3c5',1,'vk_mem_alloc.h']]], - ['vmaisvirtualblockempty_60',['vmaIsVirtualBlockEmpty',['../group__group__virtual.html#gacd53b5b1d23f8fcbad692ccfdc1811f1',1,'vk_mem_alloc.h']]], - ['vmamapmemory_61',['vmaMapMemory',['../group__group__alloc.html#gad5bd1243512d099706de88168992f069',1,'vk_mem_alloc.h']]], - ['vmasetallocationname_62',['vmaSetAllocationName',['../group__group__alloc.html#gabe02cbb0cd913b3f125958179f2020fc',1,'vk_mem_alloc.h']]], - ['vmasetallocationuserdata_63',['vmaSetAllocationUserData',['../group__group__alloc.html#gaf9147d31ffc11d62fc187bde283ed14f',1,'vk_mem_alloc.h']]], - ['vmasetcurrentframeindex_64',['vmaSetCurrentFrameIndex',['../group__group__init.html#gade56bf8dc9f5a5eaddf5f119ed525236',1,'vk_mem_alloc.h']]], - ['vmasetpoolname_65',['vmaSetPoolName',['../group__group__alloc.html#gadbae3a0b4ab078024462fc85c37f3b58',1,'vk_mem_alloc.h']]], - ['vmasetvirtualallocationuserdata_66',['vmaSetVirtualAllocationUserData',['../group__group__virtual.html#ga001ea1850458a4062b829e09c303fca2',1,'vk_mem_alloc.h']]], - ['vmaunmapmemory_67',['vmaUnmapMemory',['../group__group__alloc.html#ga9bc268595cb33f6ec4d519cfce81ff45',1,'vk_mem_alloc.h']]], - ['vmavirtualallocate_68',['vmaVirtualAllocate',['../group__group__virtual.html#ga6b7cdcc1c3e5103c323fedc4e1319e01',1,'vk_mem_alloc.h']]], - ['vmavirtualfree_69',['vmaVirtualFree',['../group__group__virtual.html#ga09fc688c0c3653ff23723b037e5d5033',1,'vk_mem_alloc.h']]] + ['vmagetmemorywin32handle_53',['vmaGetMemoryWin32Handle',['../group__group__alloc.html#ga8d327b7458d8cf426b84b5efba9bb9bf',1,'vk_mem_alloc.h']]], + ['vmagetphysicaldeviceproperties_54',['vmaGetPhysicalDeviceProperties',['../group__group__init.html#gaecabf7b6e91ea87d0316fa0a9e014fe0',1,'vk_mem_alloc.h']]], + ['vmagetpoolname_55',['vmaGetPoolName',['../group__group__alloc.html#gaf09b4e4eafdbee812e8d73ddf960f030',1,'vk_mem_alloc.h']]], + ['vmagetpoolstatistics_56',['vmaGetPoolStatistics',['../group__group__stats.html#ga34d8e7d83774eed0caee5c5ae88e217d',1,'vk_mem_alloc.h']]], + ['vmagetvirtualallocationinfo_57',['vmaGetVirtualAllocationInfo',['../group__group__virtual.html#ga8ee14ceb1fe033ec84d8aa29e1f75afa',1,'vk_mem_alloc.h']]], + ['vmagetvirtualblockstatistics_58',['vmaGetVirtualBlockStatistics',['../group__group__virtual.html#ga2902aa3130866afcc64bb5f984113db3',1,'vk_mem_alloc.h']]], + ['vmainvalidateallocation_59',['vmaInvalidateAllocation',['../group__group__alloc.html#gaaa8412919139ef413a4215ac6a290fae',1,'vk_mem_alloc.h']]], + ['vmainvalidateallocations_60',['vmaInvalidateAllocations',['../group__group__alloc.html#gab25b558d75f7378ec944a1522fdcc3c5',1,'vk_mem_alloc.h']]], + ['vmaisvirtualblockempty_61',['vmaIsVirtualBlockEmpty',['../group__group__virtual.html#gacd53b5b1d23f8fcbad692ccfdc1811f1',1,'vk_mem_alloc.h']]], + ['vmamapmemory_62',['vmaMapMemory',['../group__group__alloc.html#gad5bd1243512d099706de88168992f069',1,'vk_mem_alloc.h']]], + ['vmasetallocationname_63',['vmaSetAllocationName',['../group__group__alloc.html#gabe02cbb0cd913b3f125958179f2020fc',1,'vk_mem_alloc.h']]], + ['vmasetallocationuserdata_64',['vmaSetAllocationUserData',['../group__group__alloc.html#gaf9147d31ffc11d62fc187bde283ed14f',1,'vk_mem_alloc.h']]], + ['vmasetcurrentframeindex_65',['vmaSetCurrentFrameIndex',['../group__group__init.html#gade56bf8dc9f5a5eaddf5f119ed525236',1,'vk_mem_alloc.h']]], + ['vmasetpoolname_66',['vmaSetPoolName',['../group__group__alloc.html#gadbae3a0b4ab078024462fc85c37f3b58',1,'vk_mem_alloc.h']]], + ['vmasetvirtualallocationuserdata_67',['vmaSetVirtualAllocationUserData',['../group__group__virtual.html#ga001ea1850458a4062b829e09c303fca2',1,'vk_mem_alloc.h']]], + ['vmaunmapmemory_68',['vmaUnmapMemory',['../group__group__alloc.html#ga9bc268595cb33f6ec4d519cfce81ff45',1,'vk_mem_alloc.h']]], + ['vmavirtualallocate_69',['vmaVirtualAllocate',['../group__group__virtual.html#ga6b7cdcc1c3e5103c323fedc4e1319e01',1,'vk_mem_alloc.h']]], + ['vmavirtualfree_70',['vmaVirtualFree',['../group__group__virtual.html#ga09fc688c0c3653ff23723b037e5d5033',1,'vk_mem_alloc.h']]] ]; diff --git a/docs/html/search/pages_0.js b/docs/html/search/pages_0.js index d519f94..b57000e 100644 --- a/docs/html/search/pages_0.js +++ b/docs/html/search/pages_0.js @@ -3,8 +3,8 @@ var searchData= ['address_0',['Enabling buffer device address',['../enabling_buffer_device_address.html',1,'index']]], ['aliasing_20overlap_1',['Resource aliasing (overlap)',['../resource_aliasing.html',1,'index']]], ['allocation_20names_20and_20user_20data_2',['Allocation names and user data',['../allocation_annotation.html',1,'index']]], - ['allocator_3',['Virtual allocator',['../virtual_allocator.html',1,'index']]], - ['allocator_4',['Vulkan Memory Allocator',['../index.html',1,'']]], + ['allocator_3',['Vulkan Memory Allocator',['../index.html',1,'']]], + ['allocator_4',['Virtual allocator',['../virtual_allocator.html',1,'index']]], ['and_20user_20data_5',['Allocation names and user data',['../allocation_annotation.html',1,'index']]], ['apis_6',['Interop with other graphics APIs',['../other_api_interop.html',1,'index']]] ]; diff --git a/docs/html/search/pages_11.js b/docs/html/search/pages_11.js index 7bce809..4f08533 100644 --- a/docs/html/search/pages_11.js +++ b/docs/html/search/pages_11.js @@ -4,5 +4,6 @@ var searchData= ['vk_5famd_5fdevice_5fcoherent_5fmemory_1',['VK_AMD_device_coherent_memory',['../vk_amd_device_coherent_memory.html',1,'index']]], ['vk_5fext_5fmemory_5fpriority_2',['VK_EXT_memory_priority',['../vk_ext_memory_priority.html',1,'index']]], ['vk_5fkhr_5fdedicated_5fallocation_3',['VK_KHR_dedicated_allocation',['../vk_khr_dedicated_allocation.html',1,'index']]], - ['vulkan_20memory_20allocator_4',['Vulkan Memory Allocator',['../index.html',1,'']]] + ['vk_5fkhr_5fexternal_5fmemory_5fwin32_4',['VK_KHR_external_memory_win32',['../vk_khr_external_memory_win32.html',1,'index']]], + ['vulkan_20memory_20allocator_5',['Vulkan Memory Allocator',['../index.html',1,'']]] ]; diff --git a/docs/html/search/variables_c.js b/docs/html/search/variables_c.js index 9ad016e..3cd226f 100644 --- a/docs/html/search/variables_c.js +++ b/docs/html/search/variables_c.js @@ -20,11 +20,12 @@ var searchData= ['vkgetimagememoryrequirements_17',['vkGetImageMemoryRequirements',['../struct_vma_vulkan_functions.html#a475f6f49f8debe4d10800592606d53f4',1,'VmaVulkanFunctions']]], ['vkgetimagememoryrequirements2khr_18',['vkGetImageMemoryRequirements2KHR',['../struct_vma_vulkan_functions.html#a9cdcdc1e2b2ea7c571f7d27e30ba6875',1,'VmaVulkanFunctions']]], ['vkgetinstanceprocaddr_19',['vkGetInstanceProcAddr',['../struct_vma_vulkan_functions.html#a3eafa102f5f8915f093f40675636b849',1,'VmaVulkanFunctions']]], - ['vkgetphysicaldevicememoryproperties_20',['vkGetPhysicalDeviceMemoryProperties',['../struct_vma_vulkan_functions.html#a60d25c33bba06bb8592e6875cbaa9830',1,'VmaVulkanFunctions']]], - ['vkgetphysicaldevicememoryproperties2khr_21',['vkGetPhysicalDeviceMemoryProperties2KHR',['../struct_vma_vulkan_functions.html#a0d992896e6ffcf92b9d7ea049fa5c445',1,'VmaVulkanFunctions']]], - ['vkgetphysicaldeviceproperties_22',['vkGetPhysicalDeviceProperties',['../struct_vma_vulkan_functions.html#a77b7a74082823e865dd6546623468f96',1,'VmaVulkanFunctions']]], - ['vkinvalidatemappedmemoryranges_23',['vkInvalidateMappedMemoryRanges',['../struct_vma_vulkan_functions.html#a5c1093bc32386a8060c37c9f282078a1',1,'VmaVulkanFunctions']]], - ['vkmapmemory_24',['vkMapMemory',['../struct_vma_vulkan_functions.html#ab5c1f38dea3a2cf00dc9eb4f57218c49',1,'VmaVulkanFunctions']]], - ['vkunmapmemory_25',['vkUnmapMemory',['../struct_vma_vulkan_functions.html#acc798589736f0becb317fc2196c1d8b9',1,'VmaVulkanFunctions']]], - ['vulkanapiversion_26',['vulkanApiVersion',['../struct_vma_allocator_create_info.html#ae0ffc55139b54520a6bb704b29ffc285',1,'VmaAllocatorCreateInfo']]] + ['vkgetmemorywin32handlekhr_20',['vkGetMemoryWin32HandleKHR',['../struct_vma_vulkan_functions.html#af45d10a2b47971f4cf5bcacf1d331f86',1,'VmaVulkanFunctions']]], + ['vkgetphysicaldevicememoryproperties_21',['vkGetPhysicalDeviceMemoryProperties',['../struct_vma_vulkan_functions.html#a60d25c33bba06bb8592e6875cbaa9830',1,'VmaVulkanFunctions']]], + ['vkgetphysicaldevicememoryproperties2khr_22',['vkGetPhysicalDeviceMemoryProperties2KHR',['../struct_vma_vulkan_functions.html#a0d992896e6ffcf92b9d7ea049fa5c445',1,'VmaVulkanFunctions']]], + ['vkgetphysicaldeviceproperties_23',['vkGetPhysicalDeviceProperties',['../struct_vma_vulkan_functions.html#a77b7a74082823e865dd6546623468f96',1,'VmaVulkanFunctions']]], + ['vkinvalidatemappedmemoryranges_24',['vkInvalidateMappedMemoryRanges',['../struct_vma_vulkan_functions.html#a5c1093bc32386a8060c37c9f282078a1',1,'VmaVulkanFunctions']]], + ['vkmapmemory_25',['vkMapMemory',['../struct_vma_vulkan_functions.html#ab5c1f38dea3a2cf00dc9eb4f57218c49',1,'VmaVulkanFunctions']]], + ['vkunmapmemory_26',['vkUnmapMemory',['../struct_vma_vulkan_functions.html#acc798589736f0becb317fc2196c1d8b9',1,'VmaVulkanFunctions']]], + ['vulkanapiversion_27',['vulkanApiVersion',['../struct_vma_allocator_create_info.html#ae0ffc55139b54520a6bb704b29ffc285',1,'VmaAllocatorCreateInfo']]] ]; diff --git a/docs/html/statistics.html b/docs/html/statistics.html index 38c7b47..a75e158 100644 --- a/docs/html/statistics.html +++ b/docs/html/statistics.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Statistics + + @@ -31,23 +33,33 @@ - + + + +
    Statistics
    @@ -109,7 +122,8 @@ JSON dump
    +
    diff --git a/docs/html/staying_within_budget.html b/docs/html/staying_within_budget.html index 148e452..71c8f29 100644 --- a/docs/html/staying_within_budget.html +++ b/docs/html/staying_within_budget.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Staying within budget + + @@ -31,23 +33,33 @@ - + + + +
    Staying within budget
    @@ -100,7 +113,7 @@ Querying for budget Controlling memory usage

    There are many ways in which you can try to stay within the budget.

    First, when making new allocation requires allocating a new memory block, the library tries not to exceed the budget automatically. If a block with default recommended size (e.g. 256 MB) would go over budget, a smaller block is allocated, possibly even dedicated memory for just this resource.

    -

    If the size of the requested resource plus current memory usage is more than the budget, by default the library still tries to create it, leaving it to the Vulkan implementation whether the allocation succeeds or fails. You can change this behavior by using VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT flag. With it, the allocation is not made if it would exceed the budget or if the budget is already exceeded. VMA then tries to make the allocation from the next eligible Vulkan memory type. The all of them fail, the call then fails with VK_ERROR_OUT_OF_DEVICE_MEMORY. Example usage pattern may be to pass the VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT flag when creating resources that are not essential for the application (e.g. the texture of a specific object) and not to pass it when creating critically important resources (e.g. render targets).

    +

    If the size of the requested resource plus current memory usage is more than the budget, by default the library still tries to create it, leaving it to the Vulkan implementation whether the allocation succeeds or fails. You can change this behavior by using VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT flag. With it, the allocation is not made if it would exceed the budget or if the budget is already exceeded. VMA then tries to make the allocation from the next eligible Vulkan memory type. If all of them fail, the call then fails with VK_ERROR_OUT_OF_DEVICE_MEMORY. Example usage pattern may be to pass the VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT flag when creating resources that are not essential for the application (e.g. the texture of a specific object) and not to pass it when creating critically important resources (e.g. render targets).

    On AMD graphics cards there is a custom vendor extension available: VK_AMD_memory_overallocation_behavior that allows to control the behavior of the Vulkan implementation in out-of-memory cases - whether it should fail with an error code or still allow the allocation. Usage of this extension involves only passing extra structure on Vulkan device creation, so it is out of scope of this library.

    Finally, you can also use VMA_ALLOCATION_CREATE_NEVER_ALLOCATE_BIT flag to make sure a new allocation is created only when it fits inside one of the existing memory blocks. If it would require to allocate a new block, if fails instead with VK_ERROR_OUT_OF_DEVICE_MEMORY. This also ensures that the function call is very fast because it never goes to Vulkan to obtain a new block.

    Note
    Creating Custom memory pools with VmaPoolCreateInfo::minBlockCount set to more than 0 will currently try to allocate memory blocks without checking whether they fit within budget.
    @@ -108,7 +121,8 @@ Controlling memory usage
    +
    diff --git a/docs/html/struct_vma_allocation.html b/docs/html/struct_vma_allocation.html index 8c24032..ea26230 100644 --- a/docs/html/struct_vma_allocation.html +++ b/docs/html/struct_vma_allocation.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaAllocation Struct Reference + + @@ -31,23 +33,33 @@ - + + +
    +
    VmaAllocation Struct Reference
    @@ -89,7 +102,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_allocation_create_info-members.html b/docs/html/struct_vma_allocation_create_info-members.html index 9d50ce4..fe7e79b 100644 --- a/docs/html/struct_vma_allocation_create_info-members.html +++ b/docs/html/struct_vma_allocation_create_info-members.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Member List + + @@ -31,23 +33,33 @@ - + + +
    +
    VmaAllocationCreateInfo Member List
    @@ -88,7 +101,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_allocation_create_info.html b/docs/html/struct_vma_allocation_create_info.html index 2d9a7e6..7dfd2e5 100644 --- a/docs/html/struct_vma_allocation_create_info.html +++ b/docs/html/struct_vma_allocation_create_info.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaAllocationCreateInfo Struct Reference + + @@ -31,23 +33,33 @@ - + + +
    +
    Public Attributes | @@ -257,7 +270,8 @@ If pool is not null, this member is ignored.

    +
    diff --git a/docs/html/struct_vma_allocation_info-members.html b/docs/html/struct_vma_allocation_info-members.html index e5f07b3..76704e9 100644 --- a/docs/html/struct_vma_allocation_info-members.html +++ b/docs/html/struct_vma_allocation_info-members.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Member List + + @@ -31,23 +33,33 @@
    - + + +
    +
    VmaAllocationInfo Member List
    @@ -87,7 +100,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_allocation_info.html b/docs/html/struct_vma_allocation_info.html index 6f23921..28768be 100644 --- a/docs/html/struct_vma_allocation_info.html +++ b/docs/html/struct_vma_allocation_info.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaAllocationInfo Struct Reference + + @@ -31,23 +33,33 @@ - + + +
    +
    Public Attributes | @@ -236,7 +249,8 @@ Public Attributes
    +
    diff --git a/docs/html/struct_vma_allocation_info2-members.html b/docs/html/struct_vma_allocation_info2-members.html index 19c83a1..1d86e4b 100644 --- a/docs/html/struct_vma_allocation_info2-members.html +++ b/docs/html/struct_vma_allocation_info2-members.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Member List + + @@ -31,23 +33,33 @@
    - + + +
    +
    VmaAllocationInfo2 Member List
    @@ -83,7 +96,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_allocation_info2.html b/docs/html/struct_vma_allocation_info2.html index 0c745e3..2ccb365 100644 --- a/docs/html/struct_vma_allocation_info2.html +++ b/docs/html/struct_vma_allocation_info2.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaAllocationInfo2 Struct Reference + + @@ -31,23 +33,33 @@ - + + +
    +
    Public Attributes | @@ -153,7 +166,8 @@ Public Attributes
    +
    diff --git a/docs/html/struct_vma_allocator.html b/docs/html/struct_vma_allocator.html index 7e6e256..ac2c665 100644 --- a/docs/html/struct_vma_allocator.html +++ b/docs/html/struct_vma_allocator.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaAllocator Struct Reference + + @@ -31,23 +33,33 @@
    - + + +
    +
    VmaAllocator Struct Reference
    @@ -87,7 +100,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_allocator_create_info-members.html b/docs/html/struct_vma_allocator_create_info-members.html index 4ad3a0c..7f37a06 100644 --- a/docs/html/struct_vma_allocator_create_info-members.html +++ b/docs/html/struct_vma_allocator_create_info-members.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Member List + + @@ -31,23 +33,33 @@ - + + +
    +
    VmaAllocatorCreateInfo Member List
    @@ -91,7 +104,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_allocator_create_info.html b/docs/html/struct_vma_allocator_create_info.html index 69171aa..2698221 100644 --- a/docs/html/struct_vma_allocator_create_info.html +++ b/docs/html/struct_vma_allocator_create_info.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaAllocatorCreateInfo Struct Reference + + @@ -31,23 +33,33 @@ - + + +
    +
    Public Attributes | @@ -320,7 +333,8 @@ Public Attributes
    +
    diff --git a/docs/html/struct_vma_allocator_info-members.html b/docs/html/struct_vma_allocator_info-members.html index 6ea228d..30a04f6 100644 --- a/docs/html/struct_vma_allocator_info-members.html +++ b/docs/html/struct_vma_allocator_info-members.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Member List + + @@ -31,23 +33,33 @@
    - + + +
    +
    VmaAllocatorInfo Member List
    @@ -83,7 +96,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_allocator_info.html b/docs/html/struct_vma_allocator_info.html index a097ca3..457b0a9 100644 --- a/docs/html/struct_vma_allocator_info.html +++ b/docs/html/struct_vma_allocator_info.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaAllocatorInfo Struct Reference + + @@ -31,23 +33,33 @@ - + + +
    +
    Public Attributes | @@ -153,7 +166,8 @@ Public Attributes
    +
    diff --git a/docs/html/struct_vma_budget-members.html b/docs/html/struct_vma_budget-members.html index 02b1530..4ab596b 100644 --- a/docs/html/struct_vma_budget-members.html +++ b/docs/html/struct_vma_budget-members.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Member List + + @@ -31,23 +33,33 @@
    - + + +
    +
    VmaBudget Member List
    @@ -83,7 +96,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_budget.html b/docs/html/struct_vma_budget.html index c967407..34057eb 100644 --- a/docs/html/struct_vma_budget.html +++ b/docs/html/struct_vma_budget.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaBudget Struct Reference + + @@ -31,23 +33,33 @@ - + + +
    +
    Public Attributes | @@ -155,7 +168,8 @@ Public Attributes
    +
    diff --git a/docs/html/struct_vma_defragmentation_context.html b/docs/html/struct_vma_defragmentation_context.html index a59604d..2282a0b 100644 --- a/docs/html/struct_vma_defragmentation_context.html +++ b/docs/html/struct_vma_defragmentation_context.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaDefragmentationContext Struct Reference + + @@ -31,23 +33,33 @@
    - + + +
    +
    VmaDefragmentationContext Struct Reference
    @@ -86,7 +99,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_defragmentation_info-members.html b/docs/html/struct_vma_defragmentation_info-members.html index 0b9aea4..ccc86f1 100644 --- a/docs/html/struct_vma_defragmentation_info-members.html +++ b/docs/html/struct_vma_defragmentation_info-members.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Member List + + @@ -31,23 +33,33 @@ - + + +
    +
    VmaDefragmentationInfo Member List
    @@ -86,7 +99,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_defragmentation_info.html b/docs/html/struct_vma_defragmentation_info.html index 998846a..347f098 100644 --- a/docs/html/struct_vma_defragmentation_info.html +++ b/docs/html/struct_vma_defragmentation_info.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaDefragmentationInfo Struct Reference + + @@ -31,23 +33,33 @@ - + + +
    +
    Public Attributes | @@ -212,7 +225,8 @@ Public Attributes
    +
    diff --git a/docs/html/struct_vma_defragmentation_move-members.html b/docs/html/struct_vma_defragmentation_move-members.html index 3d1f649..6274d43 100644 --- a/docs/html/struct_vma_defragmentation_move-members.html +++ b/docs/html/struct_vma_defragmentation_move-members.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Member List + + @@ -31,23 +33,33 @@
    - + + +
    +
    VmaDefragmentationMove Member List
    @@ -83,7 +96,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_defragmentation_move.html b/docs/html/struct_vma_defragmentation_move.html index 801d946..637b2b4 100644 --- a/docs/html/struct_vma_defragmentation_move.html +++ b/docs/html/struct_vma_defragmentation_move.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaDefragmentationMove Struct Reference + + @@ -31,23 +33,33 @@ - + + +
    +
    Public Attributes | @@ -151,7 +164,8 @@ Public Attributes
    +
    diff --git a/docs/html/struct_vma_defragmentation_pass_move_info-members.html b/docs/html/struct_vma_defragmentation_pass_move_info-members.html index eaeb162..1749d83 100644 --- a/docs/html/struct_vma_defragmentation_pass_move_info-members.html +++ b/docs/html/struct_vma_defragmentation_pass_move_info-members.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Member List + + @@ -31,23 +33,33 @@
    - + + +
    +
    VmaDefragmentationPassMoveInfo Member List
    @@ -82,7 +95,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_defragmentation_pass_move_info.html b/docs/html/struct_vma_defragmentation_pass_move_info.html index 385f3da..5a9c457 100644 --- a/docs/html/struct_vma_defragmentation_pass_move_info.html +++ b/docs/html/struct_vma_defragmentation_pass_move_info.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaDefragmentationPassMoveInfo Struct Reference + + @@ -31,23 +33,33 @@ - + + +
    +
    Public Attributes | @@ -148,7 +161,8 @@ Public Attributes
    +
    diff --git a/docs/html/struct_vma_defragmentation_stats-members.html b/docs/html/struct_vma_defragmentation_stats-members.html index ae11ef0..a366427 100644 --- a/docs/html/struct_vma_defragmentation_stats-members.html +++ b/docs/html/struct_vma_defragmentation_stats-members.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Member List + + @@ -31,23 +33,33 @@
    - + + +
    +
    VmaDefragmentationStats Member List
    @@ -84,7 +97,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_defragmentation_stats.html b/docs/html/struct_vma_defragmentation_stats.html index ef79ba8..43c9a1c 100644 --- a/docs/html/struct_vma_defragmentation_stats.html +++ b/docs/html/struct_vma_defragmentation_stats.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaDefragmentationStats Struct Reference + + @@ -31,23 +33,33 @@ - + + +
    +
    Public Attributes | @@ -169,7 +182,8 @@ Public Attributes
    +
    diff --git a/docs/html/struct_vma_detailed_statistics-members.html b/docs/html/struct_vma_detailed_statistics-members.html index feeeeda..6a03c85 100644 --- a/docs/html/struct_vma_detailed_statistics-members.html +++ b/docs/html/struct_vma_detailed_statistics-members.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Member List + + @@ -31,23 +33,33 @@
    - + + +
    +
    VmaDetailedStatistics Member List
    @@ -86,7 +99,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_detailed_statistics.html b/docs/html/struct_vma_detailed_statistics.html index d92c4e6..d355a0b 100644 --- a/docs/html/struct_vma_detailed_statistics.html +++ b/docs/html/struct_vma_detailed_statistics.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaDetailedStatistics Struct Reference + + @@ -31,23 +33,33 @@ - + + +
    +
    Public Attributes | @@ -212,7 +225,8 @@ Public Attributes
    +
    diff --git a/docs/html/struct_vma_device_memory_callbacks-members.html b/docs/html/struct_vma_device_memory_callbacks-members.html index f117548..7d2ff46 100644 --- a/docs/html/struct_vma_device_memory_callbacks-members.html +++ b/docs/html/struct_vma_device_memory_callbacks-members.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Member List + + @@ -31,23 +33,33 @@
    - + + +
    +
    VmaDeviceMemoryCallbacks Member List
    @@ -83,7 +96,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_device_memory_callbacks.html b/docs/html/struct_vma_device_memory_callbacks.html index feda366..debd441 100644 --- a/docs/html/struct_vma_device_memory_callbacks.html +++ b/docs/html/struct_vma_device_memory_callbacks.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaDeviceMemoryCallbacks Struct Reference + + @@ -31,23 +33,33 @@ - + + +
    +
    Public Attributes | @@ -152,7 +165,8 @@ Public Attributes
    +
    diff --git a/docs/html/struct_vma_pool.html b/docs/html/struct_vma_pool.html index 787e994..0d3ac0c 100644 --- a/docs/html/struct_vma_pool.html +++ b/docs/html/struct_vma_pool.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaPool Struct Reference + + @@ -31,23 +33,33 @@
    - + + +
    +
    VmaPool Struct Reference
    @@ -87,7 +100,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_pool_create_info-members.html b/docs/html/struct_vma_pool_create_info-members.html index dfbe520..13b1db7 100644 --- a/docs/html/struct_vma_pool_create_info-members.html +++ b/docs/html/struct_vma_pool_create_info-members.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Member List + + @@ -31,23 +33,33 @@ - + + +
    +
    VmaPoolCreateInfo Member List
    @@ -88,7 +101,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_pool_create_info.html b/docs/html/struct_vma_pool_create_info.html index 9756a50..fcd21f5 100644 --- a/docs/html/struct_vma_pool_create_info.html +++ b/docs/html/struct_vma_pool_create_info.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaPoolCreateInfo Struct Reference + + @@ -31,23 +33,33 @@ - + + +
    +
    Public Attributes | @@ -254,7 +267,8 @@ Public Attributes
    +
    diff --git a/docs/html/struct_vma_statistics-members.html b/docs/html/struct_vma_statistics-members.html index d95e595..4bd4304 100644 --- a/docs/html/struct_vma_statistics-members.html +++ b/docs/html/struct_vma_statistics-members.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Member List + + @@ -31,23 +33,33 @@
    - + + +
    +
    VmaStatistics Member List
    @@ -84,7 +97,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_statistics.html b/docs/html/struct_vma_statistics.html index 6134cf1..1dbb947 100644 --- a/docs/html/struct_vma_statistics.html +++ b/docs/html/struct_vma_statistics.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaStatistics Struct Reference + + @@ -31,23 +33,33 @@ - + + +
    +
    Public Attributes | @@ -173,7 +186,8 @@ Public Attributes
    +
    diff --git a/docs/html/struct_vma_total_statistics-members.html b/docs/html/struct_vma_total_statistics-members.html index 9b213d2..63a7700 100644 --- a/docs/html/struct_vma_total_statistics-members.html +++ b/docs/html/struct_vma_total_statistics-members.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Member List + + @@ -31,23 +33,33 @@
    - + + +
    +
    VmaTotalStatistics Member List
    @@ -83,7 +96,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_total_statistics.html b/docs/html/struct_vma_total_statistics.html index 5ccc304..44eeeb8 100644 --- a/docs/html/struct_vma_total_statistics.html +++ b/docs/html/struct_vma_total_statistics.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaTotalStatistics Struct Reference + + @@ -31,23 +33,33 @@ - + + +
    +
    Public Attributes | @@ -142,7 +155,8 @@ Public Attributes
    +
    diff --git a/docs/html/struct_vma_virtual_allocation.html b/docs/html/struct_vma_virtual_allocation.html index ab728fb..015720c 100644 --- a/docs/html/struct_vma_virtual_allocation.html +++ b/docs/html/struct_vma_virtual_allocation.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaVirtualAllocation Struct Reference + + @@ -31,23 +33,33 @@
    - + + +
    +
    VmaVirtualAllocation Struct Reference
    @@ -87,7 +100,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_virtual_allocation_create_info-members.html b/docs/html/struct_vma_virtual_allocation_create_info-members.html index 1aa70fa..f53e549 100644 --- a/docs/html/struct_vma_virtual_allocation_create_info-members.html +++ b/docs/html/struct_vma_virtual_allocation_create_info-members.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Member List + + @@ -31,23 +33,33 @@ - + + +
    +
    VmaVirtualAllocationCreateInfo Member List
    @@ -84,7 +97,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_virtual_allocation_create_info.html b/docs/html/struct_vma_virtual_allocation_create_info.html index 46fc6d6..4a5241b 100644 --- a/docs/html/struct_vma_virtual_allocation_create_info.html +++ b/docs/html/struct_vma_virtual_allocation_create_info.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaVirtualAllocationCreateInfo Struct Reference + + @@ -31,23 +33,33 @@ - + + +
    +
    Public Attributes | @@ -172,7 +185,8 @@ Public Attributes
    +
    diff --git a/docs/html/struct_vma_virtual_allocation_info-members.html b/docs/html/struct_vma_virtual_allocation_info-members.html index a85163b..2e2ac50 100644 --- a/docs/html/struct_vma_virtual_allocation_info-members.html +++ b/docs/html/struct_vma_virtual_allocation_info-members.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Member List + + @@ -31,23 +33,33 @@
    - + + +
    +
    VmaVirtualAllocationInfo Member List
    @@ -83,7 +96,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_virtual_allocation_info.html b/docs/html/struct_vma_virtual_allocation_info.html index d408865..c92b1cc 100644 --- a/docs/html/struct_vma_virtual_allocation_info.html +++ b/docs/html/struct_vma_virtual_allocation_info.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaVirtualAllocationInfo Struct Reference + + @@ -31,23 +33,33 @@ - + + +
    +
    Public Attributes | @@ -153,7 +166,8 @@ Public Attributes
    +
    diff --git a/docs/html/struct_vma_virtual_block.html b/docs/html/struct_vma_virtual_block.html index 0d7a3e7..97b4b87 100644 --- a/docs/html/struct_vma_virtual_block.html +++ b/docs/html/struct_vma_virtual_block.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaVirtualBlock Struct Reference + + @@ -31,23 +33,33 @@
    - + + +
    +
    VmaVirtualBlock Struct Reference
    @@ -87,7 +100,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_virtual_block_create_info-members.html b/docs/html/struct_vma_virtual_block_create_info-members.html index 0254210..1c90d02 100644 --- a/docs/html/struct_vma_virtual_block_create_info-members.html +++ b/docs/html/struct_vma_virtual_block_create_info-members.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Member List + + @@ -31,23 +33,33 @@ - + + +
    +
    VmaVirtualBlockCreateInfo Member List
    @@ -83,7 +96,8 @@ $(function() {
    + diff --git a/docs/html/struct_vma_virtual_block_create_info.html b/docs/html/struct_vma_virtual_block_create_info.html index 378e9b4..034c27f 100644 --- a/docs/html/struct_vma_virtual_block_create_info.html +++ b/docs/html/struct_vma_virtual_block_create_info.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaVirtualBlockCreateInfo Struct Reference + + @@ -31,23 +33,33 @@ - + + +
    +
    Public Attributes | @@ -152,7 +165,8 @@ Public Attributes
    +
    diff --git a/docs/html/struct_vma_vulkan_functions-members.html b/docs/html/struct_vma_vulkan_functions-members.html index 2d39f27..9aa092d 100644 --- a/docs/html/struct_vma_vulkan_functions-members.html +++ b/docs/html/struct_vma_vulkan_functions-members.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Member List + + @@ -31,23 +33,33 @@
    - + + +
    +
    VmaVulkanFunctions Member List
    @@ -97,16 +110,18 @@ $(function() { vkGetImageMemoryRequirementsVmaVulkanFunctions vkGetImageMemoryRequirements2KHRVmaVulkanFunctions vkGetInstanceProcAddrVmaVulkanFunctions - vkGetPhysicalDeviceMemoryPropertiesVmaVulkanFunctions - vkGetPhysicalDeviceMemoryProperties2KHRVmaVulkanFunctions - vkGetPhysicalDevicePropertiesVmaVulkanFunctions - vkInvalidateMappedMemoryRangesVmaVulkanFunctions - vkMapMemoryVmaVulkanFunctions - vkUnmapMemoryVmaVulkanFunctions + vkGetMemoryWin32HandleKHRVmaVulkanFunctions + vkGetPhysicalDeviceMemoryPropertiesVmaVulkanFunctions + vkGetPhysicalDeviceMemoryProperties2KHRVmaVulkanFunctions + vkGetPhysicalDevicePropertiesVmaVulkanFunctions + vkInvalidateMappedMemoryRangesVmaVulkanFunctions + vkMapMemoryVmaVulkanFunctions + vkUnmapMemoryVmaVulkanFunctions
    + diff --git a/docs/html/struct_vma_vulkan_functions.html b/docs/html/struct_vma_vulkan_functions.html index 400f3ad..85af395 100644 --- a/docs/html/struct_vma_vulkan_functions.html +++ b/docs/html/struct_vma_vulkan_functions.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VmaVulkanFunctions Struct Reference + + @@ -31,23 +33,33 @@ - + + +
    +
    Public Attributes | @@ -144,6 +157,8 @@ Public Attributes PFN_vkGetDeviceImageMemoryRequirementsKHR vkGetDeviceImageMemoryRequirements  Fetch from "vkGetDeviceImageMemoryRequirements" on Vulkan >= 1.3, but you can also fetch it from "vkGetDeviceImageMemoryRequirementsKHR" if you enabled extension VK_KHR_maintenance4.
      +PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR

    Detailed Description

    Pointers to some Vulkan functions - a subset used by the library.

    @@ -443,6 +458,20 @@ Public Attributes

    Required when using VMA_DYNAMIC_VULKAN_FUNCTIONS.

    +
    +
    + +

    ◆ vkGetMemoryWin32HandleKHR

    + +
    +
    + + + + +
    PFN_vkGetMemoryWin32HandleKHR VmaVulkanFunctions::vkGetMemoryWin32HandleKHR
    +
    +
    @@ -537,7 +566,8 @@ Public Attributes
    +
    diff --git a/docs/html/topics.html b/docs/html/topics.html index 22cc38f..1696898 100644 --- a/docs/html/topics.html +++ b/docs/html/topics.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Topics + + @@ -31,24 +33,35 @@ - + + +
    +
    +
    diff --git a/docs/html/usage_patterns.html b/docs/html/usage_patterns.html index 5381c6f..9210086 100644 --- a/docs/html/usage_patterns.html +++ b/docs/html/usage_patterns.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Recommended usage patterns + + @@ -31,23 +33,33 @@
    - + + + +
    Recommended usage patterns
    @@ -106,12 +119,12 @@ GPU-only resource
    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:529
    -
    @ VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT
    Set this flag if the allocation should have its own memory block.
    Definition vk_mem_alloc.h:568
    -
    Parameters of new VmaAllocation.
    Definition vk_mem_alloc.h:1265
    -
    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:1311
    -
    VmaMemoryUsage usage
    Intended usage of memory.
    Definition vk_mem_alloc.h:1273
    -
    VmaAllocationCreateFlags flags
    Use VmaAllocationCreateFlagBits enum.
    Definition vk_mem_alloc.h:1267
    +
    @ VMA_MEMORY_USAGE_AUTO
    Definition vk_mem_alloc.h:548
    +
    @ VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT
    Set this flag if the allocation should have its own memory block.
    Definition vk_mem_alloc.h:587
    +
    Parameters of new VmaAllocation.
    Definition vk_mem_alloc.h:1289
    +
    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:1335
    +
    VmaMemoryUsage usage
    Intended usage of memory.
    Definition vk_mem_alloc.h:1297
    +
    VmaAllocationCreateFlags flags
    Use VmaAllocationCreateFlagBits enum.
    Definition vk_mem_alloc.h:1291
    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 +149,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:589
    -
    @ VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT
    Definition vk_mem_alloc.h:638
    -
    Definition vk_mem_alloc.h:1384
    -
    void * pMappedData
    Pointer to the beginning of this allocation as mapped data.
    Definition vk_mem_alloc.h:1426
    +
    @ 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:608
    +
    @ VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT
    Definition vk_mem_alloc.h:657
    +
    Definition vk_mem_alloc.h:1408
    +
    void * pMappedData
    Pointer to the beginning of this allocation as mapped data.
    Definition vk_mem_alloc.h:1450

    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 +175,7 @@ Readback
    ...
    const float* downloadedData = (const float*)allocInfo.pMappedData;
    -
    @ VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT
    Definition vk_mem_alloc.h:650
    +
    @ VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT
    Definition vk_mem_alloc.h:669

    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:

    @@ -277,7 +290,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:662
    +
    @ VMA_ALLOCATION_CREATE_HOST_ACCESS_ALLOW_TRANSFER_INSTEAD_BIT
    Definition vk_mem_alloc.h:681

    Other use cases

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

    @@ -303,7 +316,8 @@ Other use cases + diff --git a/docs/html/virtual_allocator.html b/docs/html/virtual_allocator.html index 3b065f6..537b79a 100644 --- a/docs/html/virtual_allocator.html +++ b/docs/html/virtual_allocator.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: Virtual allocator + + @@ -31,23 +33,33 @@ - + + + +
    Virtual allocator
    @@ -93,8 +106,8 @@ Creating virtual 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:1573
    -
    VkDeviceSize size
    Total size of the virtual block.
    Definition vk_mem_alloc.h:1579
    +
    Parameters of created VmaVirtualBlock object to be passed to vmaCreateVirtualBlock().
    Definition vk_mem_alloc.h:1597
    +
    VkDeviceSize size
    Total size of the virtual block.
    Definition vk_mem_alloc.h:1603
    Handle to a virtual block object that allows to use core allocation algorithm without allocating any ...

    Making virtual allocations

    @@ -120,8 +133,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:1594
    -
    VkDeviceSize size
    Size of the allocation.
    Definition vk_mem_alloc.h:1599
    +
    Parameters of created virtual allocation to be passed to vmaVirtualAllocate().
    Definition vk_mem_alloc.h:1618
    +
    VkDeviceSize size
    Size of the allocation.
    Definition vk_mem_alloc.h:1623
    Represents single memory allocation done inside VmaVirtualBlock.

    Deallocation

    @@ -149,8 +162,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:1617
    -
    void * pUserData
    Custom pointer associated with the allocation.
    Definition vk_mem_alloc.h:1632
    +
    Parameters of an existing virtual allocation, returned by vmaGetVirtualAllocationInfo().
    Definition vk_mem_alloc.h:1641
    +
    void * pUserData
    Custom pointer associated with the allocation.
    Definition vk_mem_alloc.h:1656

    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 +173,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:1604
    +
    VkDeviceSize alignment
    Required alignment of the allocation. Optional.
    Definition vk_mem_alloc.h:1628

    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:

    +
    Classes | @@ -267,6 +280,7 @@ Enumerations , VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE4_BIT = 0x00000080 ,
      VMA_ALLOCATOR_CREATE_KHR_MAINTENANCE5_BIT = 0x00000100 +, VMA_ALLOCATOR_CREATE_KHR_EXTERNAL_MEMORY_WIN32_BIT = 0x00000200 , VMA_ALLOCATOR_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
    } @@ -451,6 +465,9 @@ Functions void vmaGetAllocationMemoryProperties (VmaAllocator allocator, VmaAllocation allocation, VkMemoryPropertyFlags *pFlags)  Given an allocation, returns Property Flags of its memory type.
      +VkResult vmaGetMemoryWin32Handle (VmaAllocator allocator, VmaAllocation allocation, HANDLE hTargetProcess, HANDLE *pHandle) + Given an allocation, returns Win32 handle that may be imported by other processes or APIs.
    +  VkResult vmaMapMemory (VmaAllocator allocator, VmaAllocation allocation, void **ppData)  Maps memory represented by given allocation and returns pointer to it.
      @@ -574,7 +591,8 @@ Functions
    +
    diff --git a/docs/html/vk_amd_device_coherent_memory.html b/docs/html/vk_amd_device_coherent_memory.html index acbc111..4ed6e15 100644 --- a/docs/html/vk_amd_device_coherent_memory.html +++ b/docs/html/vk_amd_device_coherent_memory.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VK_AMD_device_coherent_memory + + @@ -31,23 +33,33 @@
    - + + + +
    VK_AMD_device_coherent_memory
    @@ -103,7 +116,8 @@ More information
    +
    diff --git a/docs/html/vk_ext_memory_priority.html b/docs/html/vk_ext_memory_priority.html index 1919fa2..40957e2 100644 --- a/docs/html/vk_ext_memory_priority.html +++ b/docs/html/vk_ext_memory_priority.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VK_EXT_memory_priority + + @@ -31,23 +33,33 @@ - + + + +
    VK_EXT_memory_priority
    @@ -119,12 +132,12 @@ Usage
    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:529
    -
    @ VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT
    Set this flag if the allocation should have its own memory block.
    Definition vk_mem_alloc.h:568
    -
    Parameters of new VmaAllocation.
    Definition vk_mem_alloc.h:1265
    -
    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:1311
    -
    VmaMemoryUsage usage
    Intended usage of memory.
    Definition vk_mem_alloc.h:1273
    -
    VmaAllocationCreateFlags flags
    Use VmaAllocationCreateFlagBits enum.
    Definition vk_mem_alloc.h:1267
    +
    @ VMA_MEMORY_USAGE_AUTO
    Definition vk_mem_alloc.h:548
    +
    @ VMA_ALLOCATION_CREATE_DEDICATED_MEMORY_BIT
    Set this flag if the allocation should have its own memory block.
    Definition vk_mem_alloc.h:587
    +
    Parameters of new VmaAllocation.
    Definition vk_mem_alloc.h:1289
    +
    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:1335
    +
    VmaMemoryUsage usage
    Intended usage of memory.
    Definition vk_mem_alloc.h:1297
    +
    VmaAllocationCreateFlags flags
    Use VmaAllocationCreateFlagBits enum.
    Definition vk_mem_alloc.h:1291
    Represents single memory allocation.

    priority member is ignored in the following situations:

    + diff --git a/docs/html/vk_khr_dedicated_allocation.html b/docs/html/vk_khr_dedicated_allocation.html index eb68397..8fe04ab 100644 --- a/docs/html/vk_khr_dedicated_allocation.html +++ b/docs/html/vk_khr_dedicated_allocation.html @@ -3,13 +3,15 @@ - + Vulkan Memory Allocator: VK_KHR_dedicated_allocation + + @@ -31,23 +33,33 @@ - + + + +
    VK_KHR_dedicated_allocation
    @@ -92,7 +105,7 @@ $(function() {
    vmaCreateAllocator(&allocatorInfo, &allocator);
    VkResult vmaCreateAllocator(const VmaAllocatorCreateInfo *pCreateInfo, VmaAllocator *pAllocator)
    Creates VmaAllocator object.
    -
    @ VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT
    Enables usage of VK_KHR_dedicated_allocation extension.
    Definition vk_mem_alloc.h:368
    +
    @ VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT
    Enables usage of VK_KHR_dedicated_allocation extension.
    Definition vk_mem_alloc.h:378

    That is all. The extension will be automatically used whenever you create a buffer using vmaCreateBuffer() or image using vmaCreateImage().

    When using the extension together with Vulkan Validation Layer, you will receive warnings like this:

    vkBindBufferMemory(): Binding memory to buffer 0x33 but vkGetBufferMemoryRequirements() has not been called on that buffer.

    @@ -106,7 +119,8 @@ $(function() {
    + diff --git a/docs/html/vk_khr_external_memory_win32.html b/docs/html/vk_khr_external_memory_win32.html new file mode 100644 index 0000000..5d1a806 --- /dev/null +++ b/docs/html/vk_khr_external_memory_win32.html @@ -0,0 +1,210 @@ + + + + + + + +Vulkan Memory Allocator: VK_KHR_external_memory_win32 + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    Vulkan Memory Allocator +
    +
    +
    + + + + + + + + + + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + + +
    +
    +
    +
    VK_KHR_external_memory_win32
    +
    +
    +

    On Windows, the VK_KHR_external_memory_win32 device extension allows exporting a Win32 HANDLE of a VkDeviceMemory block, to be able to reference the memory on other Vulkan logical devices or instances, in multiple processes, and/or in multiple APIs. VMA offers support for it.

    +

    +Initialization

    +

    1) Make sure the extension is defined in the code by including following header before including VMA:

    +
    #include <vulkan/vulkan_win32.h>
    +

    2) Check if "VK_KHR_external_memory_win32" is available among device extensions. Enable it when creating the VkDevice object.

    +

    3) Enable the usage of this extension in VMA by setting flag VMA_ALLOCATOR_CREATE_KHR_EXTERNAL_MEMORY_WIN32_BIT when calling vmaCreateAllocator().

    +

    4) Make sure that VMA has access to the vkGetMemoryWin32HandleKHR function by either enabling VMA_DYNAMIC_VULKAN_FUNCTIONS macro or setting VmaVulkanFunctions::vkGetMemoryWin32HandleKHR explicitly. For more information, see Importing Vulkan functions.

    +

    +Preparations

    +

    You can find example usage among tests, in file "Tests.cpp", function TestWin32Handles().

    +

    To use the extenion, buffers need to be created with VkExternalMemoryBufferCreateInfoKHR attached to their pNext chain, and memory allocations need to be made with VkExportMemoryAllocateInfoKHR attached to their pNext chain. To make use of them, you need to use Custom memory pools. Example:

    +
    // Define an example buffer and allocation parameters.
    +
    VkExternalMemoryBufferCreateInfoKHR externalMemBufCreateInfo = {
    +
    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR,
    +
    nullptr,
    +
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT
    +
    };
    +
    VkBufferCreateInfo exampleBufCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO };
    +
    exampleBufCreateInfo.size = 0x10000; // Doesn't matter here.
    +
    exampleBufCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
    +
    exampleBufCreateInfo.pNext = &externalMemBufCreateInfo;
    +
    +
    VmaAllocationCreateInfo exampleAllocCreateInfo = {};
    +
    exampleAllocCreateInfo.usage = VMA_MEMORY_USAGE_AUTO;
    +
    +
    // Find memory type index to use for the custom pool.
    +
    uint32_t memTypeIndex;
    +
    VkResult res = vmaFindMemoryTypeIndexForBufferInfo(g_Allocator,
    +
    &exampleBufCreateInfo, &exampleAllocCreateInfo, &memTypeIndex);
    +
    // Check res...
    +
    +
    // Create a custom pool.
    +
    constexpr static VkExportMemoryAllocateInfoKHR exportMemAllocInfo = {
    +
    VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR,
    +
    nullptr,
    +
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT
    +
    };
    +
    VmaPoolCreateInfo poolCreateInfo = {};
    +
    poolCreateInfo.memoryTypeIndex = memTypeIndex;
    +
    poolCreateInfo.pMemoryAllocateNext = (void*)&exportMemAllocInfo;
    +
    +
    VmaPool pool;
    +
    res = vmaCreatePool(g_Allocator, &poolCreateInfo, &pool);
    +
    // Check res...
    +
    +
    // YOUR OTHER CODE COMES HERE....
    +
    +
    // At the end, don't forget to destroy it!
    +
    vmaDestroyPool(g_Allocator, pool);
    +
    void vmaDestroyPool(VmaAllocator allocator, VmaPool pool)
    Destroys VmaPool object and frees Vulkan device memory.
    +
    VkResult vmaCreatePool(VmaAllocator allocator, const VmaPoolCreateInfo *pCreateInfo, VmaPool *pPool)
    Allocates Vulkan device memory and creates VmaPool object.
    +
    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:548
    +
    Parameters of new VmaAllocation.
    Definition vk_mem_alloc.h:1289
    +
    VmaMemoryUsage usage
    Intended usage of memory.
    Definition vk_mem_alloc.h:1297
    +
    Describes parameter of created VmaPool.
    Definition vk_mem_alloc.h:1340
    +
    uint32_t memoryTypeIndex
    Vulkan memory type index to allocate this pool from.
    Definition vk_mem_alloc.h:1343
    +
    void *VkMemoryAllocateInfo pMemoryAllocateNext
    Additional pNext chain to be attached to VkMemoryAllocateInfo used for every allocation made by this ...
    Definition vk_mem_alloc.h:1392
    +
    Represents custom memory pool.
    +

    Note that the structure passed as VmaPoolCreateInfo::pMemoryAllocateNext must remain alive and unchanged for the whole lifetime of the custom pool, because it will be used when the pool allocates a new device memory block. No copy is made internally. This is why variable exportMemAllocInfo is defined as static.

    +

    +Memory allocation

    +

    Finally, you can create a buffer with an allocation out of the custom pool. The buffer should use same flags as the sample buffer used to find the memory type. It should also specify VkExternalMemoryBufferCreateInfoKHR in its pNext chain.

    +
    VkExternalMemoryBufferCreateInfoKHR externalMemBufCreateInfo = {
    +
    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR,
    +
    nullptr,
    +
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT
    +
    };
    +
    VkBufferCreateInfo bufCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO };
    +
    bufCreateInfo.size = // Your desired buffer size.
    +
    bufCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;
    +
    bufCreateInfo.pNext = &externalMemBufCreateInfo;
    +
    +
    VmaAllocationCreateInfo allocCreateInfo = {};
    +
    allocCreateInfo.pool = pool; // It is enough to set this one member.
    +
    +
    VkBuffer buf;
    + +
    res = vmaCreateBuffer(g_Allocator, &bufCreateInfo, &allocCreateInfo, &buf, &alloc, nullptr);
    +
    // Check res...
    +
    +
    // YOUR OTHER CODE COMES HERE....
    +
    +
    // At the end, don't forget to destroy it!
    +
    vmaDestroyBuffer(g_Allocator, buf, alloc);
    +
    void vmaDestroyBuffer(VmaAllocator allocator, VkBuffer buffer, VmaAllocation allocation)
    Destroys Vulkan buffer and frees allocated memory.
    +
    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.
    +
    VmaPool pool
    Pool that this allocation should be created in.
    Definition vk_mem_alloc.h:1321
    +
    Represents single memory allocation.
    +

    +Exporting Win32 handle

    +

    After the allocation is created, you can acquire a Win32 HANDLE to the VkDeviceMemory block it belongs to. VMA function vmaGetMemoryWin32Handle() is a replacement of the Vulkan function vkGetMemoryWin32HandleKHR.

    +
    HANDLE handle;
    +
    res = vmaGetMemoryWin32Handle(g_Allocator, alloc, nullptr, &handle);
    +
    // Check res...
    +
    +
    // YOUR OTHER CODE COMES HERE....
    +
    +
    // At the end, you must close the handle.
    +
    CloseHandle(handle);
    +
    VkResult vmaGetMemoryWin32Handle(VmaAllocator allocator, VmaAllocation allocation, HANDLE hTargetProcess, HANDLE *pHandle)
    Given an allocation, returns Win32 handle that may be imported by other processes or APIs.
    +

    Documentation of the VK_KHR_external_memory_win32 extension states that:

    +
    +

    ‍If handleType is defined as an NT handle, vkGetMemoryWin32HandleKHR must be called no more than once for each valid unique combination of memory and handleType.

    +
    +

    This is ensured automatically inside VMA. The library fetches the handle on first use, remembers it internally, and closes it when the memory block or dedicated allocation is destroyed. Every time you call vmaGetMemoryWin32Handle(), VMA calls DuplicateHandle and returns a new handle that you need to close.

    +

    For further information, please check documentation of the vmaGetMemoryWin32Handle() function.

    +
    +
    + + +
    + + diff --git a/include/vk_mem_alloc.h b/include/vk_mem_alloc.h index c9c1b86..2d3bf59 100644 --- a/include/vk_mem_alloc.h +++ b/include/vk_mem_alloc.h @@ -95,6 +95,7 @@ See also: [product page on GPUOpen](https://gpuopen.com/gaming-product/vulkan-me - \subpage enabling_buffer_device_address - \subpage vk_ext_memory_priority - \subpage vk_amd_device_coherent_memory + - \subpage vk_khr_external_memory_win32 - \subpage general_considerations - [Thread safety](@ref general_considerations_thread_safety) - [Versioning and compatibility](@ref general_considerations_versioning_and_compatibility) @@ -475,6 +476,7 @@ typedef enum VmaAllocatorCreateFlagBits You should set this flag if you found available and enabled this device extension, while creating Vulkan device passed as VmaAllocatorCreateInfo::device. + For more information, see \ref vk_khr_external_memory_win32. */ VMA_ALLOCATOR_CREATE_KHR_EXTERNAL_MEMORY_WIN32_BIT = 0x00000200, @@ -2077,15 +2079,34 @@ VMA_CALL_PRE void VMA_CALL_POST vmaGetAllocationMemoryProperties( #if VMA_EXTERNAL_MEMORY_WIN32 /** -\brief Given an allocation, returns Win32 Handle, that may be imported by other processes or APIs. +\brief Given an allocation, returns Win32 handle that may be imported by other processes or APIs. -`hTargetProcess` must be a valid handle to target process or NULL. If it's `NULL`, the function returns -handle for the current process. +\param hTargetProcess Must be a valid handle to target process or null. If it's null, the function returns + handle for the current process. +\param[out] pHandle Output parameter that returns the handle. -If the allocation was created with `VMA_ALLOCATION_CREATE_EXPORT_WIN32_HANDLE_BIT` flag, -the function fills `pHandle` with handle that can be used in target process. +The function fills `pHandle` with handle that can be used in target process. +The handle is fetched using function `vkGetMemoryWin32HandleKHR`. +When no longer needed, you must close it using: + +\code +CloseHandle(handle); +\endcode + +You can close it any time, before or after destroying the allocation object. +It is reference-counted internally by Windows. + +Note the handle is returned for the entire `VkDeviceMemory` block that the allocation belongs to. +If the allocation is sub-allocated from a larger block, you may need to consider the offset of the allocation +(VmaAllocationInfo::offset). + +If the function fails with `VK_ERROR_FEATURE_NOT_PRESENT` error code, please double-check +that VmaVulkanFunctions::vkGetMemoryWin32HandleKHR function pointer is set, e.g. either by using `VMA_DYNAMIC_VULKAN_FUNCTIONS` +or by manually passing it through VmaAllocatorCreateInfo::pVulkanFunctions. + +For more information, see chapter \ref vk_khr_external_memory_win32. */ -VMA_CALL_PRE VkResult VMA_CALL_POST vmaGetMemoryWin32HandleKHR(VmaAllocator VMA_NOT_NULL allocator, +VMA_CALL_PRE VkResult VMA_CALL_POST vmaGetMemoryWin32Handle(VmaAllocator VMA_NOT_NULL allocator, VmaAllocation VMA_NOT_NULL allocation, HANDLE hTargetProcess, HANDLE* VMA_NOT_NULL pHandle); #endif // VMA_EXTERNAL_MEMORY_WIN32 @@ -16647,7 +16668,7 @@ VMA_CALL_PRE void VMA_CALL_POST vmaFreeVirtualBlockStatsString(VmaVirtualBlock V } } #if VMA_EXTERNAL_MEMORY_WIN32 -VMA_CALL_PRE VkResult VMA_CALL_POST vmaGetMemoryWin32HandleKHR(VmaAllocator VMA_NOT_NULL allocator, +VMA_CALL_PRE VkResult VMA_CALL_POST vmaGetMemoryWin32Handle(VmaAllocator VMA_NOT_NULL allocator, VmaAllocation VMA_NOT_NULL allocation, HANDLE hTargetProcess, HANDLE* VMA_NOT_NULL pHandle) { VMA_ASSERT(allocator && allocation && pHandle); @@ -18799,6 +18820,142 @@ Example use of this extension can be found in the code of the sample and test su accompanying this library. +\page vk_khr_external_memory_win32 VK_KHR_external_memory_win32 + +On Windows, the VK_KHR_external_memory_win32 device extension allows exporting a Win32 `HANDLE` +of a `VkDeviceMemory` block, to be able to reference the memory on other Vulkan logical devices or instances, +in multiple processes, and/or in multiple APIs. +VMA offers support for it. + +\section vk_khr_external_memory_win32_initialization Initialization + +1) Make sure the extension is defined in the code by including following header before including VMA: + +\code +#include +\endcode + +2) Check if "VK_KHR_external_memory_win32" is available among device extensions. +Enable it when creating the `VkDevice` object. + +3) Enable the usage of this extension in VMA by setting flag #VMA_ALLOCATOR_CREATE_KHR_EXTERNAL_MEMORY_WIN32_BIT +when calling vmaCreateAllocator(). + +4) Make sure that VMA has access to the `vkGetMemoryWin32HandleKHR` function by either enabling `VMA_DYNAMIC_VULKAN_FUNCTIONS` macro +or setting VmaVulkanFunctions::vkGetMemoryWin32HandleKHR explicitly. +For more information, see \ref quick_start_initialization_importing_vulkan_functions. + +\section vk_khr_external_memory_win32_preparations Preparations + +You can find example usage among tests, in file "Tests.cpp", function `TestWin32Handles()`. + +To use the extenion, buffers need to be created with `VkExternalMemoryBufferCreateInfoKHR` attached to their `pNext` chain, +and memory allocations need to be made with `VkExportMemoryAllocateInfoKHR` attached to their `pNext` chain. +To make use of them, you need to use \ref custom_memory_pools. Example: + +\code +// Define an example buffer and allocation parameters. +VkExternalMemoryBufferCreateInfoKHR externalMemBufCreateInfo = { + VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR, + nullptr, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT +}; +VkBufferCreateInfo exampleBufCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; +exampleBufCreateInfo.size = 0x10000; // Doesn't matter here. +exampleBufCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; +exampleBufCreateInfo.pNext = &externalMemBufCreateInfo; + +VmaAllocationCreateInfo exampleAllocCreateInfo = {}; +exampleAllocCreateInfo.usage = VMA_MEMORY_USAGE_AUTO; + +// Find memory type index to use for the custom pool. +uint32_t memTypeIndex; +VkResult res = vmaFindMemoryTypeIndexForBufferInfo(g_Allocator, + &exampleBufCreateInfo, &exampleAllocCreateInfo, &memTypeIndex); +// Check res... + +// Create a custom pool. +constexpr static VkExportMemoryAllocateInfoKHR exportMemAllocInfo = { + VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR, + nullptr, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT +}; +VmaPoolCreateInfo poolCreateInfo = {}; +poolCreateInfo.memoryTypeIndex = memTypeIndex; +poolCreateInfo.pMemoryAllocateNext = (void*)&exportMemAllocInfo; + +VmaPool pool; +res = vmaCreatePool(g_Allocator, &poolCreateInfo, &pool); +// Check res... + +// YOUR OTHER CODE COMES HERE.... + +// At the end, don't forget to destroy it! +vmaDestroyPool(g_Allocator, pool); +\endcode + +Note that the structure passed as VmaPoolCreateInfo::pMemoryAllocateNext must remain alive and unchanged +for the whole lifetime of the custom pool, because it will be used when the pool allocates a new device memory block. +No copy is made internally. This is why variable `exportMemAllocInfo` is defined as `static`. + +\section vk_khr_external_memory_win32_memory_allocation Memory allocation + +Finally, you can create a buffer with an allocation out of the custom pool. +The buffer should use same flags as the sample buffer used to find the memory type. +It should also specify `VkExternalMemoryBufferCreateInfoKHR` in its `pNext` chain. + +\code +VkExternalMemoryBufferCreateInfoKHR externalMemBufCreateInfo = { + VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR, + nullptr, + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT +}; +VkBufferCreateInfo bufCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO }; +bufCreateInfo.size = // Your desired buffer size. +bufCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; +bufCreateInfo.pNext = &externalMemBufCreateInfo; + +VmaAllocationCreateInfo allocCreateInfo = {}; +allocCreateInfo.pool = pool; // It is enough to set this one member. + +VkBuffer buf; +VmaAllocation alloc; +res = vmaCreateBuffer(g_Allocator, &bufCreateInfo, &allocCreateInfo, &buf, &alloc, nullptr); +// Check res... + +// YOUR OTHER CODE COMES HERE.... + +// At the end, don't forget to destroy it! +vmaDestroyBuffer(g_Allocator, buf, alloc); +\endcode + +\section vk_khr_external_memory_win32_exporting_win32_handle Exporting Win32 handle + +After the allocation is created, you can acquire a Win32 `HANDLE` to the `VkDeviceMemory` block it belongs to. +VMA function vmaGetMemoryWin32Handle() is a replacement of the Vulkan function `vkGetMemoryWin32HandleKHR`. + +\code +HANDLE handle; +res = vmaGetMemoryWin32Handle(g_Allocator, alloc, nullptr, &handle); +// Check res... + +// YOUR OTHER CODE COMES HERE.... + +// At the end, you must close the handle. +CloseHandle(handle); +\endcode + +Documentation of the VK_KHR_external_memory_win32 extension states that: + +> If handleType is defined as an NT handle, vkGetMemoryWin32HandleKHR must be called no more than once for each valid unique combination of memory and handleType. + +This is ensured automatically inside VMA. +The library fetches the handle on first use, remembers it internally, and closes it when the memory block or dedicated allocation is destroyed. +Every time you call vmaGetMemoryWin32Handle(), VMA calls `DuplicateHandle` and returns a new handle that you need to close. + +For further information, please check documentation of the vmaGetMemoryWin32Handle() function. + + \page enabling_buffer_device_address Enabling buffer device address Device extension VK_KHR_buffer_device_address diff --git a/src/Tests.cpp b/src/Tests.cpp index e82a37e..727c01f 100644 --- a/src/Tests.cpp +++ b/src/Tests.cpp @@ -8281,7 +8281,6 @@ static void TestWin32Handles() TEST(vmaFindMemoryTypeIndexForBufferInfo(g_hAllocator, &bufCreateInfo, &allocCreateInfo, &memTypeIndex) == VK_SUCCESS); - // Create a pool that can have at most 2 blocks, 128 MiB each. VmaPoolCreateInfo poolCreateInfo = {}; poolCreateInfo.memoryTypeIndex = memTypeIndex; poolCreateInfo.pMemoryAllocateNext = (void*)&exportMemAllocInfo; @@ -8301,9 +8300,9 @@ static void TestWin32Handles() TEST(vmaCreateBuffer(g_hAllocator, &bufCreateInfo, &allocCreateInfo, &buf, &alloc, nullptr) == VK_SUCCESS); HANDLE handle = NULL; HANDLE handle2 = NULL; - TEST(vmaGetMemoryWin32HandleKHR(g_hAllocator, alloc, nullptr, &handle) == VK_SUCCESS); + TEST(vmaGetMemoryWin32Handle(g_hAllocator, alloc, nullptr, &handle) == VK_SUCCESS); TEST(handle != nullptr); - TEST(vmaGetMemoryWin32HandleKHR(g_hAllocator, alloc, nullptr, &handle2) == VK_SUCCESS); + TEST(vmaGetMemoryWin32Handle(g_hAllocator, alloc, nullptr, &handle2) == VK_SUCCESS); TEST(handle2 != nullptr); TEST(handle2 != handle);