DirectX RenderContext RAM / VRAM

时间:2018-09-17 13:56:43

标签: memory directx ram vram

分配(创建)时,我有8GB或Vram(Gpu)和16GB的Normal Ram,可以说很多4096x4096纹理,但最终用完了Vram ..但是据我所知,它后来在ram上创建了。每当您需要渲染(使用或渲染)时,它都会将渲染上下文从ram传输到vram以便进行渲染。运行正常访问每一帧(60fps等)上的许多渲染上下文时,pc会落后,因为它试图来回传输大量数据。但是,这么长的时间(每秒引用新的数量(最近未使用过的渲染上下文(例如,仍在ram上而不是vram))..应该没有问题(性能方面)。问题是此信息是否正确?

1 个答案:

答案 0 :(得分:0)

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

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

DirectX 12留给应用程序处理“过量提交”,这与DirectX 12的其他所有内容(通常已删除“运行时魔术行为”)非常相似。有关此行为的详细信息,请参见docs,以及this sample