Commit Graph

266 Commits

Author SHA1 Message Date
Adam Sawicki
434fd4eba4 Minor fixes. Updated to Doxygen 1.9.4. 2022-06-14 15:22:23 +02:00
Adam Sawicki
4d0aa40810 Updated version number 2022-06-14 13:43:51 +02:00
Adam Sawicki
eace86c429 Fixed ambiguity in calls to JsonWriter::WriteNumber for size_t parameter to fix compilation on UWP
See #42
2022-06-14 13:43:22 +02:00
Adam Sawicki
4c5e910c9f
Merge pull request #41 from GermanAizek/refactor
Fixed minor bugs
2022-05-20 17:08:14 +02:00
germanaizek
52b71ca7b6 Fixed minor bugs 2022-05-20 17:59:07 +03:00
Adam Sawicki
117ff9efa8 Some refactoring after merging #40 2022-04-25 13:42:59 +02:00
Adam Sawicki
b0316c9ab1
Merge pull request #40 from kingofthebongo2008/fix-for-memory-zeroed-flag
Add Runtime support check for D3D12_HEAP_FLAG_CREATE_NOT_ZEROED
2022-04-25 13:35:09 +02:00
stefan
1832eacd49 Add Runtime support check for D3D12_HEAP_FLAG_CREATE_NOT_ZEROED 2022-04-24 11:48:34 +03:00
Adam Sawicki
d6ff05eb2a Updated documentation regarding thread safety of defragmentation 2022-04-19 16:42:07 +02:00
Adam Sawicki
6a61103936 Releasing version 2.0.1 2022-04-05 14:35:35 +02:00
Adam Sawicki
f399a78cfe Merge branch 'master' of https://github.com/GPUOpen-LibrariesAndSDKs/D3D12MemoryAllocator 2022-04-05 13:35:48 +02:00
Adam Sawicki
19322e3194 Fixes in JSON dump format. Fixes in GpuMemDumpVis.py regarding image height calculation.
Added GpuMemDump.schema.json.
2022-04-05 13:34:45 +02:00
Adam Sawicki
a07cc582eb
Merge pull request #37 from rbertin-aso/master
Fix tool y offset for custom pool blocks
2022-03-31 15:09:19 +02:00
rbertin-aso
ac6a7bd850 Fix tool y offset for custom pool blocks 2022-03-31 14:50:25 +02:00
Adam Sawicki
2d7d710944 Added missing changes 2022-03-30 13:23:01 +02:00
Adam Sawicki
3365a2d0e1 Added documentation section "Resource reference counting" 2022-03-30 13:22:03 +02:00
Adam Sawicki
ce48386e5c Added test for JSON dump with custom pools and their names 2022-03-29 15:09:17 +02:00
Adam Sawicki
4ebe099c47
Merge pull request #36 from rbertin-aso/master
Fix export of custom pool names
2022-03-29 15:07:55 +02:00
rbertin-aso
a5b20c022e Fix export of custom pool names 2022-03-28 16:46:10 +02:00
Adam Sawicki
17f992a0ad Updated version number and CHANGELOG.md
Regenerated documentation and executable.
2022-03-25 11:33:00 +01:00
Adam Sawicki
3b3c62e923 Merge branch 'master' of http://isvgit.amd.com/gpuopen/GPUOpen-LibrariesAndSDKs/d3d12memoryallocator 2022-03-24 17:45:53 +01:00
Adam Sawicki
70843b28f8 Fix in TestStats for UMA platforms 2022-03-24 17:45:04 +01:00
Adam Sawicki
36ce392aee Added ALLOCATOR_FLAG_MSAA_TEXTURES_ALWAYS_COMMITTED, POOL_FLAG_MSAA_TEXTURES_ALWAYS_COMMITTED
Code by @medranSolus
2022-03-24 15:54:47 +01:00
Adam Sawicki
62b61790de Fixes in BlockMetadata_Linear::Validate 2022-03-24 15:19:09 +01:00
Adam Sawicki
10bff5ec74 Fix for case when a large allocation is made with ALLOCATION_FLAG_CAN_ALIAS
Code by @medranSolus
2022-03-24 13:58:50 +01:00
Adam Sawicki
98218850d6 New JSON dump format
Unified across VMA and D3D12MA.
Updated Python script for visualization - now called GpuMemDumpVis.py.

Code by @medranSolus
2022-03-24 12:14:27 +01:00
Adam Sawicki
583aee7676 Fixed bug in BlockMetadata_TLSF::WriteAllocationInfoToJson
Fixes #35, thanks @Rob1B !
2022-03-23 14:46:59 +01:00
Adam Sawicki
4eee6838b7 Updated README 2022-03-18 12:40:57 +01:00
Adam Sawicki
5b33438180 Fixed bugs in AllocatorPimpl::CalculateStatistics
Fixes #34
2022-03-16 15:49:59 +01:00
Adam Sawicki
d0cc54c5ad Added documentation chapter about defragmentation 2022-03-15 11:32:07 +01:00
Adam Sawicki
2fd8ea323a Added ALLOCATOR_FLAG_DEFAULT_POOLS_NOT_ZEROED
Code by @medranSolus
2022-03-14 14:40:22 +01:00
Adam Sawicki
fbd11f01ae Added ALLOCATION_FLAG_CAN_ALIAS flag to prevent from using committed allocations on aliasing resources.
Code by @medranSolus
2022-03-14 14:30:34 +01:00
Adam Sawicki
d2639287ed Added defragmentation.
Added enum DEFRAGMENTATION_FLAGS, struct DEFRAGMENTATION_DESC, enum DEFRAGMENTATION_MOVE_OPERATION, struct DEFRAGMENTATION_MOVE, struct DEFRAGMENTATION_PASS_MOVE_INFO, struct DEFRAGMENTATION_STATS, class DefragmentationContext, methods Pool::BeginDefragmentation, Allocator::BeginDefragmentation.

Added flags ALLOCATION_FLAG_STRATEGY_MIN_MEMORY = ALLOCATION_FLAG_STRATEGY_BEST_FIT, ALLOCATION_FLAG_STRATEGY_MIN_TIME = ALLOCATION_FLAG_STRATEGY_FIRST_FIT, ALLOCATION_FLAG_STRATEGY_MIN_OFFSET, ALLOCATION_FLAG_STRATEGY_MASK.
Added flags VIRTUAL_ALLOCATION_FLAG_STRATEGY_MIN_MEMORY, VIRTUAL_ALLOCATION_FLAG_STRATEGY_MIN_TIME, VIRTUAL_ALLOCATION_FLAG_STRATEGY_MIN_OFFSET, VIRTUAL_ALLOCATION_FLAG_STRATEGY_MASK
Added members Allocation::GetAlignment, SetResource, SetPrivateData, GetPrivateData, ALLOCATION_DESC::pPrivateData.
Renamed ALLOCATION_CALLBACKS::pUserData to pPrivateData, VirtualBlock::SetAllocationUserData to SetAllocationPrivateData.

Code by @medranSolus
2022-03-11 16:46:19 +01:00
Adam Sawicki
2a318103da Refactored internal code structure similary to VMA.
Code by @medranSolus
2022-03-03 15:22:36 +01:00
Adam Sawicki
647f109a84 Added documentation chapter "Versioning and compatibility" 2022-02-26 13:26:44 +01:00
Adam Sawicki
a0376f7261 Minor fixes in the documentation 2022-02-24 22:51:49 +01:00
Adam Sawicki
ae2ea0b293 Fixes in the documentation 2022-02-24 17:13:16 +01:00
Adam Sawicki
8f02da698d Minor fix: removed HEAP_TYPE_COUNT constant from the public interface 2022-02-24 16:04:58 +01:00
Adam Sawicki
f3af1d9a30 Finished major refactoring of the statistics and budget API. COMPATIBILITY BREAKING!
See structures: Statistics, DetailedStatistics, TotalStatistics, Budget.
Functions: Allocator::GetMemoryCapacity, GetBudget, CalculateStatistics,
Pool::GetStatistics, CalculateStatistics,
VirtualAllocation::GetStatistics, CalculateStatistics.

Updated and rebuilt the docs.
2022-02-24 16:02:04 +01:00
Adam Sawicki
7b2cbbea16 Fix for platforms that don't support ID3D12Device4
Fixes #33
Thank you @shaggie76
2022-02-24 13:06:03 +01:00
Adam Sawicki
92d23c0cba Refactoring of statistics API. COMPATIBILITY BREAKING!
See structures: Statistics, DetailedStatistics, TotalStatistics, functions: Pool::GetStatistics, Pool::CalculateStatistics, VirtualBlock::GetStatistics, VirtualBlock::CalculateStatistics, Allocator::CalculateStatistics.

Switched to TSLF algorithm as the default. Removed: POOL_FLAG_ALGORITHM_TLSF, VIRTUAL_BLOCK_FLAG_ALGORITHM_TLSF.
2022-02-23 10:30:34 +01:00
Adam Sawicki
7ab674b85a Fixes in TestLinearAllocator 2022-02-11 11:47:39 +01:00
Adam Sawicki
9252861098 Fix for BitScan functions in GCC and Clang.
Code by @medranSolus
2022-02-08 11:16:19 +01:00
Adam Sawicki
ae519f2521 Fix for not applying debug margin in Generic algorithm.
Ported test for linear algorithm from VMA.

Code by @medranSolus
2022-02-07 16:35:36 +01:00
Adam Sawicki
80cd0026a1 Minor improvement in a test 2022-02-04 14:36:39 +01:00
Adam Sawicki
353caa9b47 Fixes after merge 2022-02-04 13:24:41 +01:00
Adam Sawicki
3a3b44555a Added possibility to choose different allocation algorithm in custom pools and virtual blocks.
Changed behavior of VirtualBlock::Allocate, FreeAllocation: VirtualAllocation::AllocHandle = 0 (not UINT64_MAX) now means null allocation.
Ported linear allocation algorithm from VMA.
Renamed VIRTUAL_ALLOCATION_INFO members to uppercase Offset, Size.
Fixed D3D12MA_DEBUG_MARGIN not to be applied to virtual allocator.
Added test for D3D12MA_DEBUG_MARGIN (ported from VMA).
Code mostly by @medranSolus
Updated and rebuilt documentation.
2022-02-04 13:22:45 +01:00
Adam Sawicki
56335afdad Fixed algorithm in BlockMetadata_TLSF::CreateAllocationRequest
Code by @medranSolus
2022-02-01 14:11:35 +01:00
Adam Sawicki
e99d1c9687 Added VirtualAllocation for VirtualBlock describing single allocation. COMPATIBILITY BREAKING!
Moved to using AllocHandle as unique identifier for single allocation instead of offset.
Changed D3D12_DEBUG_MARGIN to only be present at the end of each allocation.
Removed unused BlockMetadata::GetUnusedRangeSizeMax().
Added TLSF allocation algorithm - unused for now.

Code by @medranSolus
2022-02-01 12:31:35 +01:00
Adam Sawicki
721d65a5a4 Fixed bug in CanUseSmallAlignment function
Thanks @danielkrupinski !
2022-01-28 14:17:45 +01:00