Commit Graph

184 Commits

Author SHA1 Message Date
Adam Sawicki
1022be64cf Added missing mutex when unmapping memory.
Hopefully fixes #267. Code by @medranSolus
2022-06-22 12:48:27 +02:00
Adam Sawicki
b51fea7a53 Improved documentation regarding selecting Vulkan version
See #256
Updated to Doxygen 1.9.4.
2022-06-14 16:43:27 +02:00
Rémi Verschelde
9eab57ea44 Strip trailing whitespace in code files 2022-06-14 13:41:15 +02:00
Rémi Verschelde
e20c24c4c8 Convert VMA line endings to Unix style (LF)
This makes it consistent with other files in the repository,
and is typically the norm for cross-platform Git repos.
2022-06-14 12:00:24 +02:00
Alex
825d3d850a fix typos 2022-06-10 09:36:31 +08:00
Adam Sawicki
a6bfc23725 Releasing version 3.0.1
Some fixes in tests for Nvidia cards.
2022-05-26 11:51:12 +02:00
Adam Sawicki
b77238c92c Refactored VmaBlockVector::SortByFreeSize to fix compilation on XCode 13.4
Fixes #269. Thanks @richard-lunarg !
2022-05-26 11:11:32 +02:00
Adam Sawicki
0bbde1750e Removed unused functions VmaQuickSort, VmaQuickSortPartition
Closes #262. Thanks @laurelkeys !
2022-05-11 12:37:14 +02:00
Artem Kharytoniuk
fe38c8f13e
Fix minor typo 2022-05-11 11:23:16 +02:00
Adam Sawicki
5ab8c1752a Fix assert when VMA_DEBUG_INITIALIZE_ALLOCATIONS is used with new memory usage flags
Only mappable allocations are filled with bit pattern.

See #260
2022-04-27 16:58:56 +02:00
Brian Osman
8a7f80743a
Fix return type of GetAllocationNextPtr
Returning `void* const` doesn't mean anything (produces a warning with -Wignored-qualifiers). Based on usage, it looks like the returned pointer is expected to point at const data, so I've fixed the declaration to reflect that.
2022-04-19 10:55:48 -04:00
Tiago Chaves
ebefe58623
Remove unused VmaAlgorithmToStr function 2022-04-09 21:23:17 -03:00
Adam Sawicki
0c7ad4e859 Optimized VmaCountBitsSets to use std::popcount when C++20 is enabled
Closes #251
2022-03-29 18:07:09 +02:00
Adam Sawicki
2d2a9e3df3 Fixed bug with assert failure when JSON dump is created while a custom pool exist with specified string name 2022-03-29 17:24:48 +02:00
Adam Sawicki
5b598e0a35 Clarified documentation about required C++14 version
Fixes #252
2022-03-28 16:36:24 +02:00
Adam Sawicki
3ed40d8321 Updated version number 2022-03-28 13:22:36 +02:00
Adam Sawicki
3f9f66740a Fix for compilation on AppleClang 13.1
Fixes #253
2022-03-28 13:21:46 +02:00
Adam Sawicki
35e1539161 Fix for out-of-bound accessing last free block in EXTENSIVE defragmentation algorithm.
Code by @medranSolus
See #232
2022-03-28 13:19:34 +02:00
Menno Vink
11cbcfcfc5 Simplify the code to keep xcode happy 2022-03-27 18:34:29 +02:00
Menno Vink
54d356e2f3 C4062 fix 2022-03-27 17:48:07 +02:00
Adam Sawicki
67fda02b4b Updated version number and CHANGELOG.md
Regenerated documentation and executable.
2022-03-25 12:39:55 +01:00
Adam Sawicki
3c6470cf45 New JSON dump format
Unified across VMA and D3D12MA.
Updated Python script for visualization - now called GpuMemDumpVis.py.

Also a fix for bug in EXTENSIVE defragmentation algorithm - see #232

Code by @medranSolus
2022-03-24 11:50:34 +01:00
Adam Sawicki
6b098e457e Small but important fix in the documentation 2022-03-14 18:05:55 +01:00
Adam Sawicki
fadfc3fd13 Added convenience functions vmaCreateAliasingBuffer, vmaCreateAliasingImage
Code by @medranSolus
2022-03-14 16:56:30 +01:00
Adam Sawicki
c317c7b3e8 Internal improvement: moved setting of incremental sort in block vector to separate variable.
Code by @medranSolus
2022-03-10 15:17:22 +01:00
Adam Sawicki
31910c8b08 Fix in defragmentation versus mapping
by @medranSolus

Added TestDefragmentationVsMapping.
2022-03-09 13:24:06 +01:00
Adam Sawicki
e4dd120c2f Fixed line endings to LF again
See #195
2022-03-08 13:50:37 +01:00
Adam Sawicki
85a49729c3 Improvements in documentation regarding defragmentation 2022-03-08 13:46:58 +01:00
Adam Sawicki
e1879e9f10 Removed VMA_ALLOCATION_CREATE_RESERVED_1_BIT, VMA_ALLOCATION_CREATE_RESERVED_2_BIT
Improvements in documentation.
2022-03-08 12:25:24 +01:00
Adam Sawicki
b644e72765 Renamed VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_PACKED_BIT to VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_OFFSET_BIT for consistency. Compatibility breaking. 2022-03-07 17:16:49 +01:00
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
f828262f43 Changed vmaEndDefragmentation to return void (somewhat compatibility breaking)
It couldn't fail anyway.
2022-03-04 14:24:29 +01:00
Adam Sawicki
b1427085f3 Fixed accounting of statistics in defragmentation.
Code by @medranSolus
See #232
2022-03-04 13:26:42 +01:00
Adam Sawicki
ea759b65d4 Added missing mutexes for DefragmentPassEnd().
Code by @medranSolus
2022-03-04 10:34:26 +01:00
Sidney Just
7b9c21f1fe Fixed defragmenter not acquiring a lock before touching blocks 2022-03-03 17:05:05 -08:00
Sidney Just
44a5aea4ef Fixed loop termination when ending defragment passes 2022-03-03 17:04:20 -08:00
Adam Sawicki
46776a4c37 Fixed merge error 2022-03-03 11:33:39 +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
bd39bed5e6 Fixes in defragmentation
Implemented VMA_DEFRAGMENTATION_FLAG_ALGORITHM_BALANCED_BIT. Fixed allocation mapping after defragmentation.
Also fixed tests - hopefully fixes #248
Code by @medranSolus
2022-03-02 16:10:41 +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
86c124c772 VMA_MEMORY_USAGE_AUTO* flags: Added support for rare case when a resource used on the device, not used on the host, may still be preferred in host memory
An update in the documentation.
2022-02-26 11:49:51 +01:00
Adam Sawicki
88bf8cb9a8 Removed usage of __popcnt
Apparently some old processors don't support this instruction. It's up to the user to provide optimized implementation by defining macro VMA_COUNT_BITS_SET.

Fixes #245
2022-02-25 13:51:13 +01:00
Pedro J. Estébanez
d8a9c7fa42 Add missing nullability qualifier 2022-02-24 11:42:44 +01:00
Adam Sawicki
20b9bc5334 Minor fixes in documentation of defragmentation 2022-02-23 16:21:16 +01:00
Adam Sawicki
6a63f2cb4e Fixed incorrect accounting of memory budget.
Code by @medranSolus
Fixes #241
2022-02-23 13:44:51 +01:00
Adam Sawicki
ab75719ee0 Fix for failing CI job on linux.
Code by @medranSolus
2022-02-23 10:39:40 +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