Adam Sawicki
12d128d8f7
Added debug printing of unfreed allocation
...
Closes #130
Also made fixes for compilation errors on Android - see #223
Code by @medranSolus
2022-01-24 11:25:03 +01:00
Lava Block
b99c428aef
Fix build - removed usage of DWORD type
2022-01-21 18:28:15 +01:00
Adam Sawicki
8da08d160a
Minor internal fix - removed usage of DWORD type
2022-01-21 13:06:40 +01:00
Adam Sawicki
f451b94158
Fixed vmaBuildVirtualBlockStatsString, vmaFreeVirtualBlockStatsString to also be inside #if VMA_STATS_STRING_ENABLED
...
Updated copyright headers for to year 2022.
Change by @medranSolus
2022-01-21 12:56:18 +01:00
Adam Sawicki
2ae5466b2e
Merge remote-tracking branch 'origin/master'
2022-01-20 17:02:00 +01:00
Adam Sawicki
d3a85f0dc3
Refactored virtual allocator. (COMPATIBILITY BREAKING!) Added TLSF algoritym.
...
Refactored virtual allocator: Added type VmaVirtualAllocation, member VmaVirtualAllocationInfo::offset, changed parameters of vmaVirtualAllocate, vmaVirtualFree, vmaSetVirtualAllocationUserData, vmaGetVirtualAllocationInfo.
Added TLSF algorithm: Added VMA_POOL_CREATE_TLSF_ALGORITHM_BIT, VMA_VIRTUAL_BLOCK_CREATE_TLSF_ALGORITHM_BIT.
Some internal refactoring.
Improved documentation: Grouped API elements into Doxygen modules.
Code mostly by @medranSolus.
2022-01-20 17:00:33 +01:00
Tiago Chaves
f333006465
Fix MSVC warning C4505 for VmaCreateStringCopy
2022-01-14 11:31:30 -03:00
Ellie Hermaszewska
15b16f88b9
Add missing length annotation to pBudgets parameter in vmaGetHeapBudgets
2022-01-14 16:40:40 +08:00
Adam Sawicki
992e545749
Fixed bugs after merge
2022-01-10 18:13:43 +01:00
Adam Sawicki
a8581fc96c
Deleted the whole Record&Replay feature. COMPATIBILITY BREAKING!
...
Removed from the API: VmaAllocatorCreateInfo::pRecordSettings, VmaRecordSettings, VmaRecordFlagBits, VmaRecordFlags.
Regenerated documentation. Updated README.
2022-01-10 18:11:09 +01:00
Adam Sawicki
1e97603ab8
Deleted the whole feature of lost allocations. COMPATIBILITY BREAKING!
...
Removed from the interface: VMA_ALLOCATION_CREATE_CAN_BECOME_LOST_BIT, VMA_ALLOCATION_CREATE_CAN_MAKE_OTHER_LOST_BIT, vmaCreateLostAllocation, vmaMakePoolAllocationsLost, vmaTouchAllocation, VmaAllocatorCreateInfo::frameInUseCount, VmaPoolCreateInfo::frameInUseCount.
Also fixed a bug with synchronization in VmaDedicatedAllocationList.
2022-01-10 17:57:11 +01:00
Adam Sawicki
6f73bc1b81
Removed VmaPoolStats::unusedRangeSizeMax. COMPATIBILITY BREAKING!
2022-01-07 14:23:05 +01:00
Adam Sawicki
204fcdc0a3
Minor fixes
...
Closes #217
2022-01-05 18:49:32 +01:00
Adam Sawicki
35bc050aa3
Fixed typo in code
2022-01-05 17:37:30 +01:00
Adam Sawicki
7c48285034
Removed VMA_USE_STL_CONTAINERS
2021-12-22 14:57:18 +01:00
Adam Sawicki
cbad11e039
Fixed vmaGetPoolStats for dedicated allocations
...
Added new tests: TestPoolsAndAllocationParameters.
2021-12-22 14:50:49 +01:00
Adam Sawicki
6fe7212e73
Improved documentation of vmaMapMemory function
2021-12-21 16:50:33 +01:00
Adam Sawicki
556834c0b4
Fixed creation and displaying of JSON memory dump for dedicated allocations in custom pools.
2021-12-21 16:23:13 +01:00
Adam Sawicki
9bb70bef1b
Added comments documenting class VmaJsonWriter
2021-12-21 11:31:25 +01:00
Adam Sawicki
fbb465c2bc
Fixed documentation about OpenGL interop
...
Added information about dedicated allocations now supported in custom pools.
2021-12-20 13:05:24 +01:00
Adam Sawicki
0109967554
Updated documentation regarding dedicated allocations in custom pools
...
Regenerated the documentation.
2021-12-17 16:39:47 +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
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
b4d341de13
Internal optimization with m_pBlockVectors
2021-12-02 16:39:27 +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
fac8ef44d2
Added convenience function vmaGetAllocationMemoryProperties
...
Regenerated documentation.
2021-11-23 13:35:19 +01: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
Ellie Hermaszewska
38a632f9b3
Add typedefs for virtual allocation structs in ordinary identifier namespace
2021-11-03 10:12:24 +08:00
Adam Sawicki
cba6a2ba10
Fix for compilation on Linux
2021-10-30 23:36:24 +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