Our board is based on SabreSD(i.MX6Q), using Android JB4.3_1.1.0(Updated to 1.1.1 recently).
We use the GPU(gc2000) inside i.MX6Q to do some image processing, mostly making use of the fragement shader with glsl. Everything was okay when it started. But when the number of rows came to a certain level(maybe 200 or less), the program crashed.
After I updated Android JB4.3 from 1.1.0 to 1.1.1, some of our programs that used to crash work, while the others(with more rows) still crash.
So I wonder to know if there is limit on the number of lines of the fragement shader program?
backtrace when program crashed,
It looks like the program crashed when libGAL.so trying to Optimize the Shader code in gcOptimizeShader.
Build fingerprint: 'Freescale/sabresd_6dq/sabresd_6dq:4.3/1.1.1-rc2/20141017:eng/dev-keys'
Revision: '405522'
pid: 6118, tid: 6131, name: Thread-201 >>> com.ljgabc.clearview <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000014
r0 0000000d r1 00000000 r2 647dc490 r3 647e59f0
r4 647dc4e0 r5 647892c8 r6 647e48c0 r7 00000000
r8 64798d00 r9 00000000 sl 00000000 fp 00000007
ip 00000006 sp 698029e0 lr 644828e9 pc 6448360a cpsr 800f0030
d0 0000000000000000 d1 0000000000000000
d2 0000000000000000 d3 0000000000000000
d4 000000003f800000 d5 3f80000000000000
d6 0000000400000000 d7 4013333333333333
d8 0000000000000000 d9 0000000000000000
d10 0000000000000000 d11 0000000000000000
d12 0000000000000000 d13 0000000000000000
d14 0000000000000000 d15 0000000000000000
d16 00000000005f79e8 d17 0000000000004008
d18 4010000000000000 d19 4241c37937e08000
d20 3fc554e7eb0eb47c d21 bf66c0c55ca9076a
d22 bfb1be5a93a83e1d d23 3f50000000000000
d24 3f62cda65e663694 d25 bf62cda764a98eab
d26 bfbaf8e8210a415c d27 4000000000000000
d28 40008df2d49d41f1 d29 3fb0f4a31edab38b
d30 3ff0000000000000 d31 3f4de16b9c24a98f
scr 80000010
backtrace:
#00 pc 0007d60a /system/lib/libGAL.so
#01 pc 0007eccf /system/lib/libGAL.so
#02 pc 0007f5ab /system/lib/libGAL.so
#03 pc 00079a27 /system/lib/libGAL.so (gcOptimizeShader+94)
#04 pc 0007587d /system/lib/libGAL.so (gcLinkShaders+84)
#05 pc 0000b9cd /system/lib/egl/libGLESv2_VIVANTE.so
#06 pc 0001712b /system/lib/egl/libGLESv2_VIVANTE.so (glLinkProgram+346)
#07 pc 00006ecb /data/app-lib/com.ljgabc.clearview-2/libclearview.so (OpenGLClearView::CreateProgram(unsigned int&)+98)
#08 pc 00007291 /data/app-lib/com.ljgabc.clearview-2/libclearview.so (OpenGLClearView::Create()+88)
#09 pc 00006a03 /data/app-lib/com.ljgabc.clearview-2/libclearview.so (Java_com_ljgabc_clearview_JNIInterface_setup+42)
#10 pc 0001dc4c /system/lib/libdvm.so (dvmPlatformInvoke+112)
#11 pc 0004decf /system/lib/libdvm.so (dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+398)
#12 pc 000386c9 /system/lib/libdvm.so (dvmCheckCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*)+8)
#13 pc 0004f8bd /system/lib/libdvm.so (dvmResolveNativeMethod(unsigned int const*, JValue*, Method const*, Thread*)+184)
#14 pc 00027060 /system/lib/libdvm.so
#15 pc 0002b5ec /system/lib/libdvm.so (dvmInterpret(Thread*, Method const*, JValue*)+184)
#16 pc 0005ff21 /system/lib/libdvm.so (dvmCallMethodV(Thread*, Method const*, Object*, bool, JValue*, std::__va_list)+292)
#17 pc 0005ff4b /system/lib/libdvm.so (dvmCallMethod(Thread*, Method const*, Object*, JValue*, ...)+20)
#18 pc 00054ccb /system/lib/libdvm.so
#19 pc 0000ca78 /system/lib/libc.so (__thread_entry+72)
#20 pc 0000cbf4 /system/lib/libc.so (pthread_create+208)
Hi Gang
had you tried to increase gpumem kernel boot parameter?
~igor
Hi Gang
had you tried to increase vmalloc and work with
other parameters, such as
ldo_active=off/on, enable_wait_mode=off
~igor