华为手机有一个报错,导致非常卡顿

如题。公司有一个华为 P20 Pro。然后我的游戏分为两个场景,一个是startScene(界面类似于皇室战争那种左右滑动的UI)。 GameScene是主游戏场景。然后进入游戏后在startScene卡的只有2帧。但是进入有gameScene之后非常流畅。然后看了一下android-studio的Log。在startScene里玩命的刷opengl的bug。如下

E/jswrapper: [ERROR] (/Users/xiayangqun/Documents/CompanyWorkSpace/youtongkeji/PlaneFire/build/native/frameworks/cocos2d-x/cocos/scripting/js-bindings/manual/jsb_opengl_manual.cpp, 4538): glDrawElements((GLenum)p[1], (GLsizei)p[2], (GLenum)p[3], (const GLvoid*)(intptr_t)p[4]); GL error 0x506: GL_INVALID_FRAMEBUFFER_OPERATION
E/: mali gles error info : 95

看起来是opgel的一个bug。可能对于华为的麒麟芯片有漏洞?

看上去是我们传递的参数有问题,我们调查一下看看能否重现

我在另外一个同事的华为mate20上也复现了同样的情况。应该是再将一个3D摄像机的内容渲染到一个精灵上的时候会引发opengl出错。

apk我私聊发给你,麻烦看一下哈。就是进入游戏第一个场景你在华为手机上看不到这个小人。

没关系,我们应该能重现

在vivo上也出现啦,没有小人

depth texture 的适配有点问题,已修复,急用可以参考这个 PR:
https://github.com/cocos-creator/cocos2d-x-lite/pull/2041

1赞