Commit Graph

2 Commits

Author SHA1 Message Date
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
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