My app uses Android Camera API (the old one) and GLSurfaceView.
It works on 90% of the devices (I actually tested it on a 100 different models!!!) but it crash on Nexus5X and Nexus6P.
I can see the following error on logcat:
W/Adreno-ES20: <core_glEGLImageTargetTexture2DOES:4550>: GL_INVALID_OPERATION
When I send the Nexus5X crash report to google play, this is what I see:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'google/bullhead/bullhead:6.0.1/MMB29P/2473553:user/release-keys'
Revision: 'rev_1.0'
ABI: 'arm'
pid: 6443, tid: 6530, name: GLThread 68 >>> com.my.app <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x3b8
r0 00000010 r1 00000000 r2 00000000 r3 00000002
r4 00001fbc r5 80000000 r6 00000010 r7 00000000
r8 00000000 r9 e11df2e0 sl 00000001 fp e11dd000
ip de984270 sp e1844e3c lr e9d4dbbd pc e9dd6cf4 cpsr 80070030
backtrace:
#00 pc 001b1cf4 /vendor/lib/egl/libGLESv2_adreno.so (EsxGfxMem::UpdateTimestampBucketId(EsxContext const*, unsigned int, EsxAccessType)+27)
#01 pc 00128bb9 /vendor/lib/egl/libGLESv2_adreno.so (EsxContext::BucketRenderingCmds()+592)
#02 pc 000dc2d9 /vendor/lib/egl/libGLESv2_adreno.so (EsxContext::BucketClearCmds(unsigned int*)+72)
#03 pc 000dff89 /vendor/lib/egl/libGLESv2_adreno.so (EsxContext::ClearDirectly(EsxBltFill*, EsxColorClearData*, EsxBltDepthFill*, EsxBltDepthFill*)+3596)
#04 pc 000e034d /vendor/lib/egl/libGLESv2_adreno.so (EsxContext::ClearInternal(EsxBltFill*, EsxColorClearData*, EsxBltDepthFill*, EsxBltDepthFill*)+80)
#05 pc 000e05ab /vendor/lib/egl/libGLESv2_adreno.so (EsxContext::Clear(unsigned int, unsigned int, unsigned int, EsxClearValues*)+446)
#06 pc 000c7f83 /vendor/lib/egl/libGLESv2_adreno.so (EsxContext::GlClear(unsigned int)+58)
#07 pc 72104d39 /data/dalvik-cache/arm/system@framework@boot.oat (offset 0x1ec9000)
The crash itself happens on glFinish();
(I'll need to put half my project here to give more details).
Can anyone give me a clue where is the problem or how can I fix it?