android - OpenGL 错误 0x0501 和 0x0505 cocos2d-x, samsung quattro Gl_out_of_memory

标签 android opengl-es-2.0 cocos2d-x-2.x

我们的 cocos2dx 游戏大量使用批处理节点,但在某些设备(如三星 quattro 和 grand)中,在玩了几次游戏后,一些 SpriteSheets 变黑了。最终所有的 Sprite 表都变黑了。我们正在使用 CCTextureAtlas 来加载我们的批处理节点。

以下是我们认为可能产生问题的日志

04-10 08:43:54.171: D/cocos2d-x 调试信息 (3592):/Users/jitenagarwal/cocos2d-x-2.2.6/projects/pabAndroid/proj.android/.. 中的 OpenGL 错误 0x0505/../../cocos2dx/sprite_nodes/CCSprite.cpp 绘制663 * 04-10 08:48:38.541: D/cocos2d-x 调试信息 (3592):/Users/jitenagarwal/cocos2d-x-2.2.6/projects/pabAndroid/proj.android/../.. 中的 OpenGL 错误 0x0505/../cocos2dx/textures/CCTextureAtlas.cpp mapBuffers 306

我们已经尝试了以下事情,但没有任何帮助

  1. 我们减小了 png 的大小。

  2. 我们在 CCSpriteBatchnode.h 中更改了 kDefaultSpriteBatchCapacity 128

  3. https://developer.qualcomm.com/forum/qdevnet-forums/mobile-gaming-graphics-optimization-adreno/26579

  4. http://discuss.cocos2d-x.org/t/black-pictures-after-a-playing-time/7069/119?page=6

  5. http://www.cocos2d-x.org/wiki/Max

问题只发生在某些设备上,例如 Samsung grand quattro。

发生这种情况时的设备日志 04-10 08:53:19.651: W/Adreno200-GSL(6804): : ioctl 代码 0xc00c092f (IOCTL_KGSL_GPMEM_ALLOC) 失败:errno 12 内存不足

最佳答案

你们不需要减小 png 的大小。试试这个,它可能会帮助你..

  1. 仅加载当前需要的 Sprite 表。
  2. 卸载所有未使用的纹理和不再使用的 Sprite 表。
  3. 确保 sprite-sheet 纹理文件没有损坏。

关于android - OpenGL 错误 0x0501 和 0x0505 cocos2d-x, samsung quattro Gl_out_of_memory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29561890/

相关文章:

android - PowerVR-SGX500 系列异常行为

c++ - 如何从ExitGames::Common::Object& eventContent获取事件数据?

android - 滚动后未正确应用聊天 2 不同持有人的 FirebaseUI Recycler View

android - 将 Scala 与 Gradle 一起用于 Android 项目

android - 部署 Release模式 apk 首次安装 - 必须提供 RealmMigration

java - 如何为新项目添加 RecyclerView 幻灯片动画

android - 如何在 EGL 或 GLSurfaceView 中设置 OpenGL 版本?

iphone - 支持 OpenGL ES2.0 的最低 iOS 版本是多少?

c++ - 按下释放按钮时停止当前动画

android - 在android中构建cocos2dx项目