它们都可以用来获得以纳秒为单位的时间。前者使用glBeginQuery/glEndQuery。这就是区别吗?
这就是区别吗?
你说得好像差别很小似的。
GL_TIME_ELAPSED
提供处理查询范围内命令所需的GPU时间(即:glBegin/EndQuery
)。GL_TIMESTAMP
不是任何东西的计数。它仅仅获得GPU时间,以纳秒为单位,因为…嗯,什么东西。开始时间是实现定义的,但它总是在增加(除非它溢出)。
换句话说,GL_TIME_ELAPSED
就像一个秒表:从开始到停止之间的时间。它是一个。GL_TIMESTAMP
就像看时钟:它总是在增加。这是一个绝对的时间,但它是相对于实现依赖的东西。
它们在功能上是相同的,除了使用glBeginQuery()
/glEndQuery()
和glQueryCounter()
之间的区别,正如您指出的。
请参阅:ARB_timer_query规范的示例部分。