Introduction
Streamline is a great tool to work out where the bottleneck is for your application. It should be your first pass tool in finding out whether you are vertex, fragment, CPU or bandwidth bound. Up until now, for this tool to work you needed to have a rooted a device with Perf enabled in your kernel. As of DS-5 V5.27 this is no longer the case.
Figure 1: Overview for Streamline
Streamline can now run from a device in any state and get meaningful data out of it. Obviously, the more information in the system Streamline has access to, the more data it can provide the user with. Below is a list of different states of a system along with the information Streamline can provide in each case.
Figure 2: Streamline Capture Modes
Process
To use Streamline in Non-root mode for Android you need to install the gator application on the device. This can be found in the android folder in your installation. To install you can use the following command
adb install -r android/gator-application.apk
Once the application is installed you just need to run it and toggle on the gator. Gator will then scan the device and give you some extra information about data it can and can't get off the device in non-root mode.
You then need to connect the device Streamline. Pressing the eye button in the Streamline tool will help here as it will list all the devices Streamline can connect to. Your device should be listed select it.
Now you can just click the counter configuration to select your counters.
New Counters
Figure 3: List of Non-root Counters
There is a completely new section of counters available to you when using non-root mode. They fall into a few sections:
All of these counters are generated from the proc filesystem. So, you can find more information about any counter from the man page entry for the appropriate proc filesystem.
Once you have selected your counters you start your trace as normal and a trace will be generated.
Summary
The barriers have well and truly been lifted on this tool. You can get performance data out of any Android or Linux based target no matter if you are rooted or non-rooted. Allowing many more users to experience and benefit from the power associated with Streamline. You should use Streamline as your first pass triage tool. Working out whether you are CPU bound, vertex bound, fragment bound or bandwidth bound. If you are fragment or vertex bound you should move on to using the Mali Graphics Debugger to help you optimize further.
To find out more about Streamline please visit https://developer.arm.com/products/software-development-tools/ds-5-development-studio/streamline