我学习Directx 11已经有一段时间了,但是我仍然对Directx 11如何管理内存感到困惑。例如,如果我使用ID3D11Device::CreateBuffer创建一个顶点缓冲区,那么新缓冲区存储在哪里?我知道它返回一个指向缓冲区的指针,这意味着它必须存储在CPU RAM中,对吗?但是,我认为这将使ID3D11DeviceContext::IASetVertexBuffers成为一个非常慢的过程,因为它必须将缓冲区从CPU RAM复制到GPU RAM。但是如果用ID3D11Device:CreateBuffer创建的所有缓冲区都存储在GPU中,那么GPU不是很快就会被填满吗?基本上,我想知道:当我创建一个缓冲区时,数据存储在哪里?在CPU RAM还是GPU RAM中?另外,ID3D11DeviceContext::IASetVertexBuffers使用缓冲区做什么(复制/设置)。
发布于 2014-10-17 04:32:38
https://stackoverflow.com/questions/26416910
复制相似问题