我正在使用OpenGL ES 3.0开发应用程序。 目标设备是谷歌Nexus 5(Adreno 320)和Saumsung Galaxy S5(Adreno 420)。
我使用glFenceSync
和glClientWaitSync
来衡量我在Android 4.4版本中编码的每个渲染周期的处理时间。
但是,在Lollipop更新后,似乎glFenceSync
和glClientWaitSync
会立即返回。所以,我无法衡量处理时间。
为什么会发生这种情况? 这是Adreno图形驱动程序的错误还是Lollipop错误?
这是我的代码的一部分。
GLsync syncFence1 = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
glDrawArraysInstanced(GL_TRIANGLE_STRIP, 0, 4, 1);
GLenum syncResult1 = glClientWaitSync(syncFence1, GL_SYNC_FLUSH_COMMANDS_BIT, 1000000000);
glDeleteSync(syncFence1);
我要停止CPU操作,直到glDrawArraysInstanced函数全部完成,因此图形管道操作完成。 我确认超时比图形管道运行时间长。