我正在使用頂點和像素着色器來執行基本操作,如頂點着色器中的矩陣乘法和使用像素着色器的紋理採樣。我在下面的語句中想知道最後一條語句是否等待直到頂點和像素着色器操作被執行。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方法呈現之後,每個像素的所有像素操作總是完成。 –