Commit Graph

1194 Commits

Author SHA1 Message Date
Sidney Just
5e452b9d13
Added X-Plane to the list of software using VMA
The X-Plane Vulkan renderer is build around VMA as its memory allocation backend and has been shipping since late 2019. We make heavy use of the defragmentation feature and have very aggressive streaming of world data as well as texture paging. Planes are quite fast and earth is quite large, so we constantly move memory around and dynamically adjust things as the memory budget grows or shrinks and the user moves around. It's absolutely rock solid on top of VMA :)
2021-11-22 11:56:49 -08:00
scribam
7e5a1d0859 Compatibility fix with old sdks where VK_ERROR_UNKNOWN is not defined 2021-11-16 23:07:57 +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
5d92e2074a Fixing TravisCI (Linux) CI #2 2021-11-03 13:49:16 +01:00
Adam Sawicki
cdd38bffdc Fixing TravisCI (Linux) CI 2021-11-03 13:45:43 +01:00
Adam Sawicki
225d44cc73
Merge pull request #206 from expipiplus1/ellie-name
Correct Haskell bindings author name
2021-11-03 10:08:52 +01:00
Adam Sawicki
c7564fed98
Merge pull request #205 from expipiplus1/ellie-typedef
Add typedefs for virtual allocation structs in ordinary identifier namespace
2021-11-03 10:02:49 +01:00
Ellie Hermaszewska
986e96b9fa
Correct Haskell bindings author name 2021-11-03 13:24:41 +08:00
Ellie Hermaszewska
38a632f9b3
Add typedefs for virtual allocation structs in ordinary identifier namespace 2021-11-03 10:12:24 +08:00
Adam Sawicki
a62ffd4b92 Fixed icon of Travis CI Linux build in README 2021-10-30 23:44:42 +02:00
Adam Sawicki
cba6a2ba10 Fix for compilation on Linux 2021-10-30 23:36:24 +02:00
Adam Sawicki
187954c327 Added mention of virtual allocator to README 2021-10-30 23:32:57 +02:00
Adam Sawicki
2f28b5ec42 Merge branch 'feature-virtual-allocator' 2021-10-30 23:29:53 +02: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
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