我已经学习DirectX 11有一段时间了,但我仍然对DirectX 11如何管理内存感到困惑。例如,如果我使用ID3D11Device::CreateBuffer创建一个顶点缓冲区,那么新的缓冲区存储在哪里?我知道它返回一个指向缓冲区的指针,这意味着它必须存储在CPU RAM上,对吗?然而,我认为这会使ID3D11DeviceContext::IASetVertexBuffers成为一个非常慢的过程,因为它需要将缓冲区从CPU RAM复制到GPU RAM。但是,如果使用ID3D11Device:CreateBuffer创建的所有缓冲区都存储在GPU RAM上,那么GPU RAM不会很快就填满吗?基本上,我想知道:当我创建一个缓冲区时,该数据存储在CPU RAM还是GPU RAM中?另外,ID3D11DeviceContext::IASetVertexBuffers正在对缓冲区执行什么操作(复制/设置)?