[3.8.2] Android Crash GLES3GPUFramebuffer

We have a quite downloaded game (more than 50 milion download) which has some crashes at the moment but we cannot find a way to fix it.
We are not able to remproduce it and the crash is apparently only on armv7.

*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
pid: 0, tid: 19997 >>> com.globalfun.tj2015.google <<<

backtrace:
  #00  pc 0x0000000000219cfe  /data/app/com.globalfun.tj2015.google-h4-1qPvpvFTUxyrfRoM3aA==/split_config.armeabi_v7a.apk!libcocos.so (cc::gfx::cmdFuncGLES3CreateFramebuffer(cc::gfx::GLES3Device*, cc::gfx::GLES3GPUFramebuffer*)+16384) (BuildId: d0170189e42e1d28852f04498a18d4376e64ff82)
  #01  pc 0x000000000021d5cf  /data/app/com.globalfun.tj2015.google-h4-1qPvpvFTUxyrfRoM3aA==/split_config.armeabi_v7a.apk!libcocos.so (cc::gfx::GLES3GPUFramebufferHub::update(cc::gfx::GLES3GPUTexture*)+16384) (BuildId: d0170189e42e1d28852f04498a18d4376e64ff82)
  #02  pc 0x00000000001361b5  /data/app/com.globalfun.tj2015.google-h4-1qPvpvFTUxyrfRoM3aA==/split_config.armeabi_v7a.apk!libcocos.so (cc::gfx::GLES3Texture::doResize(unsigned int, unsigned int, unsigned int)+16384) (BuildId: d0170189e42e1d28852f04498a18d4376e64ff82)
  #03  pc 0x00000000000c8323  /data/app/com.globalfun.tj2015.google-h4-1qPvpvFTUxyrfRoM3aA==/split_config.armeabi_v7a.apk!libcocos.so (cc::gfx::Texture::resize(unsigned int, unsigned int)+16384) (BuildId: d0170189e42e1d28852f04498a18d4376e64ff82)
  #04  pc 0x0000000000135b75  /data/app/com.globalfun.tj2015.google-h4-1qPvpvFTUxyrfRoM3aA==/split_config.armeabi_v7a.apk!libcocos.so (cc::gfx::GLES3Swapchain::doResize(unsigned int, unsigned int, cc::gfx::SurfaceTransform)+16384) (BuildId: d0170189e42e1d28852f04498a18d4376e64ff82)
  #05  pc 0x00000000001a9d8d  /data/app/com.globalfun.tj2015.google-h4-1qPvpvFTUxyrfRoM3aA==/split_config.armeabi_v7a.apk!libcocos.so (cc::MessageQueue::consumerThreadLoop()+16384) (BuildId: d0170189e42e1d28852f04498a18d4376e64ff82)
  #06  pc 0x00000000001ab05f  /data/app/com.globalfun.tj2015.google-h4-1qPvpvFTUxyrfRoM3aA==/split_config.armeabi_v7a.apk!libcocos.so (void* std::__ndk1::__thread_proxy<std::__ndk1::tuple<std::__ndk1::unique_ptr<std::__ndk1::__thread_struct, std::__ndk1::default_delete<std::__ndk1::__thread_struct>>, void (cc::MessageQueue::*)() noexcept, cc::MessageQueue*>>(void*)+16384) (BuildId: d0170189e42e1d28852f04498a18d4376e64ff82)
  #07  pc 0x00000000000a6293  /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+20)
  #08  pc 0x0000000000060803  /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+30)

We did try to release armv7 with GLES2 only but we got similar issue:

pid: 0, tid: 6433 >>> com.globalfun.tj2015.google <<<

backtrace:
  #00  pc 0x00000000002059ac  /data/app/~~BQauNjAR8UduKAEfCfYn3Q==/com.globalfun.tj2015.google-3eUrvV7XgHHOIrBKUT7KOw==/split_config.armeabi_v7a.apk!libcocos.so (cc::gfx::cmdFuncGLES2CreateFramebuffer(cc::gfx::GLES2Device*, cc::gfx::GLES2GPUFramebuffer*)+4096) (BuildId: 910ceecfc3e2b783444ead66a485ce14854efa2f)
  #01  pc 0x0000000000209bff  /data/app/~~BQauNjAR8UduKAEfCfYn3Q==/com.globalfun.tj2015.google-3eUrvV7XgHHOIrBKUT7KOw==/split_config.armeabi_v7a.apk!libcocos.so (cc::gfx::GLES2GPUFramebufferHub::update(cc::gfx::GLES2GPUTexture*)+4096) (BuildId: 910ceecfc3e2b783444ead66a485ce14854efa2f)
  #02  pc 0x000000000012c6a7  /data/app/~~BQauNjAR8UduKAEfCfYn3Q==/com.globalfun.tj2015.google-3eUrvV7XgHHOIrBKUT7KOw==/split_config.armeabi_v7a.apk!libcocos.so (cc::gfx::GLES2Texture::doResize(unsigned int, unsigned int, unsigned int)+4096) (BuildId: 910ceecfc3e2b783444ead66a485ce14854efa2f)
  #03  pc 0x00000000000c7903  /data/app/~~BQauNjAR8UduKAEfCfYn3Q==/com.globalfun.tj2015.google-3eUrvV7XgHHOIrBKUT7KOw==/split_config.armeabi_v7a.apk!libcocos.so (cc::gfx::Texture::resize(unsigned int, unsigned int)+4096) (BuildId: 910ceecfc3e2b783444ead66a485ce14854efa2f)
  #04  pc 0x000000000012c261  /data/app/~~BQauNjAR8UduKAEfCfYn3Q==/com.globalfun.tj2015.google-3eUrvV7XgHHOIrBKUT7KOw==/split_config.armeabi_v7a.apk!libcocos.so (cc::gfx::GLES2Swapchain::doResize(unsigned int, unsigned int, cc::gfx::SurfaceTransform)+4096) (BuildId: 910ceecfc3e2b783444ead66a485ce14854efa2f)
  #05  pc 0x00000000001a016d  /data/app/~~BQauNjAR8UduKAEfCfYn3Q==/com.globalfun.tj2015.google-3eUrvV7XgHHOIrBKUT7KOw==/split_config.armeabi_v7a.apk!libcocos.so (cc::MessageQueue::consumerThreadLoop()+4096) (BuildId: 910ceecfc3e2b783444ead66a485ce14854efa2f)
  #06  pc 0x00000000001a143f  /data/app/~~BQauNjAR8UduKAEfCfYn3Q==/com.globalfun.tj2015.google-3eUrvV7XgHHOIrBKUT7KOw==/split_config.armeabi_v7a.apk!libcocos.so (void* std::__ndk1::__thread_proxy<std::__ndk1::tuple<std::__ndk1::unique_ptr<std::__ndk1::__thread_struct, std::__ndk1::default_delete<std::__ndk1::__thread_struct>>, void (cc::MessageQueue::*)() noexcept, cc::MessageQueue*>>(void*)+4096) (BuildId: 910ceecfc3e2b783444ead66a485ce14854efa2f)
  #07  pc 0x00000000000aaf93  /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+40)
  #08  pc 0x0000000000064203  /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+30)

This is a quite important crash which is affecting our performance, is there a way to fix this?

We also see similar issues for our game, can you share link to your game?

Sure:

1 Like

May be your atlas texture size is too large. Try check your atlas size or config of dynamic atlas

Can i ask other question ? Can you capture TS crash besides native crash ? Do you use Firebase ?

Sorry I was on holiday!
Our atlases are max 2048x2048 (some of them), other are smaller.
Autoatlas is setted to 1024x1024.

Unfortunately I cannot reproduce the crash in any way.
I just get the log on google play developer console.

There are no other (major) crashes beside that.
We do use Firebase as analytics.

Yes just want to ask if in general, how can you catch Typescript crash on Firebase. My Firebase setup only catches native crash, not scripting crash within typescript.

It does not catch typescript bug to me too, I don’t there is actually a way to get that.