Commit Graph

869 Commits

Author SHA1 Message Date
Adam Sawicki
4586be47d8 Fixed usage of VMA_STATIC_VULKAN_FUNCTIONS, VMA_DYNAMIC_VULKAN_FUNCTIONS in CmakeLists.txt
Fixes #215
2021-12-17 12:11:06 +01:00
Adam Sawicki
e9c083b4d2 Added support for dedicated allocations in custom pools
A major refactoring.
JSON format changed!
2021-12-17 11:00:00 +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
2ba419e8e4 Refactoring - created class VmaDedicatedAllocationList 2021-12-10 17:58:53 +01:00
Adam Sawicki
5c8b3ba955 Fixes in CMakeLists.txt files
Added header files, added NATVIS file, added missing project dependencies.
2021-12-07 16:48:59 +01:00
Adam Sawicki
d3067c3620 Improved NATVIS file - added support for VmaIntrusiveLinkedList usage 2021-12-07 16:48:07 +01:00
Adam Sawicki
7df5ecf6e2
Merge pull request #214 from yaoyao-cn/fix0
fix crash in VmaAllocator_T::AllocateDedicatedMemory
2021-12-07 10:04:51 +01:00
yao.zhao
3dd4b203f9 fix crash in VmaAllocator_T::AllocateDedicatedMemory 2021-12-07 13:23:32 +08: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
4687f53764 Internal optimization in traversal of VmaBlockMetadata_Generic::m_Suballocations 2021-12-06 15:20:44 +01:00
Adam Sawicki
4cd813a8c6 Added flag VMA_ALLOCATION_CREATE_CAN_ALIAS_BIT 2021-12-06 12:14:13 +01:00
Adam Sawicki
e5c03604c9 Improvements in documentation 2021-12-03 18:04:34 +01:00
Adam Sawicki
4e4e1c085d Added parameters -t --Test and -s -TestSparseBinding to the test app, to execute tests and exit. 2021-12-03 12:13:44 +01:00
Adam Sawicki
d74155933e Improvements in CMakeLists.txt 2021-12-03 11:37:36 +01:00
Adam Sawicki
b4d341de13 Internal optimization with m_pBlockVectors 2021-12-02 16:39:27 +01:00
Adam Sawicki
ad9c5bf8d7 Improvement in CMakeLists.txt 2021-12-02 16:38:48 +01:00
Adam Sawicki
2854266061 Fix in TestHeapSizeLimit 2021-12-02 16:38:35 +01:00
Adam Sawicki
2cddc30813 Merge branch 'master' into development 2021-12-01 11:01:22 +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
00d064e21e Added a comment after #207 2021-11-25 14:30:41 +01:00
Adam Sawicki
43d82a168f
Merge pull request #207 from scribam/sdk-compatibility
Compatibility fix with old sdks where VK_ERROR_UNKNOWN is not defined
2021-11-25 14:28:48 +01:00
Adam Sawicki
92d2142222
Merge pull request #210 from hrydgard/readme-update
Add PPSSPP to the "Software using this library" section of README.md
2021-11-25 10:14:29 +01:00
Henrik Rydgård
547aae4a51 Add PPSSPP to the "Software using this library" section of README.md 2021-11-25 09:06:17 +01:00
Adam Sawicki
fac8ef44d2 Added convenience function vmaGetAllocationMemoryProperties
Regenerated documentation.
2021-11-23 13:35:19 +01:00
Adam Sawicki
55553cff34
Merge pull request #209 from JustSid/patch-2
Added X-Plane to the list of software using VMA
2021-11-23 09:58:30 +01:00
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