Commit Graph

1036 Commits

Author SHA1 Message Date
Adam Sawicki
35e1539161 Fix for out-of-bound accessing last free block in EXTENSIVE defragmentation algorithm.
Code by @medranSolus
See #232
2022-03-28 13:19:34 +02:00
Adam Sawicki
228a1b68ae
Merge pull request #254 from MennoVink/master
C4062 fix
2022-03-28 10:08:52 +02:00
Menno Vink
11cbcfcfc5 Simplify the code to keep xcode happy 2022-03-27 18:34:29 +02:00
Menno Vink
54d356e2f3 C4062 fix 2022-03-27 17:48:07 +02:00
Adam Sawicki
42be483bd5 Fix for missing shader files 2022-03-25 12:49:35 +01:00
Adam Sawicki
67fda02b4b Updated version number and CHANGELOG.md
Regenerated documentation and executable.
2022-03-25 12:39:55 +01:00
Adam Sawicki
3c6470cf45 New JSON dump format
Unified across VMA and D3D12MA.
Updated Python script for visualization - now called GpuMemDumpVis.py.

Also a fix for bug in EXTENSIVE defragmentation algorithm - see #232

Code by @medranSolus
2022-03-24 11:50:34 +01:00
Adam Sawicki
6fbb28e3a8 Improvement in TestAllocationAliasing 2022-03-21 13:07:44 +01:00
Adam Sawicki
cde49463f5 Minor fix in README 2022-03-21 12:50:07 +01:00
Adam Sawicki
05a6144718 Updated README 2022-03-17 18:00:48 +01:00
Adam Sawicki
6b098e457e Small but important fix in the documentation 2022-03-14 18:05:55 +01:00
Adam Sawicki
fadfc3fd13 Added convenience functions vmaCreateAliasingBuffer, vmaCreateAliasingImage
Code by @medranSolus
2022-03-14 16:56:30 +01:00
Adam Sawicki
58face4cff Changed macro in defragmentation test to more readable lambda.
Code by @medranSolus
2022-03-14 14:21:59 +01:00
Adam Sawicki
c317c7b3e8 Internal improvement: moved setting of incremental sort in block vector to separate variable.
Code by @medranSolus
2022-03-10 15:17:22 +01:00
Adam Sawicki
31910c8b08 Fix in defragmentation versus mapping
by @medranSolus

Added TestDefragmentationVsMapping.
2022-03-09 13:24:06 +01:00
Adam Sawicki
e4dd120c2f Fixed line endings to LF again
See #195
2022-03-08 13:50:37 +01:00
Adam Sawicki
85a49729c3 Improvements in documentation regarding defragmentation 2022-03-08 13:46:58 +01:00
Adam Sawicki
e1879e9f10 Removed VMA_ALLOCATION_CREATE_RESERVED_1_BIT, VMA_ALLOCATION_CREATE_RESERVED_2_BIT
Improvements in documentation.
2022-03-08 12:25:24 +01:00
Adam Sawicki
b644e72765 Renamed VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_PACKED_BIT to VMA_VIRTUAL_ALLOCATION_CREATE_STRATEGY_MIN_OFFSET_BIT for consistency. Compatibility breaking. 2022-03-07 17:16:49 +01:00
Adam Sawicki
7d182e2c5a Change in the defragmentation API. Compatibility breaking!
Removed VmaDefragmentationMove::dstMemory, dstOffset, internalData, added dstTmpAllocation.
Code by @medranSolus
2022-03-07 17:00:12 +01:00
Adam Sawicki
80a07979f5 Improvements in documentation, especially regarding defragmentation 2022-03-04 16:33:16 +01:00
Adam Sawicki
f828262f43 Changed vmaEndDefragmentation to return void (somewhat compatibility breaking)
It couldn't fail anyway.
2022-03-04 14:24:29 +01:00
Adam Sawicki
b1427085f3 Fixed accounting of statistics in defragmentation.
Code by @medranSolus
See #232
2022-03-04 13:26:42 +01:00
Adam Sawicki
ea759b65d4 Added missing mutexes for DefragmentPassEnd().
Code by @medranSolus
2022-03-04 10:34:26 +01:00
Adam Sawicki
9b8303f72b
Merge pull request #249 from JustSid/master
Fixed two issues with the new defragmenter
2022-03-04 10:21:37 +01:00
Sidney Just
7b9c21f1fe Fixed defragmenter not acquiring a lock before touching blocks 2022-03-03 17:05:05 -08:00
Sidney Just
44a5aea4ef Fixed loop termination when ending defragment passes 2022-03-03 17:04:20 -08:00
Adam Sawicki
46776a4c37 Fixed merge error 2022-03-03 11:33:39 +01:00
Adam Sawicki
caf27e0428 Made allocation Name and UserData separate. COMPATIBILITY BREAKING!
Added function vmaSetAllocationName. Added member VmaAllocationInfo::pName.
VMA_ALLOCATION_CREATE_USER_DATA_COPY_STRING_BIT is now deprecated but still works.

Code mostly by @medranSolus
2022-03-03 11:23:14 +01:00
Adam Sawicki
bd39bed5e6 Fixes in defragmentation
Implemented VMA_DEFRAGMENTATION_FLAG_ALGORITHM_BALANCED_BIT. Fixed allocation mapping after defragmentation.
Also fixed tests - hopefully fixes #248
Code by @medranSolus
2022-03-02 16:10:41 +01:00
Adam Sawicki
01364c7970 Added documentation chapter "VK_EXT_memory_priority"
Other fixes in documentation
2022-02-28 12:10:18 +01:00
Adam Sawicki
f02c8a46d8 Improvement in documentation 2022-02-28 10:57:04 +01:00
Adam Sawicki
4039e45a19 Added documentation chapter "Versioning and compatibility"
Many improvements in documentation and README.
2022-02-26 13:26:20 +01:00
Adam Sawicki
86c124c772 VMA_MEMORY_USAGE_AUTO* flags: Added support for rare case when a resource used on the device, not used on the host, may still be preferred in host memory
An update in the documentation.
2022-02-26 11:49:51 +01:00
Adam Sawicki
75446de4cc
Merge pull request #246 from RandomShaper/add-godot
Add Godot Engine to the list of known usages
2022-02-25 19:23:53 +01:00
Pedro J. Estébanez
30b122478f Add Godot Engine to the list of known usages 2022-02-25 19:18:49 +01:00
Adam Sawicki
88bf8cb9a8 Removed usage of __popcnt
Apparently some old processors don't support this instruction. It's up to the user to provide optimized implementation by defining macro VMA_COUNT_BITS_SET.

Fixes #245
2022-02-25 13:51:13 +01:00
Adam Sawicki
dc3f6bb915
Merge pull request #242 from RandomShaper/fix_nullability
Add missing nullability qualifier
2022-02-24 11:46:03 +01:00
Pedro J. Estébanez
d8a9c7fa42 Add missing nullability qualifier 2022-02-24 11:42:44 +01:00
Adam Sawicki
20b9bc5334 Minor fixes in documentation of defragmentation 2022-02-23 16:21:16 +01:00
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