Direct3D 12 中的内存管理

迁移到 D3D12 需对内存驻留进行适当同步和管理。 管理内存驻留意味着必须执行更多同步。 本节介绍内存管理策略,以及堆和缓冲区中的二次分配。

在本节中

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

Direct3D 12 编程指南

资源绑定