Skip to content

Commit 67fda02

Browse files
Updated version number and CHANGELOG.md
Regenerated documentation and executable.
1 parent 3c6470c commit 67fda02

24 files changed

+53
-2031
lines changed

.gitignore

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,3 @@
11
/bin/*
2-
32
/build/*
4-
!/build/src/
5-
/build/src/*
6-
!/build/src/Release/
7-
/build/src/Release/*
8-
!/build/src/Release/VmaSample.exe
9-
!/build/src/VmaReplay/
10-
/build/src/VmaReplay/*
11-
!/build/src/VmaReplay/Release/
12-
/build/src/VmaReplay/Release/*
13-
!/build/src/VmaReplay/Release/VmaReplay.exe
3+
!/bin/VmaSample_Release_vs2019.exe

CHANGELOG.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,53 @@
1+
# 3.0.0 (2022-03-25)
2+
3+
It has been a long time since the previous official release, so hopefully everyone has been using the latest code from "master" branch, which is always maintained in a good state, not the old version. For completeness, here is the list of changes since v2.3.0. The major version number has changed, so there are some compatibility-breaking changes, but the basic API stays the same and is mostly backward-compatible.
4+
5+
Major features added (some compatibility-breaking):
6+
7+
- Added new API for selecting preferred memory type: flags `VMA_MEMORY_USAGE_AUTO`, `VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE`, `VMA_MEMORY_USAGE_AUTO_PREFER_HOST`, `VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT`, `VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT`, `VMA_ALLOCATION_CREATE_HOST_ACCESS_ALLOW_TRANSFER_INSTEAD_BIT`. Old values like `VMA_MEMORY_USAGE_GPU_ONLY` still work as before, for backward compatibility, but are not recommended.
8+
- Added new defragmentation API and algorithm, replacing the old one. See structure `VmaDefragmentationInfo`, `VmaDefragmentationMove`, `VmaDefragmentationPassMoveInfo`, `VmaDefragmentationStats`, function `vmaBeginDefragmentation`, `vmaEndDefragmentation`, `vmaBeginDefragmentationPass`, `vmaEndDefragmentationPass`.
9+
- Redesigned API for statistics, replacing the old one. See structures: `VmaStatistics`, `VmaDetailedStatistics`, `VmaTotalStatistics`. `VmaBudget`, functions: `vmaGetHeapBudgets`, `vmaCalculateStatistics`, `vmaGetPoolStatistics`, `vmaCalculatePoolStatistics`, `vmaGetVirtualBlockStatistics`, `vmaCalculateVirtualBlockStatistics`.
10+
- Added "Virtual allocator" feature - possibility to use core allocation algorithms for allocation of custom memory, not necessarily Vulkan device memory. See functions like `vmaCreateVirtualBlock`, `vmaDestroyVirtualBlock` and many more.
11+
- `VmaAllocation` now keeps both `void* pUserData` and `char* pName`. Added function `vmaSetAllocationName`, member `VmaAllocationInfo::pName`. Flag `VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT` is now deprecated.
12+
- Clarified and cleaned up various ways of importing Vulkan functions. See macros `VMA_STATIC_VULKAN_FUNCTIONS`, `VMA_DYNAMIC_VULKAN_FUNCTIONS`, structure `VmaVulkanFunctions`. Added members `VmaVulkanFunctions::vkGetInstanceProcAddr`, `vkGetDeviceProcAddr`, which are now required when using `VMA_DYNAMIC_VULKAN_FUNCTIONS`.
13+
14+
Removed (compatibility-breaking):
15+
16+
- Removed whole "lost allocations" feature. Removed from the interface: `VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT`, `VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT`, `vmaCreateLostAllocation`, `vmaMakePoolAllocationsLost`, `vmaTouchAllocation`, `VmaAllocatorCreateInfo::frameInUseCount`, `VmaPoolCreateInfo::frameInUseCount`.
17+
- Removed whole "record & replay" feature. Removed from the API: `VmaAllocatorCreateInfo::pRecordSettings`, `VmaRecordSettings`, `VmaRecordFlagBits`, `VmaRecordFlags`. Removed VmaReplay application.
18+
- Removed "buddy" algorithm - removed flag `VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT`.
19+
20+
Minor but compatibility-breaking changes:
21+
22+
- Changes in `ALLOCATION_CREATE_STRATEGY` flags. Removed flags: `VMA_ALLOCATION_CREATE_STRATEGY_MIN_FRAGMENTATION_BIT`, `VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT`, `VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_FRAGMENTATION_BIT`, which were aliases to other existing flags.
23+
- Added a member `void* pUserData` to `VmaDeviceMemoryCallbacks`. Updated `PFN_vmaAllocateDeviceMemoryFunction`, `PFN_vmaFreeDeviceMemoryFunction` to use the new `pUserData` member.
24+
- Removed function `vmaResizeAllocation` that was already deprecated.
25+
26+
Other major changes:
27+
28+
- Added new features to custom pools: support for dedicated allocations, new member `VmaPoolCreateInfo::pMemoryAllocateNext`, `minAllocationAlignment`.
29+
- Added support for Vulkan 1.2, 1.3.
30+
- Added support for VK_KHR_buffer_device_address extension - flag `VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT`.
31+
- Added support for VK_EXT_memory_priority extension - flag `VMA_ALLOCATOR_CREATE_EXT_MEMORY_PRIORITY_BIT`, members `VmaAllocationCreateInfo::priority`, `VmaPoolCreateInfo::priority`.
32+
- Added support for VK_AMD_device_coherent_memory extension - flag `VMA_ALLOCATOR_CREATE_AMD_DEVICE_COHERENT_MEMORY_BIT`.
33+
- Added member `VmaAllocatorCreateInfo::pTypeExternalMemoryHandleTypes`.
34+
- Added function `vmaGetAllocatorInfo`, structure `VmaAllocatorInfo`.
35+
- Added functions `vmaFlushAllocations`, `vmaInvalidateAllocations` for multiple allocations at once.
36+
- Added flag `VMA_ALLOCATION_CREATE_CAN_ALIAS_BIT`.
37+
- Added function `vmaCreateBufferWithAlignment`.
38+
- Added convenience function `vmaGetAllocationMemoryProperties`.
39+
- Added convenience functions: `vmaCreateAliasingBuffer`, `vmaCreateAliasingImage`.
40+
41+
Other minor changes:
42+
43+
- Implemented Two-Level Segregated Fit (TLSF) allocation algorithm, replacing previous default one. It is much faster, especially when freeing many allocations at once or when `bufferImageGranularity` is large.
44+
- Renamed debug macro `VMA_DEBUG_ALIGNMENT` to `VMA_MIN_ALIGNMENT`.
45+
- Added CMake support - CMakeLists.txt files. Removed Premake support.
46+
- Changed `vmaInvalidateAllocation` and `vmaFlushAllocation` to return `VkResult`.
47+
- Added nullability annotations for Clang: `VMA_NULLABLE`, `VMA_NOT_NULL`, `VMA_NULLABLE_NON_DISPATCHABLE`, `VMA_NOT_NULL_NON_DISPATCHABLE`, `VMA_LEN_IF_NOT_NULL`.
48+
- JSON dump format has changed.
49+
- Countless fixes and improvements, including performance optimizations, compatibility with various platforms and compilers, documentation.
50+
151
# 2.3.0 (2019-12-04)
252

353
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.

bin/VmaSample_Release_vs2019.exe

383 KB
Binary file not shown.

build/src/Release/VmaSample.exe

-360 KB
Binary file not shown.

docs/html/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
<div class="headertitle"><div class="title">Vulkan Memory Allocator </div></div>
6666
</div><!--header-->
6767
<div class="contents">
68-
<div class="textblock"><p ><b>Version 3.0.0-development</b></p>
68+
<div class="textblock"><p ><b>Version 3.0.0 (2022-03-25)</b></p>
6969
<p >Copyright (c) 2017-2022 Advanced Micro Devices, Inc. All rights reserved. <br />
7070
License: MIT</p>
7171
<p ><b>API documentation divided into groups:</b> <a href="modules.html">Modules</a></p>

0 commit comments

Comments
 (0)