2012-04-11 74 views
1

我的應用程序,而只有16允許處理超過20個視口。值得慶幸的是,整個場景可以分成幾個部分,不會將頂點從一個「泄漏」到另一個,每個頂點的視口都小於10.是RSSetViewports調用異步或同步在Direct3D 11?

現在問題是如果更改視圖端口數組在渲染的中間(儘管它是允許的)。我的猜測是,只要它被稱爲* RS * SetViewports應該是異步的,可以在渲染中安全地調用。但我找不到任何證據。

回答

2

是RSSetViewports是一個普通的圖形狀態命令,寫入GPU命令緩衝區以異步執行,因此每幀設置多次並沒有問題,它不會阻止CPU等待GPU執行完成。

沒有國家這樣做,只有如地圖調用(不D3D11_MAP_FLAG_DO_NOT_WAIT)明確的操作會阻塞,等待GPU。