前一段时间我遇到了eglSwapBuffers
冻结手机的问题,并在设备日志中显示以下消息:
W/SharedBufferStack( 1110): waitForCondition(LockCondition) timed out (identity=28, status=0). CPU may be pegged. trying again.
我已经在网络上看到了有关此问题的讨论,但我发现唯一有效的解决方案是在glFinish
之后调用eglSwapBuffers
。然而,这种解决方案导致帧速率下降了10-20,这远远不能接受。
问题已经打开,可以找到一个here
有人评论说使用方形纹理消除了这个问题。通过正方形,我最初认为他的意思是两个纹理的力量,但在确定我没有使用任何非幂二纹理并且没有摆脱这个问题后我开始认为他可能实际上意味着匹配纹理宽度和高度?
我正在使用Android 2.3.3测试HTC Desire。有人评论说未来的版本应该已经解决了这个问题,但2.3.3安装在很多设备上我们无法忽视它。
无论如何,有人对此有任何想法吗?我们非常接近发送标题,这个问题威胁到了时间表。
答案 0 :(得分:1)
我也遇到过这个问题,我曾经重新安装应用程序并且它对我有用。如果没有,那么只需重新启动你的设备。这个问题与OpenGLES的内部问题有关。你可以参考这个链接: Android "cpu may be pegged" bug