DirectX RenderContext RAM / VRAM

问题描述 投票:0回答:1

我有8GB或Vram(Gpu)和16GB的普通Ram在分配(创建)许多让我说大4096x4096纹理我最终耗尽Vram ..然而从我可以看到它然后在ram创建它而不是..当你有需要渲染(使用或使用)..它接缝将渲染上下文从ram传输到vram以便这样做。在每帧(60fps等)上运行正常访问许多渲染上下文时,pc会在尝试来回传输非常高的量时滞后。然而,新的(最近没有使用的渲染上下文(仍然在ram而不是vram))的数量是这么长的每秒引用...应该没有问题(性能明智)。问题是这些信息是否正确?

memory directx ram vram
1个回答
0
投票

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

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

DirectX 12将“过度提交”留给应用程序,就像其他关于DirectX 12的其他内容一样,通常会删除“运行时魔术行为”。有关此行为的详细信息,请参阅docs,以及this sample

© www.soinside.com 2019 - 2024. All rights reserved.