试图理解命令列表。好吧,命令列表记录了我用于渲染的命令,还记录了绑定资源,比如说一个带有顶点数据的缓冲区。
m_commandList->IASetVertexBuffers(0, 1, &m_vertexBufferView);
这记录了顶点缓冲区的绑定。此时缓冲区发生了什么?如果我在记录后更改此顶点缓冲区的内容会发生什么?如果我在调用执行命令列表之后更改此顶点缓冲区的内容并且 gpu 尚未完成它会发生什么?
我猜 ExecuteCommandList 是一个异步函数调用,对吗?它是一次执行所有绑定(数据传输到 gpu),还是一一执行命令,甚至所有绑定?命令列表是由驱动程序执行的,还是全部发送到 gpu ?
好吧,因为缺乏好的例子,我还有很多问题。我会很高兴,如果你能回答其中的几个来说明清楚。