我第一次学习WebGPU,在接下来的教程中,我看到每次呈现传递都会调用setPipeline。我想知道,如果管道在不同的通道之间发生变化,是否会影响性能?大多数教程 --我是阅读 --在每次传递时都使用相同的管道,只需通过writeBuffer更改数据,但我不知道这是否有意的。我唯一读到的关于管道优化的东西是来自本教程的
setPipeline
writeBuffer
该管道组件的配置(例如,着色器、顶点状态、渲染输出状态等)都是固定的,允许GPU更好地优化管道的渲染。
这会让我相信,管道不应该改变之间的传递,但我还没有看到任何明确的声明。提前感谢您的帮助!
发布于 2022-05-22 13:52:25
在一次渲染中,应用程序对不同的对象使用不同的着色器是相当常见的(例如:参见这个问题)。从优化的角度来看,您可能希望设置一个管道并呈现所有使用该管道的对象,然后设置另一个管道并呈现所有使用该管道的对象,等等。您可能希望查看实例,以尽量减少抽签调用的数量。
https://stackoverflow.com/questions/72075052
相似问题