在OpenGL中使用GL_TIME_ELAPSED和GL_TIMESTAMP查询时间流逝的区别是什么?



它们都可以用来获得以纳秒为单位的时间。前者使用glBeginQuery/glEndQuery。这就是区别吗?

这就是区别吗?

你说得好像差别很小似的。

GL_TIME_ELAPSED提供处理查询范围内命令所需的GPU时间(即:glBegin/EndQuery)。GL_TIMESTAMP不是任何东西的计数。它仅仅获得GPU时间,以纳秒为单位,因为…嗯,什么东西。开始时间是实现定义的,但它总是在增加(除非它溢出)。

换句话说,GL_TIME_ELAPSED就像一个秒表:从开始到停止之间的时间。它是一个。GL_TIMESTAMP就像看时钟:它总是在增加。这是一个绝对的时间,但它是相对于实现依赖的东西。

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

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

相关内容

  • 没有找到相关文章