我正在开发的图形引擎已经形成了一个主要的瓶颈,即顶点上的矩阵变换(几乎没有静态顶点)。到目前为止,我一直在用CPU转换顶点并每帧更新顶点缓冲区(数据复制本身就是一个瓶颈,但到目前为止是可管理的)。
所以我在考虑是否可以将网格缓冲区保留在GPU内部,我可以在那里转换顶点并将转换后的顶点集合返回到主存储器以进行其他处理(后续处理需要比GPU着色器允许)。这可能会消除当前代码中的瓶颈。
有关如何操作的提示吗?感谢。
答案 0 :(得分:6)
查看DX11中的流输出阶段:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb205121(v=vs.85).aspx
它允许您附加一个内存缓冲区(在CPU或GPU上),其中存储了顶点着色器(和可能的几何着色器)的结果。