1

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

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

4

1 回答 1

2

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

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

于 2012-12-29T01:09:43.440 回答