Hi,
I'm having trouble creating an OpenCL context from an OpenGL ES context on an Odroid XU3 running Android 4.4.4. The following code works fine on other non-ARM graphics hardware, but on the Mali chip the call to clCreateContextFromType fails with the error: "CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR (-1000)"
cl_context_properties contextProps[] = {
CL_CONTEXT_PLATFORM, cl_context_properties(m_platform),
CL_GL_CONTEXT_KHR, (cl_context_properties)eglGetCurrentContext(),
CL_EGL_DISPLAY_KHR, (cl_context_properties)eglGetCurrentDisplay(),
0
};
clCreateContextFromType(contextProps, CL_DEVICE_TYPE_GPU, 0, &err);
We have checked the m_platform variable and the value is the correct platform id. Are there any special/additional steps in order to create the context, or is OpenCL/OpenGL interop not fully supported at this time on Android?
Thanks,
-Alex
Hi Anthony,
I have pulled libGLES_mali.so off the device, placed it in the ndk lib directory and replaced -lOpenCL -lEGL -lGLESv2 with -lGLES_mali as Michael indicated. This works! The shared context is created without error and CL/GL interop looks to be working.
Thank you all for your help,
Alex