Commit Graph

976 Commits

Author SHA1 Message Date
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
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
Adam Sawicki
f88a69ba1c
Merge pull request #222 from TheLavaBlock/fix-win-build
Fix build - removed usage of DWORD type
2022-01-24 09:36:57 +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
Adam Sawicki
eccbce26d8
Merge pull request #221 from laurelkeys/patch-1
Fix MSVC warning C4505 for VmaCreateStringCopy
2022-01-14 17:56:51 +01:00
Tiago Chaves
f333006465
Fix MSVC warning C4505 for VmaCreateStringCopy 2022-01-14 11:31:30 -03:00
Adam Sawicki
4f24cf28c8
Merge pull request #220 from expipiplus1/master
Add missing length annotation to pBudgets parameter in vmaGetHeapBudgets
2022-01-14 10:11:46 +01:00
Ellie Hermaszewska
15b16f88b9
Add missing length annotation to pBudgets parameter in vmaGetHeapBudgets 2022-01-14 16:40:40 +08:00
Adam Sawicki
c5870ad3c2 Forgot to delete VmaReplay.exe 2022-01-12 12:57:02 +01: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
5453c4b5eb Fixed compilation of tests. 2022-01-07 14:27:36 +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
c61770a162 Fixed CMakeLists.txt regarding VMA_DYNAMIC_VULKAN_FUNCTIONS, VMA_STATIC_VULKAN_FUNCTIONS
Closes #218
2022-01-05 18:41:51 +01:00
Adam Sawicki
35bc050aa3 Fixed typo in code 2022-01-05 17:37:30 +01:00