Description of a Allocator to be created. More...
#include <vk_mem_alloc.h>
Public Attributes | |
VmaAllocatorCreateFlags | flags |
Flags for created allocator. Use VmaAllocatorCreateFlagBits enum. More... | |
VkPhysicalDevice | physicalDevice |
Vulkan physical device. More... | |
VkDevice | device |
Vulkan device. More... | |
VkDeviceSize | preferredLargeHeapBlockSize |
Preferred size of a single VkDeviceMemory block to be allocated from large heaps > 1 GiB. Optional. More... | |
const VkAllocationCallbacks * | pAllocationCallbacks |
Custom CPU memory allocation callbacks. Optional. More... | |
const VmaDeviceMemoryCallbacks * | pDeviceMemoryCallbacks |
Informative callbacks for vkAllocateMemory , vkFreeMemory . Optional. More... | |
uint32_t | frameInUseCount |
Maximum number of additional frames that are in use at the same time as current frame. More... | |
const VkDeviceSize * | pHeapSizeLimit |
Either null or a pointer to an array of limits on maximum number of bytes that can be allocated out of particular Vulkan memory heap. More... | |
const VmaVulkanFunctions * | pVulkanFunctions |
Pointers to Vulkan functions. More... | |
const VmaRecordSettings * | pRecordSettings |
Parameters for recording of VMA calls. More... | |
Description of a Allocator to be created.
Definition at line 1866 of file vk_mem_alloc.h.
VkDevice VmaAllocatorCreateInfo::device |
Vulkan device.
It must be valid throughout whole lifetime of created allocator.
Definition at line 1875 of file vk_mem_alloc.h.
VmaAllocatorCreateFlags VmaAllocatorCreateInfo::flags |
Flags for created allocator. Use VmaAllocatorCreateFlagBits enum.
Definition at line 1869 of file vk_mem_alloc.h.
Referenced by QVk_Init().
uint32_t VmaAllocatorCreateInfo::frameInUseCount |
Maximum number of additional frames that are in use at the same time as current frame.
This value is used only when you make allocations with VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT flag. Such allocation cannot become lost if allocation.lastUseFrameIndex >= allocator.currentFrameIndex - frameInUseCount.
For example, if you double-buffer your command buffers, so resources used for rendering in previous frame may still be in use by the GPU at the moment you allocate resources needed for the current frame, set this value to 1.
If you want to allow any allocations other than used in the current frame to become lost, set this value to 0.
Definition at line 1898 of file vk_mem_alloc.h.
const VkAllocationCallbacks* VmaAllocatorCreateInfo::pAllocationCallbacks |
Custom CPU memory allocation callbacks. Optional.
Optional, can be null. When specified, will also be used for all CPU-side memory allocations.
Definition at line 1881 of file vk_mem_alloc.h.
const VmaDeviceMemoryCallbacks* VmaAllocatorCreateInfo::pDeviceMemoryCallbacks |
Informative callbacks for vkAllocateMemory
, vkFreeMemory
. Optional.
Optional, can be null.
Definition at line 1884 of file vk_mem_alloc.h.
const VkDeviceSize* VmaAllocatorCreateInfo::pHeapSizeLimit |
Either null or a pointer to an array of limits on maximum number of bytes that can be allocated out of particular Vulkan memory heap.
If not NULL, it must be a pointer to an array of VkPhysicalDeviceMemoryProperties::memoryHeapCount
elements, defining limit on maximum number of bytes that can be allocated out of particular Vulkan memory heap.
Any of the elements may be equal to VK_WHOLE_SIZE
, which means no limit on that heap. This is also the default in case of pHeapSizeLimit
= NULL.
If there is a limit defined for a heap:
VK_ERROR_OUT_OF_DEVICE_MEMORY
.VkMemoryHeap::size
, the value of this limit will be reported instead when using vmaGetMemoryProperties().Warning! Using this feature may not be equivalent to installing a GPU with smaller amount of memory, because graphics driver doesn't necessary fail new allocations with VK_ERROR_OUT_OF_DEVICE_MEMORY
result when memory capacity is exceeded. It may return success and just silently migrate some device memory blocks to system RAM. This driver behavior can also be controlled using VK_AMD_memory_overallocation_behavior extension.
Definition at line 1923 of file vk_mem_alloc.h.
VkPhysicalDevice VmaAllocatorCreateInfo::physicalDevice |
Vulkan physical device.
It must be valid throughout whole lifetime of created allocator.
Definition at line 1872 of file vk_mem_alloc.h.
const VmaRecordSettings* VmaAllocatorCreateInfo::pRecordSettings |
Parameters for recording of VMA calls.
Can be null.
If not null, it enables recording of calls to VMA functions to a file. If support for recording is not enabled using VMA_RECORDING_ENABLED
macro, creation of the allocator object fails with VK_ERROR_FEATURE_NOT_PRESENT
.
Definition at line 1942 of file vk_mem_alloc.h.
VkDeviceSize VmaAllocatorCreateInfo::preferredLargeHeapBlockSize |
Preferred size of a single VkDeviceMemory
block to be allocated from large heaps > 1 GiB. Optional.
Set to 0 to use default, which is currently 256 MiB.
Definition at line 1878 of file vk_mem_alloc.h.
const VmaVulkanFunctions* VmaAllocatorCreateInfo::pVulkanFunctions |
Pointers to Vulkan functions.
Can be null if you leave define VMA_STATIC_VULKAN_FUNCTIONS 1
.
If you leave define VMA_STATIC_VULKAN_FUNCTIONS 1
in configuration section, you can pass null as this member, because the library will fetch pointers to Vulkan functions internally in a static way, like:
vulkanFunctions.vkAllocateMemory = &vkAllocateMemory;
Fill this member if you want to provide your own pointers to Vulkan functions, e.g. fetched using vkGetInstanceProcAddr()
and vkGetDeviceProcAddr()
.
Definition at line 1935 of file vk_mem_alloc.h.