Direct3D 12 中的内存管理
迁移到 D3D12 需对内存驻留进行适当同步和管理。 管理内存驻留意味着必须执行更多同步。 本节介绍内存管理策略,以及堆和缓冲区中的二次分配。
在本节中
主题 | 说明 |
---|---|
内存管理策略 |
Direct3D 12 的内存管理器可能会迅速变得非常复杂,原因在于所有对 UMA 或离散(非 UMA)适配器的各层级支持,以及 GPU 适配器之间相当多的体系结构差异。 本部分所述的建议 Direct3D 12 内存管理策略是“分类、预算和流式处理”。 |
缓冲区中的子分配 |
缓冲区具有 D3D12 所需的所有功能,可供应用程序将大量瞬态数据从 CPU 传输到 GPU。 本节介绍使用和管理资源及缓冲区的四种常见场景。 |
堆中的子分配 |
资源堆将数据从 CPU 传输到 GPU(上传),并从 GPU 传输到 CPU(回读)。 |
驻留 |
如果 GPU 可访问某个对象,则该对象将被视为常驻对象。 |