哪个在 OpenGL 批处理中更重要?
Which one is more important in batching in OpenGL?
我已阅读Batch,Batch,Batch。
在Batching过程中,主要有两件事:
1 Submit n number of triangles
2 SetState
那么哪个cpu更耗时呢?
或者 SetState 本身实际上根本不重要。这很重要,因为一旦状态改变,我们必须再次提交三角形?
总而言之,这并不重要(就像你在问题末尾所说的那样)
- 如果您在不提交数据的情况下执行 SetState 以使用该状态进行绘制,那就太愚蠢了。不要执行 SetState。
- 如果您绘制了多个状态相同的批次,您可能应该将它们作为一个批次提交。
"set state" 所做的将非常依赖于驱动程序,以及您更改的状态。某些更改可能需要大量验证,这可以在您设置状态时完成,或者在实际发送到 GPU 时完成,无法确定。
一般来说,我会把"submitting a draw"算作1个批次,不管做之前有没有改变状态。
我已阅读Batch,Batch,Batch。
在Batching过程中,主要有两件事:
1 Submit n number of triangles
2 SetState
那么哪个cpu更耗时呢?
或者 SetState 本身实际上根本不重要。这很重要,因为一旦状态改变,我们必须再次提交三角形?
总而言之,这并不重要(就像你在问题末尾所说的那样)
- 如果您在不提交数据的情况下执行 SetState 以使用该状态进行绘制,那就太愚蠢了。不要执行 SetState。
- 如果您绘制了多个状态相同的批次,您可能应该将它们作为一个批次提交。
"set state" 所做的将非常依赖于驱动程序,以及您更改的状态。某些更改可能需要大量验证,这可以在您设置状态时完成,或者在实际发送到 GPU 时完成,无法确定。
一般来说,我会把"submitting a draw"算作1个批次,不管做之前有没有改变状态。