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
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
5453c4b5eb
Fixed compilation of tests.
2022-01-07 14:27:36 +01:00
Adam Sawicki
cbad11e039
Fixed vmaGetPoolStats for dedicated allocations
...
Added new tests: TestPoolsAndAllocationParameters.
2021-12-22 14:50:49 +01: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
4cd813a8c6
Added flag VMA_ALLOCATION_CREATE_CAN_ALIAS_BIT
2021-12-06 12:14:13 +01:00
Adam Sawicki
2854266061
Fix in TestHeapSizeLimit
2021-12-02 16:38:35 +01:00
Adam Sawicki
41296759b9
Refactoring: Added function VmaAddStatInfoAllocation, VmaAddStatInfoUnusedRange
...
Submitting improved tests.
2021-10-30 12:44:40 +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
c6432507c5
Implemented vmaBuildVirtualBlockStatsString, vmaFreeVirtualBlockStatsString
2021-10-28 17:00:17 +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
54b7eccc35
More implementation and first tests.
...
Crashing for now - need more refactoring.
2021-10-28 14:32:34 +02:00
Adam Sawicki
642bbfd793
Fixed TestInvalidAllocations
2021-10-27 16:45:19 +02:00
Adam Sawicki
1b0bd18053
Standardized line endings to LF
...
See also #195
2021-09-30 12:03:35 +02:00
Adam Sawicki
11dce16f00
Added VmaPoolCreateInfo::minAllocationAlignment
2021-06-18 15:25:57 +02:00
Adam Sawicki
0a3c6b57ec
Fixed usage of VK_KHR_buffer_device_address extension
...
It was confused with VK_EXT_buffer_device_address which is not officially supported by VMA and has different VK_STRUCTURE_TYPE...
Also a fix in PrintMemoryConclusions.
2021-03-02 16:48:32 +01:00
Adam Sawicki
41b411124e
Fixed synchronization issue in TestPool_Benchmark
...
Variable res was incorrectly shared between threads.
2021-03-02 15:11:18 +01:00
Adam Sawicki
7e56c486fa
Fix in tests for AMD APU with DEVICE_LOCAL heap of only 256 MB
2021-02-23 15:27:24 +01:00
Adam Sawicki
26eaa3b2ed
A fix in TestPool_Benchmark for GPUs with only 256 MB of DEVICE_LOCAL memory
2021-02-18 15:53:18 +01:00
Adam Sawicki
aa18374368
Updated copyright header to year 2021.
...
Rebuilt binaries, regenerated documentation.
2021-02-16 17:28:49 +01:00
Adam Sawicki
f2012055cc
Added support for VK_EXT_memory_priority
...
Added VMA_ALLOCATOR_CREATE_EXT_MEMORY_PRIORITY_BIT, VmaAllocationCreateInfo::priority, VmaPoolCreateInfo::priority.
See #160
2021-01-11 18:04:42 +01:00
Adam Sawicki
0620c8e5e1
Add test and documentation for resource aliasing (overlap).
2020-08-18 16:43:44 +02:00
Adam Sawicki
db4c1639bf
Fix compilation errors
2020-07-16 16:41:53 +02:00
Adam Sawicki
aaa1a56167
Clarify documentation of VmaAllocationInfo::size
...
Added test for it. Regenerated documentation.
2020-06-24 17:41:09 +02:00
Adam Sawicki
e73e988daf
Add support for buffer device address, together with documentation and tests
...
Added VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT.
2020-03-20 18:05:42 +01:00
Adam Sawicki
fbaccff808
Minor tweak in TestHeapSizeLimit to pass on AMD integrated graphics which has only 200 MB of DEVICE_LOCAL memory
2020-03-09 17:09:23 +01:00
Adam Sawicki
6a93b8aa5f
Protection against incorrect (0 or very large) memory budget returned by some bugged drivers
...
2 other minor fixes.
2020-03-09 16:58:18 +01:00
Adam Sawicki
a1d992f5d1
Add function vmaGetAllocatorInfo, structure VmaAllocatorInfo
...
Closes #99
Also rebuilt Doxygen documentation.
2020-03-02 15:32:10 +01:00
Adam Sawicki
508825012c
Add support for VK_AMD_device_coherent_memory extension
...
- Added VMA_ALLOCATOR_CREATE_AMD_DEVICE_COHERENT_MEMORY_BIT.
- Fixed bug generating validation layers error when the extension is not enabled.
- Updated date in copyright header comments to year 2020.
2020-02-07 16:51:31 +01:00
Adam Sawicki
c467e28f2f
Renames in the library and fixes in tests for the new defragmentation
2019-12-23 16:38:31 +01:00
Adam Sawicki
a52012de37
Prototype of a defragmentation interface that supports tiling optimal images
...
Merged #90 thanks @JustSid !
2019-12-23 15:28:51 +01:00
Adam Sawicki
ddcbf8cdba
Fix management of m_HasEmptyBlock by adding VmaBlockVector::UpdateHasEmptyBlock().
...
Also added TestPool_MinBlockCount().
2019-11-22 15:22:42 +01:00
Adam Sawicki
69185555f4
Add VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED
...
Closes #84
2019-11-18 17:03:34 +01:00
Adam Sawicki
efa88c4de0
Add VMA_MEMORY_USAGE_CPU_COPY for memory that is preferably not DEVICE_LOCAL but not guaranteed to be HOST_VISIBLE
...
Also added test for memory types and usages.
2019-11-18 16:33:56 +01:00
Adam Sawicki
4ac8ff89c2
Multiple fixes in budget management
...
Including correct handling of lost allocation.
2019-11-18 14:47:33 +01:00
Adam Sawicki
b68b368c67
Merge branch 'master' into MemoryBudget
2019-11-18 13:15:18 +01:00
Adam Sawicki
b3f5110987
Fix TestHeapSizeLimit to work on Radeon R7 APU with 256 MB of DEVICE_LOCAL memory
2019-11-18 13:05:56 +01:00
Adam Sawicki
49defd6056
Further development of custom pool names
2019-11-18 11:45:30 +01:00
Adam Sawicki
48b8a33869
Fixes and adjustments for budget, regenerate documentation
2019-11-02 15:24:33 +01:00
Adam Sawicki
a020fb81cb
Add prototype function vmaGetName, vmaSetName, change JSON format and VmaDumpVis.py to use that
2019-11-02 14:43:06 +01:00
Adam Sawicki
353e3675d3
Further development of budget management
2019-11-02 14:12:05 +01:00
Adam Sawicki
40ffe988a0
Add struct VmaBudget, function vmaGetBudget
...
Changed the way HeapSizeLimit is handled to better one.
Added VMA_ATOMIC_UINT64.
2019-10-11 15:56:02 +02:00
Adam Sawicki
1f84f62a85
Fix sample application to also pass VkAllocationCallbacks to Vulkan, not only to VMA
...
Also remove function TestResize, no longer working or needed.
2019-07-02 13:40:01 +02:00
Adam Sawicki
af88c1bde1
Fix tests and documentation to use vmaBind* instead of vkBind* functions after defragmentation
2019-07-02 12:34:26 +02:00
Adam Sawicki
daa6a551f8
Fix VmaAllocator_T::AllocateMemory for case when VMA_ALLOCATION_CREATE_MAPPED_BIT is used with custom memory pool created in memory type that is not VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
...
Also add test for it - function TestDeviceLocalMapped.
2019-06-25 15:26:37 +02:00
Adam Sawicki
94ce3d7da2
Update premake5 to latest version; rebuild binaries using Visual Studio 2019
...
Fix missing include in Tests.cpp.
2019-04-17 14:59:25 +02:00
Adam Sawicki
a1f727c9d0
Fixed compilation of Tests.cpp.
2019-01-24 16:25:11 +01:00