2010-02-18 101 views
2

我很好奇,喜欢昂贵的功能如何:OpenGL操作有多昂贵?

glViewPort 
glLoadIdentity 
glOrtho 

在双方的CPU上所做的工作,并在GPU上所做的工作条件。

这是在哪里记录的?

回答

2

这种事情可能很依赖于你的平台。如果您担心,最好的办法可能是自己使用一个分析器。

+0

分析器测量CPU时间。 OpenGL调用影响GPU硬件,事实上,您只能测量CPU的实现,而不能测量GPU的后果。 – Luca 2010-02-19 06:37:30

+1

也有用于GPU的分析器。 – Mongoose 2010-02-19 23:03:37

0

正如Alex O'Konski所言,这是高度依赖于平台的。也就是说,如果你对PC最近的图形卡感兴趣,你应该知道它们中的大多数不会在GPU上“工作”。他们为未来的平局建立了状态。

这很重要,因为它们的成本与GPU在流过芯片的各种绘制调用之间传输流水线的能力有关,而不是将多少时间用于将寄存器从一个值更改为下一个值。

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

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