Memory Management in Direct3D 12
Moving to D3D12 involves doing proper synchronization and management of memory residency. Managing memory residency means even more synchronization must be done. This section covers memory management strategies, and suballocation within heaps and buffers.
In this section
|Memory Management Strategies
|A memory manager for Direct3D 12 could get very complicated quickly with all the different tiers of support, for UMA or discrete (non-UMA) adapters, and with a considerable range of architecture differences between GPU adapters.
The recommended strategy for Direct3D 12 memory management , described in this section, is "classify, budget and stream".
|Suballocation Within Buffers
|Buffers have all the features necessary in D3D12 for applications to transfer a large range of transient data from the CPU to the GPU. This section covers four common scenarios for the use and management of resources and buffers.
|Suballocation Within Heaps
|Resource heaps transfer data from the CPU to the GPU (upload), and from the GPU to the CPU (read back).
|An object is considered to be resident when it is accessible by the GPU.