Сбой OpenGL на Nexus5X
Мое приложение использует Android Camera API (старый) и GLSurfaceView.
Он работает на 90% устройств (на самом деле я тестировал его на 100 различных моделях!!!), но он падает на Nexus5X и Nexus6P.
Я вижу следующую ошибку на logcat:
W/Adreno-ES20: <core_glEGLImageTargetTexture2DOES:4550>: GL_INVALID_OPERATION
Когда я отправляю отчет о сбое Nexus5X в Google Play, вот что я вижу:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
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)
Сама авария происходит на glFinish();
(Мне нужно поместить половину моего проекта здесь, чтобы дать больше деталей).
Кто-нибудь может подсказать, где проблема или как я могу ее исправить?