Major release after a year of development in “master” branch and feature branches. Notable new features: supporting Vulkan 1.1, supporting query for memory budget.
VmaBudget. This can also serve as simple statistics, more efficient than
VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BITthat fails an allocation if it would exceed the budget.
VMA_MEMORY_USAGE_CPU_COPYfor memory that is preferably not
DEVICE_LOCALbut not guaranteed to be
VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATEDfor memory that is
VMA_ALLOCATION_CREATE_DONT_BIND_BITflag that lets you create both buffer/image and allocation, but don't bind them together.
vmaBindImageMemory2that let you specify additional local offset and
pNextpointer while binding.
vmaGetPoolNamethat let you assign string names to custom pools. JSON dump file format and VmaDumpVis tool is updated to show these names.
VK_IMAGE_TILING_LINEAR. This is due to the way it is currently implemented in the library and the restrictions of the Vulkan specification. Clarified documentation in this regard. See discussion in #59.
vmaResizeAllocationfunction deprecated, always returning failure.
HOST_COHERENTif it's not stated as always ensured by some
VMA_CALL_POSTthat let you decorate declarations of all library functions if you want to e.g. export/import them as dynamically linked library.
VmaAllocationobjects to be allocated out of an internal free-list allocator. This makes allocation and deallocation causing 0 dynamic CPU heap allocations on average.
Major release after many months of development in “master” branch and feature branches. Notable new features: defragmentation of GPU memory, buddy algorithm, convenience functions for sparse binding.
memmove, so it can move data to overlapping regions.
vmaDefragment) is now deprecated.
VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT, and their aliases:
VK_ERROR_VALIDATION_FAILED_EXTwhen trying to allocate memory of size 0, create buffer with size 0, or image with one of the dimensions 0.
Major release after many months of development in “development” branch and features branches. Many new features added, some bugs fixed. API stays backward-compatible.
nonCoherentAtomSizeis now respected automatically.
VMA_DEBUG_INITIALIZE_ALLOCATIONSto initialize contents of allocations with a bit pattern.
VMA_DEBUG_MARGINmacro - it now adds margin also before first and after last allocation in a block.
vmaBuildStatsString(not backward compatible!).
allocation.lastUseFrameIndexeven if allocation cannot become lost.
VmaPoolCreateInfo::blockSize= 0 (default) - it now means that pool may use variable block sizes, just like default pools do.
vmaFindMemoryTypeIndexfor some cases, especially integrated GPUs.
VMA_DEDICATED_ALLOCATION, for compatibility with Android.
A major release with many compatibility-breaking changes.
Notable new features:
VmaAllocationhandle that you must retrieve from allocation functions and pass to deallocation functions next to normal
VmaAllocationInfostructure that you can retrieve from
VmaAllocationhandle to access parameters of the allocation (like
VkDeviceMemoryand offset) instead of retrieving them directly from allocation functions.
vmaDefragmentand related structures.
First public release.