Adam Sawicki
41296759b9
Refactoring: Added function VmaAddStatInfoAllocation, VmaAddStatInfoUnusedRange
...
Submitting improved tests.
2021-10-30 12:44:40 +02:00
Adam Sawicki
455823fcbf
Improved VmaBlockMetadata_Buddy when used as a virtual allocator, to support allocation sizes down to 1
2021-10-30 12:26:09 +02:00
Adam Sawicki
fc23b9da1f
Removed VMA_MIN_FREE_SUBALLOCATION_SIZE_TO_REGISTER to simplify the code
...
VmaBlockMetadata_Generic now aligns allocation sizes to a multiply of 16 instead, except when used as virtual allocator. This also allows to use virtual allocator with sizes smaller than 16.
2021-10-30 12:20:46 +02:00
Adam Sawicki
56f7b4c223
Added support for VMA_VIRTUAL_BLOCK_CREATE_BUDDY_ALGORITHM_BIT
2021-10-30 12:05:37 +02:00
Adam Sawicki
62a25b6b4c
Changed behavior of buddy allocator to align allocation sizes to power of 2 instead of accounting the remaining space (internal fragmentation) as free
...
Also fixed major bug in VmaBlockMetadata_Buddy::CalcAllocationStatInfoNode.
2021-10-30 11:41:29 +02:00
Adam Sawicki
c24517fd92
Added support for VMA_VIRTUAL_BLOCK_CREATE_LINEAR_ALGORITHM_BIT
...
Fixed major bug in VmaBlockMetadata_Linear::CalcAllocationStatInfo. Necessary refactoring.
2021-10-30 11:12:15 +02:00
Adam Sawicki
0e37526f94
Implemented VmaBlockMetadata_Linear::Clear
...
A step towards enabling virtual allocator with linear algorithm.
2021-10-29 16:37:58 +02:00
Adam Sawicki
73ff8e07d1
Preparations for adding support for alternative algorithms in virtual blocks and tests for them
2021-10-28 19:20:12 +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
c6432507c5
Implemented vmaBuildVirtualBlockStatsString, vmaFreeVirtualBlockStatsString
2021-10-28 17:00:17 +02:00
Adam Sawicki
dfa2051cd2
Improvement in vmaCreateAllocator in case creation fails
2021-10-28 16:17:07 +02:00
Adam Sawicki
cc61fe10d8
Implemented vmaClearVirtualBlock
2021-10-28 16:03:09 +02:00
Adam Sawicki
9a091e8ccb
Implemented vmaCalculateVirtualBlockStats
2021-10-28 15:00:24 +02:00
Adam Sawicki
e1812303d6
More coding and more tests. Basic functionality is working now.
2021-10-28 14:46:45 +02:00
Adam Sawicki
dc644281ac
Essential refactoring that made the test not crashing.
2021-10-28 14:36:59 +02:00
Adam Sawicki
54b7eccc35
More implementation and first tests.
...
Crashing for now - need more refactoring.
2021-10-28 14:32:34 +02:00
Adam Sawicki
7acc6c0ca8
Defined interface for virtual allocator:
...
VmaVirtualBlockCreateFlagBits, VmaVirtualBlockCreateFlags, VmaVirtualBlockCreateInfo, VmaVirtualAllocationCreateInfo, VmaVirtualBlock, all necessary functions.
Implementation: added VmaVirtualBlock_T. Not working for now.
2021-10-28 13:51:12 +02:00
Adam Sawicki
3216bf6dc7
Necessary refactoring to prepare for virtual allocator
2021-10-27 16:45:08 +02:00
Adam Sawicki
e821342782
Fixing logic of VmaDefragmentationAlgorithm_Fast::PostprocessMetadata broken by #201
...
Closes #202
2021-10-21 13:37:10 +02:00
Adam Sawicki
2b9ee46c40
Merge pull request #201 from GermanAizek/patch
...
Code refactor (lower scope, local var, default constructor and destructor)
2021-10-19 17:13:53 +02:00
semenov_gv
666b38f11f
Code refactor (lower scope, local var, default constructor and destructor)
2021-10-18 18:36:13 +03:00
Adam Sawicki
d2f0313d20
Fixes in comments
...
Regenerated documentation.
2021-10-18 17:32:40 +02:00
Daniel Krupiński
39106c64bb
Replace tabs with spaces
2021-09-30 14:34:47 +02:00
Adam Sawicki
6bdc8e1bf8
Merge pull request #197 from danielkrupinski/master
...
Use forwarding references with std::forward()
2021-09-30 12:07:04 +02:00
Daniel Krupiński
c725ffd106
Use forwarding references with std::forward()
2021-09-29 14:37:30 +02:00
Rémi Verschelde
8e18c034c4
Remove trailing whitespace
2021-09-22 12:34:44 +02:00
Daniel Krupiński
2b87d57ffd
Adjust VMA_MIN() and VMA_MAX() macros to work despite NOMINMAX being defined or not.
2021-09-20 20:57:17 +02:00
Adam Sawicki
92e5f2eb8f
Change all usage of VK_ERROR_VALIDATION_FAILED_EXT to VK_ERROR_UNKNOWN or VK_ERROR_INITIALIZATION_FAILED
...
Compatibility breaking! Changes documentation of vmaCheckCorruption, vmaCheckPoolCorruption.
This is due to VK_ERROR_VALIDATION_FAILED_EXT coming from an extension and might not be available.
Fixes #190
2021-08-09 12:44:29 +02:00
Adam Sawicki
b0fce340b6
Fixes and improvements in documentation
2021-07-29 13:12:59 +02:00
Adam Sawicki
9ca6ecd2ae
Include block IDs in debug log messages
...
Closes #183
2021-07-28 16:09:29 +02:00
Adam Sawicki
5ab5440732
Minor fixes in the docs - language
2021-07-28 15:50:36 +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
Hindrik Stegenga
0495495a42
Disable broken aligned_alloc on new versions of macOS and revert to old behaviour.
2021-07-21 16:54:47 +02:00
Adam Sawicki
55868965ae
Fixed documentation of the new function vmaCreateBufferWithAlignment
2021-07-07 15:34:10 +02:00
Adam Sawicki
f8e37ef2a2
Merge branch 'master' into feature-custom-alignment
2021-07-07 14:55:56 +02:00
Adam Sawicki
e92f989423
Added VmaAllocatorCreateInfo::pTypeExternalMemoryHandleTypes
2021-07-07 14:52:10 +02:00
Adam Sawicki
25e436868c
Added function vmaCreateBufferWithAlignment
2021-06-28 16:14:20 +02:00
Adam Sawicki
96ec5ce4e7
Used range-based for loops wherever I could
...
Closes #161
2021-06-25 17:43:41 +02:00
Adam Sawicki
0790b5f0a9
Regenerated documentation
...
Used new Doxygen 1.9.1
2021-06-21 14:55:01 +02:00
Adam Sawicki
4c8801ca22
Fixed docs
2021-06-21 14:51:25 +02:00
Adam Sawicki
82731feeb9
Fixes. Left only new member VmaPoolCreateInfo::pMemoryAllocateNext.
2021-06-21 14:47:37 +02:00
Adam Sawicki
d780fe0263
Merge branch 'master' into PoolCustomPnext
...
# Conflicts:
# include/vk_mem_alloc.h
2021-06-21 14:08:45 +02:00
Adam Sawicki
11dce16f00
Added VmaPoolCreateInfo::minAllocationAlignment
2021-06-18 15:25:57 +02:00
Adam Sawicki
8d4a9e9174
Renamed macro VMA_DEBUG_ALIGNMENT to VMA_MIN_ALIGNMENT as there are valid use cases for it other than debugging purposes.
2021-06-14 17:01:33 +02:00
Adam Sawicki
f7f8e8b472
Merge pull request #177 from pkasting/master
...
Fix clang -Wdeprecated-copy.
2021-06-09 16:42:39 +02:00
Adam Sawicki
248843e456
Added VmaVector::shrink_to_fit instead of freeMemory parameter in resize, clear, to fix compilation with VMA_USE_STL_CONTAINERS
...
Closes #175 , closes #176
2021-06-09 16:23:30 +02:00
Peter Kasting
a850ffbe46
Fix clang -Wdeprecated-copy.
...
The copy constructor must be explicitly defined (here, defaulted) to be
available when the assignment operator is deleted. While there is a
templated constructor from VmaStlAlloc<U>, the compiler doesn't consider
this to be a "copy" constructor for purposes of the warning.
2021-06-08 13:47:31 -07:00