Hey!
I'm trying to debug an opencl application on my Odroid Xu3 (With the Mali-T628 MP6), and when i try to use MGD, it completely crashes after the first opencl call giving me this error that the passthroughglesapi could not locate the handler function, but I'm not using any OpenGL in my project, just openCL... Does anyone have a clue on how I can solve this?
Thanks in advance,
Rui
(the error is as follows:
1443635755285: mgd_interceptor[7066]: [7066]:INFO: DuplicateLibraryDetector: First interceptor loaded
1443635755286: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughClApi: Could not locate handler to function `clSetCommandQueueProperty'
1443635755297: mgd_daemon[7058]: [7060]:INFO: InterceptorConnection: Initializing interceptor connection
1443635755298: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glActiveShaderProgram' in SO or in eglGetProcAddress
1443635755298: mgd_daemon[7058]: [7060]:INFO: Daemon: onInterceptorConnected
1443635755298: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glBindImageTexture' in SO or in eglGetProcAddress
1443635755298: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glBindProgramPipeline' in SO or in eglGetProcAddress
1443635755298: mgd_daemon[7058]: [7068]:INFO: InterceptorConnection: Interceptor connection waiting
1443635755298: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glBindVertexBuffer' in SO or in eglGetProcAddress
1443635755299: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glBlendBarrier' in SO or in eglGetProcAddress
1443635755299: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glBlendEquationSeparatei' in SO or in eglGetProcAddress
1443635755299: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glBlendEquationi' in SO or in eglGetProcAddress
1443635755299: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glBlendFuncSeparatei' in SO or in eglGetProcAddress
1443635755299: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glBlendFunci' in SO or in eglGetProcAddress
1443635755299: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glColorMaski' in SO or in eglGetProcAddress
1443635755299: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glCopyImageSubData' in SO or in eglGetProcAddress
1443635755300: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glCreateShaderProgramv' in SO or in eglGetProcAddress
1443635755300: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glDeleteProgramPipelines' in SO or in eglGetProcAddress
1443635755300: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glDisablei' in SO or in eglGetProcAddress
1443635755300: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glDispatchCompute' in SO or in eglGetProcAddress
1443635755300: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glDispatchComputeIndirect' in SO or in eglGetProcAddress
1443635755300: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glDrawArraysIndirect' in SO or in eglGetProcAddress
1443635755300: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glDrawElementsBaseVertex' in SO or in eglGetProcAddress
1443635755301: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glDrawElementsIndirect' in SO or in eglGetProcAddress
1443635755301: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glDrawElementsInstancedBaseVertex' in SO or in eglGetProcAddress
1443635755301: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glDrawRangeElementsBaseVertex' in SO or in eglGetProcAddress
1443635755301: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glEnablei' in SO or in eglGetProcAddress
1443635755301: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glFramebufferParameteri' in SO or in eglGetProcAddress
1443635755301: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glFramebufferTexture' in SO or in eglGetProcAddress
1443635755302: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGenProgramPipelines' in SO or in eglGetProcAddress
1443635755302: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGetBooleani_v' in SO or in eglGetProcAddress
1443635755302: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGetFramebufferParameteriv' in SO or in eglGetProcAddress
1443635755302: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGetGraphicsResetStatus' in SO or in eglGetProcAddress
1443635755302: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGetMultisamplefv' in SO or in eglGetProcAddress
1443635755303: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGetProgramInterfaceiv' in SO or in eglGetProcAddress
1443635755303: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGetProgramPipelineInfoLog' in SO or in eglGetProcAddress
1443635755303: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGetProgramPipelineiv' in SO or in eglGetProcAddress
1443635755303: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGetProgramResourceIndex' in SO or in eglGetProcAddress
1443635755303: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGetProgramResourceLocation' in SO or in eglGetProcAddress
1443635755303: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGetProgramResourceName' in SO or in eglGetProcAddress
1443635755303: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGetProgramResourceiv' in SO or in eglGetProcAddress
1443635755303: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGetSamplerParameterIiv' in SO or in eglGetProcAddress
1443635755304: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGetSamplerParameterIuiv' in SO or in eglGetProcAddress
1443635755304: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGetTexLevelParameterfv' in SO or in eglGetProcAddress
1443635755304: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGetTexLevelParameteriv' in SO or in eglGetProcAddress
1443635755304: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGetTexParameterIiv' in SO or in eglGetProcAddress
1443635755304: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGetTexParameterIuiv' in SO or in eglGetProcAddress
1443635755304: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGetnUniformfv' in SO or in eglGetProcAddress
1443635755304: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGetnUniformiv' in SO or in eglGetProcAddress
1443635755305: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glGetnUniformuiv' in SO or in eglGetProcAddress
1443635755305: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glIsEnabledi' in SO or in eglGetProcAddress
1443635755305: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glIsProgramPipeline' in SO or in eglGetProcAddress
1443635755305: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glMemoryBarrier' in SO or in eglGetProcAddress
1443635755305: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glMemoryBarrierByRegion' in SO or in eglGetProcAddress
1443635755305: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glMinSampleShading' in SO or in eglGetProcAddress
1443635755306: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glPatchParameteri' in SO or in eglGetProcAddress
1443635755306: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glPrimitiveBoundingBox' in SO or in eglGetProcAddress
1443635755306: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform1f' in SO or in eglGetProcAddress
1443635755306: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform1fv' in SO or in eglGetProcAddress
1443635755306: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform1i' in SO or in eglGetProcAddress
1443635755306: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform1iv' in SO or in eglGetProcAddress
1443635755306: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform1ui' in SO or in eglGetProcAddress
1443635755307: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform1uiv' in SO or in eglGetProcAddress
1443635755307: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform2f' in SO or in eglGetProcAddress
1443635755307: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform2fv' in SO or in eglGetProcAddress
1443635755307: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform2i' in SO or in eglGetProcAddress
1443635755307: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform2iv' in SO or in eglGetProcAddress
1443635755307: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform2ui' in SO or in eglGetProcAddress
1443635755307: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform2uiv' in SO or in eglGetProcAddress
1443635755308: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform3f' in SO or in eglGetProcAddress
1443635755308: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform3fv' in SO or in eglGetProcAddress
1443635755308: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform3i' in SO or in eglGetProcAddress
1443635755308: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform3iv' in SO or in eglGetProcAddress
1443635755308: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform3ui' in SO or in eglGetProcAddress
1443635755308: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform3uiv' in SO or in eglGetProcAddress
1443635755308: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform4f' in SO or in eglGetProcAddress
1443635755309: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform4fv' in SO or in eglGetProcAddress
1443635755309: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform4i' in SO or in eglGetProcAddress
1443635755309: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform4iv' in SO or in eglGetProcAddress
1443635755309: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform4ui' in SO or in eglGetProcAddress
1443635755309: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniform4uiv' in SO or in eglGetProcAddress
1443635755309: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniformMatrix2fv' in SO or in eglGetProcAddress
1443635755309: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniformMatrix2x3fv' in SO or in eglGetProcAddress
1443635755310: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniformMatrix2x4fv' in SO or in eglGetProcAddress
1443635755310: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniformMatrix3fv' in SO or in eglGetProcAddress
1443635755310: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniformMatrix3x2fv' in SO or in eglGetProcAddress
1443635755310: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniformMatrix3x4fv' in SO or in eglGetProcAddress
1443635755310: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniformMatrix4fv' in SO or in eglGetProcAddress
1443635755310: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniformMatrix4x2fv' in SO or in eglGetProcAddress
1443635755310: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glProgramUniformMatrix4x3fv' in SO or in eglGetProcAddress
1443635755310: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glReadnPixels' in SO or in eglGetProcAddress
1443635755311: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glSampleMaski' in SO or in eglGetProcAddress
1443635755311: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glSamplerParameterIiv' in SO or in eglGetProcAddress
1443635755311: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glSamplerParameterIuiv' in SO or in eglGetProcAddress
1443635755311: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glTexBuffer' in SO or in eglGetProcAddress
1443635755311: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glTexBufferRange' in SO or in eglGetProcAddress
1443635755311: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glTexParameterIiv' in SO or in eglGetProcAddress
1443635755312: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glTexParameterIuiv' in SO or in eglGetProcAddress
1443635755312: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glTexStorage2DMultisample' in SO or in eglGetProcAddress
1443635755312: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glTexStorage3DMultisample' in SO or in eglGetProcAddress
1443635755312: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glUseProgramStages' in SO or in eglGetProcAddress
1443635755312: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glValidateProgramPipeline' in SO or in eglGetProcAddress
1443635755312: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glVertexAttribBinding' in SO or in eglGetProcAddress
1443635755312: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glVertexAttribFormat' in SO or in eglGetProcAddress
1443635755313: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glVertexAttribIFormat' in SO or in eglGetProcAddress
1443635755313: mgd_interceptor[7066]: [7066]:DEBUG: PassThroughGlesApi: Could not locate handler to function `glVertexBindingDivisor' in SO or in eglGetProcAddress
1443635755313: mgd_interceptor[7066]: [7066]:INFO: MarshallerBase: Connecting to daemon. Sending header...
1443635755314: mgd_daemon[7058]: [7068]:INFO: InterceptorConnection: Accepted version from interceptor: D002
1443635755314: mgd_interceptor[7066]: [7066]:INFO: Interceptor: Interceptor loaded for 7066: ./x265
1443635755314: mgd_interceptor[7066]: [7066]:INFO: Interceptor: Activating tracing
1443635755315: mgd_interceptor[7066]: [7066]:INFO: Interceptor: TRACING: On
Error -1250258583 executing clGetPlatformIDs(0, NULL, &numPlatforms) on /home/ruialbuquerque/tese/x265/source/common/maliOpenCL.cpp:56 (invalid/unknown error code)
1443635755315: mgd_interceptor[7066]: [7066]:INFO: Interceptor: TRACING: Off
1443635756315: mgd_daemon[7058]: [7068]:DEBUG: SocketLinux: Unable to poll for read bytes from socket: Received error event: 11
1443635756315: mgd_daemon[7058]: [7068]:ERROR: SocketMessagePort: Unable to poll for read bytes from socket: errno = 0
1443635756315: mgd_daemon[7058]: [7068]:INFO: Daemon: onInterceptorDisconnected
1443635756315: mgd_daemon[7058]: [7068]:INFO: Daemon: Sending process ended message to host for pid: 7066
1443635756316: mgd_daemon[7058]: [7068]:INFO: InterceptorConnection: Interceptor connection closed
)
Hi Rui,
Thanks for the info. Regarding ''clSetCommandQueueProperty', after a bit more digging that function has been deprecated and removed in later OpenCL versions so you can safely ignore that debug message.
What we think might be happening is that MGD is loading the incorrect version of libOpenCL. This might happen for example if you've set an rpath at link time to a specific OpenCL library, MGD doesn't know about that and tries to get libOpenCL just with a simple dlopen.
To try and fix it, if you can work out the version of libOpenCL.so that you app uses when running without MGD (either with ldd or strace). Once you have that, you can pass that location to MGD using the MGD_LIBRARY_PATH environment variable.
So LD_LIBRARY_PATH should point to the directory with MGD in it and MGD_LIBRARY_PATH should point to the directory with the libOpenCL.so your app wants in it.
If that fails or if you want more help, please ask.
The outputs of ldd and strace with and without loading MGD would be useful for us.
Thanks,
Jon.