它们都可以用来获得以纳秒为单位的时间。 前者使用scoped glBeginQuery / glEndQuery。这有区别吗?
答案 0 :(得分:3)
这有区别吗?
你说这好像是一些细微的差别。
GL_TIME_ELAPSED
提供了处理query's scope中命令所花费的GPU时间(即:glBegin/End
)。 GL_TIMESTAMP
不是任何东西的计数。它只需要一个时间,以纳秒为单位,因为......好吧,有些东西。开始时间是实现定义的,但它总是在增加(除非它溢出)。
换句话说,GL_TIME_ELAPSED
就像一个秒表:从你开始和停止之间的时间。这是一个三角洲。 GL_TIMESTAMP
就像看时钟一样:它总是在增加。这是一个绝对的时间,但它与依赖于实现的东西相关。
答案 1 :(得分:-1)
除了正如您所指出的使用glBeginQuery()
/ glEndQuery()
和glQueryCounter()
之间的差异外,它们在功能上是相同的。
请参阅:ARB_timer_query specification的示例部分。