安卓冻结在OpenGL | ES(CPU可能会挂钩.再次尝试.)

Tim*_*ola 37 c++ android opengl-es-2.0

前一段时间我eglSwapBuffers在设备日志中显示以下消息时遇到了冻结手机的问题:

W/SharedBufferStack( 1110): waitForCondition(LockCondition) timed out (identity=28, status=0). CPU may be pegged. trying again.
Run Code Online (Sandbox Code Playgroud)

我见过的讨论在这个问题上所有网站上,但我发现有任何影响的唯一解决方案是调用glFinisheglSwapBuffers.然而,这种解决方案导致帧速率下降了10-20,这远远不能接受.

问题已经打开,可以在这里找到

有人评论说使用方形纹理消除了这个问题.通过正方形,我最初认为他的意思是两个纹理的力量,但在确定我没有使用任何非幂二纹理并且没有摆脱这个问题后我开始认为他可能实际上意味着匹配纹理宽度和高度?

我正在使用Android 2.3.3测试HTC Desire.有人评论说,未来的版本应该已经解决了这个问题,但2.3.3安装在很多设备上,我们无法忽视它.

无论如何,有人对此有任何想法吗?我们非常接近发行标题,这个问题威胁到了时间表.

小智 1

我也遇到过这个问题,我曾经重新安装过应用程序,它对我有用。如果没有,那么只需重新启动您的设备。这个问题与OpenGLES的内部问题有关。您可以参考这个链接: Android“cpu may被钉住”错误