2

Both of them can be used to get time elapsed in nanoseconds. The former uses scoped glBeginQuery/glEndQuery. Is that the difference?

4

2 回答 2

5

这就是区别吗?

你说这好像是一些细微的差别。

GL_TIME_ELAPSED提供处理查询范围内的命令所花费的 GPU 时间(即:)glBegin/EndQueryGL_TIMESTAMP算不了什么它只是获得 GPU 时间,以纳秒为单位,因为......嗯,一些东西。开始时间是实现定义的,但它总是在增加(除非它溢出)。

换句话说,GL_TIME_ELAPSED它就像一个秒表:你开始和停止之间的时间。这是一个三角洲。GL_TIMESTAMP就像看时钟:它总是在增加。这是一个绝对时间,但它与实现相关的东西有关。

于 2015-12-29T00:58:15.350 回答
-3

正如您所指出的,它们在功能上是相同的,除了使用glBeginQuery()/glEndQuery()和之间的区别。glQueryCounter()

请参阅: ARB_timer_query 规范的示例部分。

于 2014-06-27T09:25:15.697 回答