我正在使用顶点和像素着色器来执行基本操作,如顶点着色器中的矩阵乘法和使用像素着色器的纹理采样。我在下面的语句中想知道最后一条语句是否等待直到顶点和像素着色器操作被执行。ID3D11DeviceContext :: DrawIndexed方法是否等待顶点和像素着色器操作完成?
deviceContext->VSSetShader(VS, NULL, 0);
deviceContext->PSSetShader(PS, NULL, 0);
deviceContext->PSSetSamplers(0, 1, &Sampler);
deviceContext->DrawIndexed(IndexCount, 0, 0); // Does it wait for pixel operations to be performed on all pixels?
你的问题既有趣又太宽泛。你有证据表明这种情况是并行发生的,而不是按顺序发生的?哪些视频芯片和驱动程序?这对你的项目有什么影响? –
我在我的项目中没有任何问题,但是试图确保在DrawIndexed()调用返回后,所有像素操作都在GPU中执行的着色器中执行。换句话说,GPU是否有与CPU主机交互的方式来完成它。 (在文档中找不到关于此的任何信息)。试图断言在这个调用返回并且场景使用IDXGISwapChain :: Present方法呈现之后,每个像素的所有像素操作总是完成。 –