Commit Graph

173 Commits

Author SHA1 Message Date
Adam Sawicki
7d182e2c5a Change in the defragmentation API. Compatibility breaking!
Removed VmaDefragmentationMove::dstMemory, dstOffset, internalData, added dstTmpAllocation.
Code by @medranSolus
2022-03-07 17:00:12 +01:00
Adam Sawicki
80a07979f5 Improvements in documentation, especially regarding defragmentation 2022-03-04 16:33:16 +01:00
Adam Sawicki
caf27e0428 Made allocation Name and UserData separate. COMPATIBILITY BREAKING!
Added function vmaSetAllocationName. Added member VmaAllocationInfo::pName.
VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT is now deprecated but still works.

Code mostly by @medranSolus
2022-03-03 11:23:14 +01:00
Adam Sawicki
01364c7970 Added documentation chapter "VK_EXT_memory_priority"
Other fixes in documentation
2022-02-28 12:10:18 +01:00
Adam Sawicki
f02c8a46d8 Improvement in documentation 2022-02-28 10:57:04 +01:00
Adam Sawicki
4039e45a19 Added documentation chapter "Versioning and compatibility"
Many improvements in documentation and README.
2022-02-26 13:26:20 +01:00
Adam Sawicki
20b9bc5334 Minor fixes in documentation of defragmentation 2022-02-23 16:21:16 +01:00
Adam Sawicki
88510e9801 New API for defragmentation. COMPATIBILITY BREAKING!
See structure VmaDefragmentationInfo, VmaDefragmentationMove, VmaDefragmentationPassMoveInfo, VmaDefragmentationStats, function vmaBeginDefragmentation, vmaEndDefragmentation, vmaBeginDefragmentationPass, vmaEndDefragmentationPass.

Switched to TLSF as the default algorithm - in default pools, custom pools, virtual blocks. Removed generic and buddy algorithm. Removed flags: VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT, VMA_POOL_CREATE_TLSF_ALGORITHM_BIT, VMA_VIRTUAL_BLOCK_CREATE_BUDDY_ALGORITHM_BIT, VMA_VIRTUAL_BLOCK_CREATE_TLSF_ALGORITHM_BIT.

Updated and regenerated documentation.
2022-02-22 23:38:19 +01:00
Adam Sawicki
226bd5a6ad New API for statistics. COMPATIBILITY BREAKING!
New structure VmaStatistics, VmaDetailedStatistics, VmaTotalStatistics. Modified structure VmaBudget.
New function vmaCalculateStatistics, vmaGetPoolStatistics, vmaCalculatePoolStatistics, vmaGetVirtualBlockStatistics, vmaCalculateVirtualBlockStatistics. vmaGetHeapBudgets function unchanged.

Updated and rebuilt the docs.
2022-02-22 15:19:35 +01:00
Adam Sawicki
3fd264ae1d Added usage of vkGetDeviceBufferMemoryRequirements, vkGetDeviceImageMemoryRequirements from Vulkan 1.3
Used inside vmaFindMemoryTypeIndexForBufferInfo, vmaFindMemoryTypeIndexForImageInfo when available.
Added these 2 functions to VmaVulkanFunctions structure.
Regenerated the docs.
2022-02-17 17:34:48 +01:00
Adam Sawicki
c168e42de4 Rebuilt the docs 2022-02-17 14:44:48 +01:00
Adam Sawicki
4d65f7e113 Updated first chapter of the documentation "Quick start"
Rebuilt the docs.
Closes #228
2022-02-07 16:58:10 +01:00
Adam Sawicki
fd4ee1d5aa Fixed vmaVirtualFree legal to call with allocation == VK_NULL_HANDLE
Hopefully fixes #230
Fixes in internal validation.
Rebuilt the docs.
2022-02-04 14:32:45 +01:00
Adam Sawicki
22485a05f9 Improved behavior of vmaVirtualAllocate on failed allocation. Fixed VmaVirtualAllocation to distinguish VK_NULL_HANDLE from successful allocation.
Improved tests.
Rebult the docs.
2022-02-04 11:39:56 +01:00
Adam Sawicki
ab16036dd5 Updated tests and documentation for VMA_DEBUG_MARGIN
Fixed type of VmaVirtualBlockCreateInfo::flags.
Rebuilt the docs.
2022-02-01 17:57:17 +01:00
Adam Sawicki
c161ba93d5 Minor fix in the documentation
Rebuilt the documentation
2022-01-31 18:07:58 +01:00
Adam Sawicki
ed83ac24d2 Changes in ALLOCATION_CREATE_STRATEGY flags. COMPATIBILITY BREAKING!
Removed flags: VMA_ALLOCATION_CREATE_STRATEGY_MIN_FRAGMENTATION_BIT, VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT, VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_FRAGMENTATION_BIT.
Regenerated documentation.
2022-01-26 17:47:11 +01:00
Adam Sawicki
d3a85f0dc3 Refactored virtual allocator. (COMPATIBILITY BREAKING!) Added TLSF algoritym.
Refactored virtual allocator: Added type VmaVirtualAllocation, member VmaVirtualAllocationInfo::offset, changed parameters of vmaVirtualAllocate, vmaVirtualFree, vmaSetVirtualAllocationUserData, vmaGetVirtualAllocationInfo.

Added TLSF algorithm: Added VMA_POOL_CREATE_TLSF_ALGORITHM_BIT, VMA_VIRTUAL_BLOCK_CREATE_TLSF_ALGORITHM_BIT.

Some internal refactoring.

Improved documentation: Grouped API elements into Doxygen modules.

Code mostly by @medranSolus.
2022-01-20 17:00:33 +01:00
Adam Sawicki
a8581fc96c Deleted the whole Record&Replay feature. COMPATIBILITY BREAKING!
Removed from the API: VmaAllocatorCreateInfo::pRecordSettings, VmaRecordSettings, VmaRecordFlagBits, VmaRecordFlags.
Regenerated documentation. Updated README.
2022-01-10 18:11:09 +01:00
Adam Sawicki
fbb465c2bc Fixed documentation about OpenGL interop
Added information about dedicated allocations now supported in custom pools.
2021-12-20 13:05:24 +01:00
Adam Sawicki
0109967554 Updated documentation regarding dedicated allocations in custom pools
Regenerated the documentation.
2021-12-17 16:39:47 +01:00
Adam Sawicki
a8c1543723 Major refactoring - reordered sections in vk_mem_alloc.h
Added #ifndef _VMA_* for convenient folding in IDEs.
Regenerated docs.
2021-12-14 16:53:50 +01:00
Adam Sawicki
35eeb340a3 Renamed function vmaGetBudget to vmaGetHeapBudgets. COMPATIBILITY BREAKING!
Rebuilt the docs.
Closes #213
2021-12-06 17:36:18 +01:00
Adam Sawicki
e5c03604c9 Improvements in documentation 2021-12-03 18:04:34 +01:00
Adam Sawicki
f529a86ab5 Added VmaVulkanFunctions::vkGetInstanceProcAddr, vkGetDeviceProcAddr
These are now required when using VMA_DYNAMIC_VULKAN_FUNCTIONS. Compatibility breaking!

Closes #211
2021-11-29 17:52:30 +01:00
Adam Sawicki
fac8ef44d2 Added convenience function vmaGetAllocationMemoryProperties
Regenerated documentation.
2021-11-23 13:35:19 +01:00
Adam Sawicki
c809ddca76 Documented some members of VmaVulkanFunctions to clarify which functions to fetch
Also a fix in documentation generation and rebuilt the docs.
2021-11-05 17:41:46 +01:00
Adam Sawicki
e1813512c5 Made virtual allocations not applying VMA_DEBUG_MARGIN
Improved and regenerated documentation.
2021-10-30 23:29:01 +02:00
Adam Sawicki
01a0ba193a Added documentation chapter "Virtual allocator"
Regenerated the documentation.
2021-10-28 18:25:57 +02:00
Adam Sawicki
e93a581969 Written documentation for API of the virtual allocator
Regenerated the documentation.
2021-10-28 17:36:41 +02:00
Adam Sawicki
d2f0313d20 Fixes in comments
Regenerated documentation.
2021-10-18 17:32:40 +02:00
Adam Sawicki
b0fce340b6 Fixes and improvements in documentation 2021-07-29 13:12:59 +02:00
Adam Sawicki
9f586a20bc Added documentation chapter about OpenGL interop
Rebuilt the docs.
2021-07-28 15:25:52 +02:00
Adam Sawicki
a3d4905b1f Moved main documentation text from the beginning to the end of file
Disabled VERBATIM_HEADERS in Doxyfile. Regenerated the docs.
2021-07-28 14:57:39 +02:00
Adam Sawicki
db163b0d5c Removed unused variable
Also updated and regenerated documentation.
Closes #188
2021-07-28 12:08:22 +02:00
Adam Sawicki
55868965ae Fixed documentation of the new function vmaCreateBufferWithAlignment 2021-07-07 15:34:10 +02:00
Adam Sawicki
e92f989423 Added VmaAllocatorCreateInfo::pTypeExternalMemoryHandleTypes 2021-07-07 14:52:10 +02:00
Adam Sawicki
0790b5f0a9 Regenerated documentation
Used new Doxygen 1.9.1
2021-06-21 14:55:01 +02:00
Adam Sawicki
3528e2aed3 Minor formatting fix in documentation
Regenerated documentation using new Doxygen.
2020-10-15 15:04:12 +02:00
Adam Sawicki
0620c8e5e1 Add test and documentation for resource aliasing (overlap). 2020-08-18 16:43:44 +02:00
Adam Sawicki
0ef61c2fd5 Fix in documentation chapter "Finding out if memory is mappable"
Fixes #143
2020-08-18 14:20:37 +02:00
Doğukan Korkmaztürk
67bf13cd08 Fix a typo in the explanation of VMA_ALLOCATION_CREATE_MAPPED_BIT 2020-07-27 23:55:03 -04:00
Adam Sawicki
aaa1a56167 Clarify documentation of VmaAllocationInfo::size
Added test for it. Regenerated documentation.
2020-06-24 17:41:09 +02:00
Adam Sawicki
72983b0aa1 Clarified documentation in few places to mention textures need to use LINEAR layout when accessed from the host
Rebuilt HTML documentation. Used new Doxygen 1.8.18.
Closes #129
2020-05-08 18:43:25 +02:00
Adam Sawicki
25d9b2c0ec Add function vmaFlushAllocations, vmaInvalidateAllocations for multiple allocations at once
Closes #119
Added internal class VmaSmallVector.
Refactored common code into a new function VmaAllocator_T::GetFlushOrInvalidateRange.
Regenerated docs.
2020-04-19 19:02:28 +02:00
Adam Sawicki
facf05ee63 Some fixes after fb3a337 #115 2020-04-08 17:09:59 +02:00
Adam Sawicki
f575c5070b Further changes in importing pointers to Vulkan functions
Reverted change removing configuration macro VMA_STATIC_VULKAN_FUNCTIONS.
Added configuration macro VMA_DYNAMIC_VULKAN_FUNCTIONS.
Fixes for Android.

Closes #111, also refers to #56.
2020-03-31 19:11:41 +02:00
Adam Sawicki
451bf601d8 Bump version number to 3.0.0-development as we broken backward compatibility
Also rebuilt the docs.
2020-03-23 18:24:02 +01:00
Adam Sawicki
e73e988daf Add support for buffer device address, together with documentation and tests
Added VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT.
2020-03-20 18:05:42 +01:00
Adam Sawicki
a1d992f5d1 Add function vmaGetAllocatorInfo, structure VmaAllocatorInfo
Closes #99

Also rebuilt Doxygen documentation.
2020-03-02 15:32:10 +01:00