System Info
graphics: Mali-400MP, android version: 4.1.1, Mali Graphics Debugger: 2.0
when I try to setup the Mali Graphics Debugger on android device following the user guide.
the libGLES_mgd say it can't load the libGLES_mali.so (because this library isn't here, but libEGL_mali.so and the other two).
files in /system/lib/egl/ :
shell@android:/system/lib/egl # ls
egl.cfg
libEGL_mali.so
libGLES_android.so
libGLES_mgd.so
libGLESv1_CM_mali.so
libGLESv2_mali.so
but the mgd only try to load libGLES_mali.so (/vendor/lib/egl/ have been mapped to /system/lib/egl/):
I/libGLES_mgd(30489): libGLES_mgd is in a system folder
E/libGLES_mgd(30489): Failed to parse process mappings.
D/libEGL (30489): loaded /vendor/lib/egl/libGLES_mgd.so
I/mgd_interceptor(30489): Interceptor constructor called
I/mgd_interceptor(30489): Trying to connect to the daemon...
I/mgd_interceptor(30489): Connected to the daemon.
I/mgd_interceptor(30489): Sending header...
I/mgd_interceptor(30489): Header sent.
I/mgd_interceptor(30489): Reading process name for PID=30489
I/mgd_interceptor(30489): Process = ******
I/mgd_interceptor(30489):
I/mgd_interceptor(30489): Could not open /system/lib/egl/processlist.cfg, so tracing by default
I/mgd_interceptor(30489): Attempting to load libEGL at /vendor/lib/egl/libGLES_mali.so ...
E/mgd_interceptor(30489): Could not get handle to libEGL (dlerror=`Cannot load library: load_library[1093]: Library '/vendor/lib/egl/libGLES_mali.so' not found`).
W/mgd_interceptor(30489): Unable to locate library libEGL, no functions for this library will be intercepted
E/mgd_interceptor(30489): User called extension function eglGetProcAddress} which does not exist
D/NmgDebug(30489): 1419480704.00: NmgBreakPad.cpp: 281: Crash caught.
E/Launcher( 2083): launcher is onStop.............
any suggestion is appreciated
You will have a real GLES library somewhere on your device - this is normally called libGLES_mali.so, but it is possible for a system integrator to rename it to something libGLES_<foo>.so. I think you need to set up a symlink at /vendor/lib/egl/libGLES_mali.so which points to the real library.
> libEGL_mali.so and the other two
One possibility is that the device driver for your platform has not been built as a single library, but has three separate libraries - if this is the case I would suggest asking your platform provided for a monolithic driver build (added advantage is that it is normally faster too).
HTH, Pete
Hi guozhu
In this instance, it looks like the BSP on the device is built non-monolithic. As such, the actual driver is likely to be found here: /system/lib/libMali.so
MGD isnt looking there however, so you could, as pete suggested, make a symlink for MGD to correctly redirect
ln -s /system/lib/libMali.so /vendor/lib/egl/libGLES_mali.so
Hope it helps, I have raised this the the tools team, to see if this is expected behaviour.
Kind Regards,
Michael McGeagh
We have just released MGD v2.0.2 which we believe should resolve this issue (Mali Graphics Debugger - Mali Developer Center Mali Developer Center). Please give it a go and let us know.
MGD will now also look for libEGL.so in /system/lib/egl as well as /vendor/lib/egl. You will not need the symlinks mentioned above.
thank you and the two guys above, I use the latest MGD and it works