【发布时间】:2013-05-10 08:43:25
【问题描述】:
我对 OpenGL ES 服务器异步运行某些命令序列所花费的时间感兴趣。使用常规 OpenGL 解决此问题的方法是使用目标 GL_TIME_ELAPSED 创建一个查询对象;但是,OpenGL ES 没有 glBeginQuery 系列函数。是否有独立于平台的方式来使用 OpenGL ES 2 或 3 准确获取此信息?
【问题讨论】:
标签: opengl-es elapsedtime
我对 OpenGL ES 服务器异步运行某些命令序列所花费的时间感兴趣。使用常规 OpenGL 解决此问题的方法是使用目标 GL_TIME_ELAPSED 创建一个查询对象;但是,OpenGL ES 没有 glBeginQuery 系列函数。是否有独立于平台的方式来使用 OpenGL ES 2 或 3 准确获取此信息?
【问题讨论】:
标签: opengl-es elapsedtime
不,恐怕 OpenGL ES 2.0 中的性能计数器没有可移植的方式。您将需要转达每个供应商可用的工具。
对于 OpenGLES 3.0,该系列函数已被添加。不幸的是,GL_TIME_ELAPSED 不是此版本的有效目标。
请参阅第 2.13 节异步查询(2013 年 4 月 8 日 3.02):http://www.khronos.org/registry/gles/specs/3.0/es_spec_3.0.2.pdf
【讨论】:
您可以使用 OpenGL ES 扩展 GL_EXT_disjoint_timer_query,用于 OpenGL ES 2.0。
【讨论】: