我很好奇有多么昂贵的功能:
glViewPort
glLoadIdentity
glOrtho
是在CPU上完成的工作和在GPU上完成的工作。
这在哪里记录?
答案 0 :(得分:2)
这种事情可能非常依赖于您的平台。如果你担心的话,最好的办法就是自己使用一个探查器。
答案 1 :(得分:0)
正如Alex O'Konski所提到的,这在很大程度上取决于平台。
也就是说,如果你对PC最近的显卡感兴趣,你应该知道他们中的大多数都没有“在GPU上工作”。他们为未来的抽奖电话设置了状态。
这一点非常重要,因为它们的成本与GPU在流经芯片的各种绘制调用之间的流水线管理程度有关,而不是将寄存器从一个值更改为下一个值所花费的时间。
大多数平台供应商根本没有记录各种状态变化的成本。他们没有记录OpenGL状态如何映射到其硬件状态。
最后,状态变化如矩阵状态(glLoadIdentity和glOrtho)是过去的残余。在现代图形卡中,它们只是辅助(CPU)功能来设置制服(这就是它们在核心GL 3.1中被弃用的原因)。他们需要的所有数学(通常不多)都是在驱动程序内的CPU上完成的。