37

不久前,我遇到了eglSwapBuffers冻结手机的问题,设备日志中显示以下消息:

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

我在网上看到了关于这个问题的讨论,但我发现唯一有效的解决方案是调用glFinishafter eglSwapBuffers。然而,这种解决方案会导致帧率下降 10 到 20 倍,这远远不能接受。

问题已打开,可以在此处找到

有人评论说使用方形纹理消除了这个问题。我最初以为他指的是二次幂纹理,但在确保我没有使用任何非二次幂纹理并且没有摆脱这个问题之后,我开始认为他可能实际上是指具有匹配的纹理宽度和高度?

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

无论如何,有人对此有任何想法吗?我们非常接近发布一个标题,这个问题正在威胁到进度。

4

1 回答 1

1

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

于 2013-01-17T11:35:59.700 回答