Android 冻结在 OpenGL|ES 中(CPU 可能被固定,重试)

Android freeze in OpenGL|ES (CPU may be pegged. trying again.)

本文关键字:重试 CPU OpenGL 冻结 ES Android      更新时间:2023-10-16

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

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

我已经在网上看到了关于这个问题的讨论,但我发现唯一有效的解决方案是在eglSwapBuffers后打电话给glFinish。然而,这种解决方案导致帧率下降了 10-20,这是远远不能接受的。

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

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

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

无论如何,有人对此有任何想法吗?我们非常接近发布游戏,这个问题正在威胁到时间表。

我也遇到了这个问题,我曾经重新安装过该应用程序,它对我有用。如果没有,则只需重新启动设备即可。此问题与OpenGLES的内部问题有关。您可以参考此链接: 安卓"cpu 可能被钉住"错误