Adam Sawicki
6a63f2cb4e
Fixed incorrect accounting of memory budget.
...
Code by @medranSolus
Fixes #241
2022-02-23 13:44:51 +01:00
Adam Sawicki
ab75719ee0
Fix for failing CI job on linux.
...
Code by @medranSolus
2022-02-23 10:39:40 +01:00
Adam Sawicki
88510e9801
New API for defragmentation. COMPATIBILITY BREAKING!
...
See structure VmaDefragmentationInfo, VmaDefragmentationMove, VmaDefragmentationPassMoveInfo, VmaDefragmentationStats, function vmaBeginDefragmentation, vmaEndDefragmentation, vmaBeginDefragmentationPass, vmaEndDefragmentationPass.
Switched to TLSF as the default algorithm - in default pools, custom pools, virtual blocks. Removed generic and buddy algorithm. Removed flags: VMA_POOL_CREATE_BUDDY_ALGORITHM_BIT, VMA_POOL_CREATE_TLSF_ALGORITHM_BIT, VMA_VIRTUAL_BLOCK_CREATE_BUDDY_ALGORITHM_BIT, VMA_VIRTUAL_BLOCK_CREATE_TLSF_ALGORITHM_BIT.
Updated and regenerated documentation.
2022-02-22 23:38:19 +01:00
Adam Sawicki
9104ef3d45
Merge branch 'master' of https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator
2022-02-22 15:19:47 +01:00
Adam Sawicki
226bd5a6ad
New API for statistics. COMPATIBILITY BREAKING!
...
New structure VmaStatistics, VmaDetailedStatistics, VmaTotalStatistics. Modified structure VmaBudget.
New function vmaCalculateStatistics, vmaGetPoolStatistics, vmaCalculatePoolStatistics, vmaGetVirtualBlockStatistics, vmaCalculateVirtualBlockStatistics. vmaGetHeapBudgets function unchanged.
Updated and rebuilt the docs.
2022-02-22 15:19:35 +01:00
Adam Sawicki
042e65e7c1
Merge pull request #240 from AtomontageInc/master
...
Fix VmaSmallVector::push_back
2022-02-18 14:21:09 +01:00
Matus Fedorko
cf5e9899fb
Fix VmaSmallVector::push_back
2022-02-18 13:27:52 +01:00
Adam Sawicki
d00699f26d
Another fix in TestLinearAllocator
...
Closes #239
2022-02-18 11:46:15 +01:00
Adam Sawicki
3fd264ae1d
Added usage of vkGetDeviceBufferMemoryRequirements, vkGetDeviceImageMemoryRequirements from Vulkan 1.3
...
Used inside vmaFindMemoryTypeIndexForBufferInfo, vmaFindMemoryTypeIndexForImageInfo when available.
Added these 2 functions to VmaVulkanFunctions structure.
Regenerated the docs.
2022-02-17 17:34:48 +01:00
Adam Sawicki
e0fcd7344e
Fixed VulkanUsage::Init for Vulkan SDK not supporting new Vulkan 1.3, to fix CI builds
2022-02-17 14:48:54 +01:00
Adam Sawicki
c168e42de4
Rebuilt the docs
2022-02-17 14:44:48 +01:00
Adam Sawicki
aee61b1d25
Added new API for selecting preferred memory type: VMA_MEMORY_USAGE_AUTO, VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE, VMA_MEMORY_USAGE_AUTO_PREFER_HOST, VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT, VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT, VMA_ALLOCATION_CREATE_HOST_ACCESS_ALLOW_TRANSFER_INSTEAD_BIT
...
Old values like VMA_MEMORY_USAGE_GPU_ONLY still work as before, for backward compatibility.
Updated documentation accordingly.
Introduced a concept of mappable and non-mappable allocations - with VMA_MEMORY_USAGE_AUTO* an intent to map has to be specified using VMA_ALLOCATION_CREATE_HOST_ACCESS*.
Added mapping hysteresis logic (internal class VmaMappingHysteresis, config macro VMA_MAPPING_HYSTERESIS_ENABLED) that prevents too many calls vkMapMemory/vkUnmapMemory back and forth.
Internal improvement in VmaBlockVector::AllocatePage to try to keep mappable and non-mappable allocations separate.
2022-02-17 14:44:06 +01:00
Adam Sawicki
b41615cfce
Added missing #include <intrin.h>
...
Fixes #237
2022-02-17 11:08:30 +01:00
Adam Sawicki
c6a338ba88
Fix in TestLinearAllocator for Intel(R) HD Graphics 630
...
See #239
2022-02-17 11:02:45 +01:00
Adam Sawicki
e51e4d3b40
Fix initialization order in VmaDefragmentationAlgorithm_Generic constructor
...
See #236
2022-02-15 11:26:29 +01:00
Adam Sawicki
cebd53ce67
Merge pull request #235 from RandomShaper/fix_nullability
...
Add missing nullability macros
2022-02-14 18:21:13 +01:00
Adam Sawicki
0a24d5a7f3
Fixes for 2 compiler warnings
...
Closes #236
2022-02-14 18:17:14 +01:00
Pedro J. Estébanez
32f74c51e0
Add missing nullability macros
2022-02-12 13:27:10 +01:00
Adam Sawicki
fd82bc7b6d
Fixed few bugs in tests
...
Fixes #234 - thanks @mkx171217
2022-02-11 11:42:17 +01:00
Adam Sawicki
a1895bc765
Internal fix in VmaBlockVector::AllocatePage
2022-02-08 16:31:11 +01:00
Adam Sawicki
37c2d74b05
Fixes in test TestVirtualBlocksAlgorithmsBenchmark
2022-02-08 15:38:13 +01:00
Adam Sawicki
15206baf40
Added some new tests: TestAllocationAlgorithmsCorrectness
2022-02-08 15:04:08 +01:00
Adam Sawicki
bb29254253
Fix for VmaBitScan functions in GCC and Clang. Fixed debug margin for generic algorithm.
...
Hopefully helps for #231 .
Code by @medranSolus
2022-02-08 10:50:10 +01:00
Adam Sawicki
ed2a72153e
Merge pull request #233 from laurelkeys/patch-1
...
Include vulkan.h before #define VMA_VULKAN_VERSION
2022-02-07 19:15:53 +01:00
Tiago Chaves
2d5df2d7a8
Include vulkan.h before #define VMA_VULKAN_VERSION
2022-02-07 14:56:49 -03:00
Adam Sawicki
4d65f7e113
Updated first chapter of the documentation "Quick start"
...
Rebuilt the docs.
Closes #228
2022-02-07 16:58:10 +01:00
Adam Sawicki
5c710e86a0
Added support for Vulkan 1.3
...
Fixes #228
2022-02-04 15:17:02 +01:00
Adam Sawicki
fd4ee1d5aa
Fixed vmaVirtualFree legal to call with allocation == VK_NULL_HANDLE
...
Hopefully fixes #230
Fixes in internal validation.
Rebuilt the docs.
2022-02-04 14:32:45 +01:00
Adam Sawicki
22485a05f9
Improved behavior of vmaVirtualAllocate on failed allocation. Fixed VmaVirtualAllocation to distinguish VK_NULL_HANDLE from successful allocation.
...
Improved tests.
Rebult the docs.
2022-02-04 11:39:56 +01:00
Adam Sawicki
05d0c89f0b
Minor fix in documentation
2022-02-02 15:45:33 +01:00
Adam Sawicki
ab16036dd5
Updated tests and documentation for VMA_DEBUG_MARGIN
...
Fixed type of VmaVirtualBlockCreateInfo::flags.
Rebuilt the docs.
2022-02-01 17:57:17 +01:00
Adam Sawicki
ab134958f5
Fixed algorithm in VmaBlockMetadata_TLSF::CreateAllocationRequest
...
Code by @medranSolus
2022-02-01 14:03:52 +01:00
Adam Sawicki
c161ba93d5
Minor fix in the documentation
...
Rebuilt the documentation
2022-01-31 18:07:58 +01:00
Adam Sawicki
2f478c8577
Merge pull request #227 from laurelkeys/user-includes-macro
...
Proposal: allow custom includes without having to edit vk_mem_alloc.h
2022-01-31 17:41:18 +01:00
Adam Sawicki
48d3cc46a0
Minor fixes after merging #226
2022-01-31 17:20:29 +01:00
Adam Sawicki
83d3571b7c
Merge pull request #226 from laurelkeys/master
...
Fix VMA_STATS_STRING_ENABLED 0 with VMA_DEBUG_LOG
2022-01-31 17:16:42 +01:00
Adam Sawicki
ff99bf7dea
Fixed some calculations in TLSF.
...
Code by @medranSolus
2022-01-31 14:55:44 +01:00
Tiago Chaves
4c987c910d
Add VMA_CONFIGURATION_USER_INCLUDES_H macro
2022-01-30 17:16:46 -03:00
Tiago Chaves
c0aa0ad54c
Fix VMA_STATS_STRING_ENABLED 0 with VMA_DEBUG_LOG
2022-01-30 16:40:32 -03:00
Adam Sawicki
08759cbec5
Changed value of VMA_ALLOCATION_CREATE_STRATEGY_MIN_TIME_BIT / VMA_ALLOCATION_CREATE_STRATEGY_FIRST_FIT_BIT.
...
Added support for VMA_DEBUG_MARGIN in TLSF algorithm.
Changed behavior of VMA_DEBUG_MARGIN to be included only after not before every allocation.
Bug fixes and improvements in TLSF algorithm.
Added benchmark for virtual allocator.
Code by @medranSolus
2022-01-28 13:07:58 +01:00
Adam Sawicki
aa823264ca
Minor fix
2022-01-27 13:46:47 +01:00
Adam Sawicki
9f463623a5
Adding image from isitmaintained.com to README
2022-01-27 13:16:31 +01:00
Adam Sawicki
ed83ac24d2
Changes in ALLOCATION_CREATE_STRATEGY flags. COMPATIBILITY BREAKING!
...
Removed flags: VMA_ALLOCATION_CREATE_STRATEGY_MIN_FRAGMENTATION_BIT, VMA_ALLOCATION_CREATE_STRATEGY_WORST_FIT_BIT, VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_FRAGMENTATION_BIT.
Regenerated documentation.
2022-01-26 17:47:11 +01:00
Adam Sawicki
6c1c16f05c
Misc minor fixes
2022-01-26 17:46:38 +01:00
Adam Sawicki
5bd5975873
Fix for 32-bit compilation
...
Fixes #225
2022-01-26 13:51:12 +01:00
Adam Sawicki
a4d39851fd
Fixed syntax errors
2022-01-24 15:16:13 +01:00
Adam Sawicki
cad2acc080
Merge remote-tracking branch 'origin/master'
2022-01-24 14:59:22 +01:00
Adam Sawicki
518907bbc5
Optimized bit functions, added intrinsics for GCC and Clang
...
Code by @medranSolus
2022-01-24 14:58:42 +01:00
Adam Sawicki
6e22ae3109
Merge pull request #224 from TheLavaBlock/fix-win32-build
...
Fix build - 64 bit functions do not exist
2022-01-24 12:24:54 +01:00
Lava Block
5c08c6498f
Fix build - 64 bit functions do not exist
2022-01-24 12:13:08 +01:00