OpenGL操作有多贵?

时间:2010-02-18 01:49:47

标签: opengl

我很好奇有多么昂贵的功能:

glViewPort
glLoadIdentity
glOrtho

是在CPU上完成的工作和在GPU上完成的工作。

这在哪里记录?

2 个答案:

答案 0 :(得分:2)

这种事情可能非常依赖于您的平台。如果你担心的话,最好的办法就是自己使用一个探查器。

答案 1 :(得分:0)

正如Alex O'Konski所提到的,这在很大程度上取决于平台。

也就是说,如果你对PC最近的显卡感兴趣,你应该知道他们中的大多数都没有“在GPU上工作”。他们为未来的抽奖电话设置了状态。

这一点非常重要,因为它们的成本与GPU在流经芯片的各种绘制调用之间的流水线管理程度有关,而不是将寄存器从一个值更改为下一个值所花费的时间。

大多数平台供应商根本没有记录各种状态变化的成本。他们没有记录OpenGL状态如何映射到其硬件状态。

最后,状态变化如矩阵状态(glLoadIdentity和glOrtho)是过去的残余。在现代图形卡中,它们只是辅助(CPU)功能来设置制服(这就是它们在核心GL 3.1中被弃用的原因)。他们需要的所有数学(通常不多)都是在驱动程序内的CPU上完成的。