【发布时间】:2014-06-27 07:23:47
【问题描述】:
它们都可以用来计算经过的时间(以纳秒为单位)。 前者使用作用域 glBeginQuery/glEndQuery。有这个区别吗?
【问题讨论】:
它们都可以用来计算经过的时间(以纳秒为单位)。 前者使用作用域 glBeginQuery/glEndQuery。有这个区别吗?
【问题讨论】:
有区别吗?
你这么说好像是一些细微的差别。
GL_TIME_ELAPSED 提供处理query's scope 中的命令所需的GPU 时间(即:glBegin/EndQuery)。 GL_TIMESTAMP 不是任何东西的计数。它只是获取 GPU 时间,以纳秒为单位,因为......嗯,一些东西。开始时间是实现定义的,但它总是在增加(除非它溢出)。
换句话说,GL_TIME_ELAPSED 就像一个秒表:你开始和停止之间的时间。这是一个三角洲。 GL_TIMESTAMP 就像看时钟:它总是在增加。这是一个绝对时间,但它与某些实现相关。
【讨论】:
正如您所指出的,它们在功能上是相同的,除了使用 glBeginQuery()/glEndQuery() 和 glQueryCounter() 之间的区别。
请参阅:ARB_timer_query specification 的示例部分。
【讨论】: