RSSetViewports在Direct3D 11中调用异步还是同步?

时间:2012-04-11 06:01:04

标签: viewport direct3d11

我的应用程序必须处理超过20个视图端口,而只允许16个视图端口。值得庆幸的是,整个场景可以划分为几个部分,这些部分不会将顶点“泄漏”到另一个,每个部分的视口都小于10。

现在的问题是,如果在渲染过程中更改视口数组是好的(尽管允许)。我的猜测是,只要它被称为* RS * SetViewports它应该是异步的,并且可以在渲染过程中安全地调用。但我找不到任何证据。

1 个答案:

答案 0 :(得分:2)

是RSSetViewports是一个普通的图形状态命令,写入GPU命令缓冲区,异步执行,因此每帧设置多次没有问题,它不会阻止CPU等待GPU执行完成。

没有状态这样做,只有Map调用(没有D3D11_MAP_FLAG_DO_NOT_WAIT)等显式操作会阻塞并等待GPU。