Android在OpenGL | ES中冻结(CPU可能被挂住,再试一次)
前段时间,我遇到了eglSwapBuffers
问题,冻结了手机,并在设备日志中显示以下消息:
W/SharedBufferStack( 1110): waitForCondition(LockCondition) timed out (identity=28, status=0). CPU may be pegged. trying again.
我已经在整个networking上看到过关于这个问题的讨论,但是我发现唯一的解决scheme是在glFinish
之后调用eglSwapBuffers
。 然而,这个解决scheme导致10-20的百分比下降,这是远远不能接受的。
问题已经打开,可以在这里find
有人评论说,使用方形纹理消除了这个问题。 我刚开始以为他认为他的意思是两个纹理,但是在确定我没有使用任何非二次方的纹理,并且没有摆脱这个问题之后,我开始认为他可能实际上是指纹理匹配宽度和高度?
我正在testingAndroid 2.3.3的HTC Desire。 有人评论说,未来的版本应该已经解决了这个问题,但2.3.3被安装在这么多的设备上,我们不能忽视它。
无论如何,任何人有任何想法呢? 我们已经非常接近发货的头衔,这个问题正在威胁着时间表。
我也碰到过这个问题,我用来重新安装应用程序,它为我工作。如果没有,那么只需重新启动您的设备。这个问题是关于OpenGLES的内部问题。你可以参考这个链接: Android“CPU可能被钉住“的错误