VulkanMemoryAllocator/CHANGELOG.md
2017-07-13 16:38:20 +02:00

2.5 KiB

2.0.0-alpha (2017-07-13)

This code is work in progress and subject to changes.

Notable new features:

  • Support for persistently mapped allocations - see VMA_MEMORY_REQUIREMENT_PERSISTENT_MAP_BIT.
  • Introduction of VmaAllocation handle that you must retrieve from allocation functions and pass to deallocation functions, possibly next to normal VkBuffer and VkImage.
  • Introduction of VmaAllocationInfo structure that you can retrieve from VmaAllocation handle to access parameters of the allocation (like VkDeviceMemory and offset) instead of retrieving them directly from allocation functions.
  • Support for defragmentation (compaction) of allocations - see function vmaDefragment and related structures.

Compatibility-breaking changes:

  • Modified struct VmaMemoryRequirements: removed member neverAllocate, added members: flags, pUserData. Added typedef VmaMemoryRequirementFlags, enum VmaMemoryRequirementFlagBits.
  • Added VmaAllocation handle and VmaAllocationInfo structure. They are now used in modified signatures of functions: vmaAllocateMemory, vmaAllocateMemoryForBuffer, vmaAllocateMemoryForImage, vmaFreeMemory, vmaMapMemory, vmaUnmapMemory, vmaCreateBuffer, vmaDestroyBuffer, vmaCreateImage, vmaDestroyImage.

Additions:

  • Added new functions related to introduction of VmaAllocation: vmaGetAllocationInfo, vmaSetAllocationUserData.
  • Added support for temporarily unmapping persistently mapped memory for performance reasons: vmaUnmapPersistentlyMappedMemory, vmaMapPersistentlyMappedMemory.
  • Added support for defragmentation: function vmaDefragment, structures: VmaDefragmentationInfo, VmaDefragmentationStats.
  • Added struct member VmaAllocatorCreateInfo::pDeviceMemoryCallbacks, struct VmaDeviceMemoryCallbacks, function pointers: PFN_vmaAllocateDeviceMemoryFunction, PFN_vmaFreeDeviceMemoryFunction. They can be used to notify the user about calls to vkAllocateMemory and vkFreeMemory made by the library.
  • Added struct member VmaAllocatorCreateInfo::flags, typedef VmaAllocatorFlags, enum VmaAllocatorFlagBits, enum value VMA_ALLOCATOR_EXTERNALLY_SYNCHRONIZED_BIT. It can be used to disable internal synchronization of an allocator for better performance if user wants to use it from single thread only or synchronize it externally.

1.0.1 (2017-07-04)

  • Fixes for Linux GCC compilation.
  • Changed "CONFIGURATION SECTION" to contain #ifndef so you can define these macros before including this header, not necessarily change them in the file.

1.0.0 (2017-06-16)

First public release.