Advanced memory management features
masterBeyond basic resource creation, the library provides several advanced capabilities:
- Linear Allocator: Create pools using a linear algorithm for high-speed allocations/deallocations in stack, double stack, ring buffer, or free-at-once modes.
- Defragmentation: Allows the library to move data to compact allocations and free up contiguous memory blocks.
- Custom Memory Pools: Create pools with specific
D3D12_HEAP_PROPERTIESandD3D12_HEAP_FLAGSor fixed maximum sizes. - Resource Aliasing: Supports overlapping resources in the same memory.
- Virtual Allocator: An API to use the core allocation algorithm without actually allocating GPU memory (useful for sub-allocating pieces of a large buffer).
- Statistics & Debugging:
- Query global or per-heap statistics (usage, budget, number of allocations).
- Associate custom
void* pPrivateDataandLPCWSTR pNamewith allocations. - Export a detailed internal state map via JSON dump.
- Visualize memory via
GpuMemDumpVisusing the JSON dump.