- Removed
Result
return values from functions that always returnedOk(())
- Fixed Windows bindgen regression.
- Added
Eq
,Hash
and further derives to enumMemoryUsage
. - Added
Copy
toAllocation
. - Updated VMA vendoring to commit hash
e73e988dafba80633cd9d8d1abb1ae1af0439bae
. - Updated dependencies and bindings.
- Updated VMA vendoring to commit hash
a020fb81cb67b376fb33228475f22d0d9c29f9fd
. - Implemented
vk_mem::Allocation::null()
for symmetry with vk::Image::null().
- Removed unnecessary mut specifiers.
- Implemented
std::error::Error
forvk_mem::Error
. - Disabled usage of
failure
by default. - Updated VMA vendoring to commit hash
6ac1d3a4b732f50aef3a884ef7020cce53007065
. - Bumped all dependencies to latest versions.
- Removed clone from
Allocator
, as it was unsafe and invalid.
- Allow the failure crate to be disabled through a feature toggle.
- Removed the parallel feature for cc.
- Removed max ash version (only require >= minimum).
- Added a way to cleanup Allocator without dropping it.
- Added a note to
create_image
describing VMA panic behavior in some circumstances. - Updated VMA vendoring to commit hash
195016b0348038537dbd73d45d6ccaf795bfb367
. - Regenerated bindings and added function pointer wrapping for
bind_buffer_memory2
andbind_image_memory2
.
- Removed max ash version from dependencies.
- Fixed AllocationCreateInfo Default implementation.
- Added windows-gnu to build.rs, and add cross-compilation information to README.md.
- Support both ash 0.27.1 and 0 0.28.0.
- Updated vendor to latest version of VMA (fixes, optimizations).
- Added CREATE_DONT_BIND allocation create flag.
- Added Sync+Send to Allocation and AllocationInfo.
- Bumped ash and failure deps to latest, updated tests to comply with latest ash.
- Removed unnecessary heap allocation.
Updated to AMD VMA 2.2 release!
Notable new features: defragmentation of GPU memory, buddy algorithm, convenience functions for sparse binding.
Major changes:
- New, more powerful defragmentation:
DefragmentationInfo2
Allocator::defragmentation_begin
Allocator::defragmentation_end
- Added support for defragmentation of GPU memory.
- Defragmentation of CPU memory now uses
memmove
internally, so it can move data to overlapping regions. - Defragmentation of CPU memory is now available for memory types that are
ash::vk::MemoryPropertyFlags::HOST_VISIBLE
but notash::vk::MemoryPropertyFlags::HOST_COHERENT
. - Major internal changes in defragmentation algorithm.
- Old interface (structure
DefragmentationInfo
, functionAllocator::defragment
) is now deprecated. - Added buddy algorithm, available for custom pools:
AllocatorPoolCreateFlags::BUDDY_ALGORITHM
- Added convenience functions for multiple allocations and deallocations at once, intended for sparse binding resources:
Allocator::allocate_memory_pages
Allocator::free_memory_pages
- Added function that tries to resize existing allocation in place:
Allocator::resize_allocation
- Added flags for allocation strategy
- New flags:
AllocationCreateFlags::STRATEGY_BEST_FIT
AllocationCreateFlags::STRATEGY_WORST_FIT
AllocationCreateFlags::STRATEGY_FIRST_FIT
- Their aliases:
AllocationCreateFlags::STRATEGY_MIN_MEMORY
AllocationCreateFlags::STRATEGY_MIN_TIME
AllocationCreateFlags::STRATEGY_MIN_FRAGMENTATION
- New flags:
Minor changes:
- Changed behavior of allocation functions to return
ash::vk::Result::ERROR_VALIDATION_FAILED_EXT
when trying to allocate memory of size 0, create buffer with size 0, or image with one of the dimensions 0. - Internal optimization: using read-write mutex on some platforms.
- Many additions and fixes in documentation. Many compatibility fixes for various compilers. Other internal bugfixes, optimizations, refactoring, added more internal validation...
- Minor documentation tweak.
- Major refactors.
- Full documentation pass.
- First release.