Hi there,
Ubuntu Touch is an operating system for mobile devices. It is built on an Android kernel in order to use the closed-source graphics drivers.
It has been released on a Bq Aquaris, which has a Mali chip inside. I am interested in enabling this with the Mali Graphics Debugger tool.
I've managed to get it working (most reliably with an older version of MGD - 2.1.0, am having stability issues on the device when profiling with 3.2.0) but I have hit one minor but irritating issue: the Interceptor is unable to distinguish applications, so I cannot selectively profile just 1 application (say) by using processlist.cfg.
When I say "distinguish applications" I mean this is the output of the interceptor (using adb shell /system/bin/logcat | grep Interceptor):
I/mgd_interceptor(10605): (10608): Interceptor: TRACING: On
I/mgd_interceptor(10605): (10613): Interceptor: Capture mode set to 0
I/mgd_interceptor(10643): (10643): Interceptor: Interceptor loaded for 10643:
I/mgd_interceptor(10643): (10643): Interceptor: Activating tracing
Note that line 3 should have an android application name after the process id - but as Ubuntu touch is not using the android runtime/userland, it seems unable to identify the application name, and so there's no naming system I can use which is compatible with processlist.cfg.
So I get to my feature request: if the interceptor is unable to get an android application name for the traced process, can it fall-back to using the binary process name?
Many thanks for the excellent tool guys!
Kind regards
-Gerry Boland
I think we had a bug on one of the 2.x series which meant that the processlist.cfg filtering doesn't work. That should be fixed in the newer version of the tool, if you manage to solve the platform stability problems.
As a workaround for the 2.x series, if you start the mgddaemon process after the OS level applications have started, but before you start the application you want to trace, then it should only trace your application (i.e. the interceptor should just be passthrough if the daemon is not running when the process starts).
HTH, Pete
Hi Peter,
thanks for the quick reply. processlist.cfg being broken in 2.x series explains what I'm seeing also (i.e. all process started after the interceptor appear in the MGD profiler).
I've hit a wall with the 3.x series unfortunately. When I try to trace an application, the application hangs after issuing a few GL calls, then crashes. I see this error in logcat repeated hundreds of times:
W/MALI ( 4234): _gles_set_error:82: [WARNING]Mali GLES errorcode: 500
Here is the entire logcat if it's useful: Ubuntu Pastebin and the trace: http://people.canonical.com/~gerboland/mgd3.2-dialer-app-incomplete.mgd
But I presume it's highly dependent on the driver the device has (it's android 4.4 based, but I know vendors can often customise the driver themselves).
I actually managed to figure out the workaround you proposed, and so I can get by with 2.x series for the moment. Just a shame to be missing out on the 3.x improvements.
Many thanks
-Gerry