0

在分配(创建)时,我有 8GB 或 Vram (Gpu) 和 16GB 的普通 RAM,可以说大型 4096x4096 纹理我最终会用完 Vram .. 但是从我所看到的情况来看,然后在 ram 上创建它.. 当你需要渲染(使用或渲染)它..它接缝将渲染上下文从ram传输到vram以便这样做。在每一帧(60fps 等)上运行正常访问许多渲染上下文时,PC 会因为它尝试来回传输大量数据而滞后。但是,只要每秒引用新的数量(最近未使用的渲染上下文(等仍在 ram 而不是 vram 上)).. 应该没有问题(性能方面)。问题是这些信息是否正确?

4

1 回答 1

0

DirectX 将从DEFAULTGPU 直接访问的视频 RAM 和/或 PCIe 孔径 RAM 分配池资源。通常渲染目标必须在视频 RAM 中,并且通常视频 RAM 是更快的内存——尽管它在很大程度上取决于图形卡的确切架构。

您所描述的是“过度提交”场景,您分配的资源超出了 GPU 可访问资源的实际容量。在这种情况下,DirectX 11 做出了“尽力而为”,通常涉及更改虚拟内存映射以使场景渲染,但与更正常的情况相比,性能显然很差。

DirectX 12 将“过度提交”的处理留给应用程序处理,就像 DirectX 12 的其他所有内容一样,通常“运行时魔术行为”已被删除。有关此行为的详细信息以及此示例,请参阅文档

于 2018-09-18T04:59:21.217 回答