Commit Graph

831 Commits

Author SHA1 Message Date
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
bcd5f57deb Fixes to various bugs found during extensive testing 2021-10-30 23:03:20 +02:00
Adam Sawicki
3f19f8ae39 Optimized VmaBlockMetadata_Buddy - using VmaPoolAllocator to allocate nodes 2021-10-30 12:51:36 +02:00
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
72949fa9d8 Enabled more tests 2021-10-28 14:54:07 +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
642bbfd793 Fixed TestInvalidAllocations 2021-10-27 16:45:19 +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
Adam Sawicki
895b080a3c Merge branch 'master' of https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator 2021-10-06 14:59:27 +02:00
Sawicki, Adam
63e256bc9f Merge branch 'master' into 'master'
Doxygen fixes

See merge request gpuopen/GPUOpen-LibrariesAndSDKs/vulkanmemoryallocator!2
2021-10-06 12:52:20 +00:00
Lukasz Izdebski
0796855a52 doxygen directory fix 2021-10-06 14:30:47 +02:00
Lukasz Izdebski
b61b9ad443 doxygen generation fix 2021-10-06 14:08:24 +02:00
Sawicki, Adam
9ea407e6ad Merge branch 'master' into 'master'
Doxygen added to CMake, shader project dependency added to Sample Project

See merge request gpuopen/GPUOpen-LibrariesAndSDKs/vulkanmemoryallocator!1
2021-10-06 11:41:57 +00:00
Lukasz Izdebski
cf6b1a9270 Doxygen added to CMake, shader project dependency added to Sample Project 2021-10-06 13:30:04 +02:00
Adam Sawicki
ed45770c0f
Merge pull request #198 from danielkrupinski/master
Replace tabs with spaces
2021-09-30 14:36:57 +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
Adam Sawicki
1b0bd18053 Standardized line endings to LF
See also #195
2021-09-30 12:03:35 +02:00
Adam Sawicki
b03df2880c
Merge pull request #195 from akien-mga/cleanup-whitespace
Remove trailing whitespace
2021-09-30 11:52:40 +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
Adam Sawicki
beb26af01c
Merge pull request #194 from danielkrupinski/master
Adjust VMA_MIN() and VMA_MAX() macros to work despite NOMINMAX being defined or not.
2021-09-21 17:48:48 +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
d619fb14a8 Merge branch 'master' of https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator 2021-09-20 20:33:49 +02:00
Adam Sawicki
565f18b298
Merge pull request #193 from corporateshark/master
Fixed issue #192 with hardcoded VK_USE_PLATFORM_WIN32_KHR
2021-09-20 20:33:41 +02:00
Adam Sawicki
a9922340be Little improvement in README 2021-09-20 20:32:54 +02:00
Sergey Kosarevsky
73f3aed74d Fixed issue #192 with hardcoded VK_USE_PLATFORM_WIN32_KHR 2021-09-20 15:11:21 +03: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