At the moment we are testing OpenCL programs on Adreno320 GPU. The OpenCL programs execute correctly, but when I do a OpenCL context cleanup, the device reboots. This only happens when a kernel is executed. I noticed this with the sample apps from the SDK too.
At clean up I see an error (W/Adreno200-GSL( 160): <gsl_ldd_control:226>: ioctl code 0xc0140910 (IOCTL_KGSL_RINGBUFFER_ISSUEIBCMDS) failed: errno 35). Then a error in the surface flinger, and the device reboots. The error log can be found below.
I tested 2 devices (see below):
LG Optimus : OpenCL driver version “build:CL2780072”
Nexus 4 (with driver update) OpenCL driver: “build:CL2961380”
So what is needed to run OpenCL on these devices. Is this a bug, or am I missing something ?
Are there other Android devices that can be used to start developing OpenCL code ?
I/OpenCL 1.1 Embedded Samples( 1748): Parsing option DEVICE = 'gpu'
I/OpenCL 1.1 Embedded Samples( 1748): Parsing option RUNTESTS = 'true'
I/OpenCL 1.1 DotProduct( 1748): OpenCL Platform: QUALCOMM
I/OpenCL 1.1 DotProduct( 1748): Selected device: GPU
I/OpenCL 1.1 DotProduct( 1748): OpenCL Device Name (0) : QUALCOMM Adreno(TM)
I/adreno-sdk-framework( 1748): Opened asset Media/Kernels/DotProduct.cl at 60ffaee8
I/adreno-sdk-framework( 1748): GetSize returned 962
I/ActivityManager( 523): Displayed com.qualcomm.DotProduct/android.app.NativeActivity: +342ms
I/OpenCL 1.1 DotProduct( 1748): Computed '10000' dot products in '0.002259' seconds.
I/OpenCL 1.1 DotProduct( 1748): RunTests: PASSED
W/Adreno200-GSL( 160): <gsl_ldd_control:226>: ioctl code 0xc0140910 (IOCTL_KGSL_RINGBUFFER_ISSUEIBCMDS) failed: errno 35 Resource deadlock would occur
W/Adreno200-ES20( 160): <glFlush:56>: GL_OUT_OF_MEMORY
W/Adreno200-GSL( 160): <gsl_ldd_control:226>: ioctl code 0xc0140910 (IOCTL_KGSL_RINGBUFFER_ISSUEIBCMDS) failed: errno 35 Resource deadlock would occur
W/Adreno200-EGL( 160): <eglSwapBuffers:3498>: EGL_CONTEXT_LOST
F/SurfaceFlinger( 160): eglSwapBuffers(0x1, 0x41760a78) failed with 0x0000300e
F/libc ( 160): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1), thread 228 (SurfaceFlinger)
I/DEBUG ( 158): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 158): Build fingerprint: 'google/occam/mako:4.2.2/JDQ39/573038:user/release-keys'
I/DEBUG ( 158): Revision: '11'
I/DEBUG ( 158): pid: 160, tid: 228, name: SurfaceFlinger >>> /system/bin/surfaceflinger <<<
I/DEBUG ( 158): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr deadbaad
I/DEBUG ( 158): r0 00000027 r1 deadbaad r2 401ad258 r3 00000000