Use Streamline to Optimize Applications for Mali GPUs

Overview Midgard Optimization Utgard Optimization Further Reading


Arm DS Streamline can form a useful part of your workflow when optimizing applications for Mali Midgard and Utgard based GPUs. Streamline allows you to see what API calls are being made, how many times API functions are called and how much time is spent on API functions.

This guide is intended to give you a selection of common issues and bottlenecks which can be found using the Streamline. In turn, these should help you diagnose areas of your code or texture assets that can be improved. For more comprehensive information, refer to the  Mali Developer OpenGL ES Application Optimization Guide.


Also provided are rules-of-thumb measurements which give an idea about whether a counter value of Streamline is likely to indicate a performance issue in your application.

However, it’s also important to have an understanding of the specifications and limits of the GPU itself, so that you can begin to create your own tests and rules. You can refer to more details at Mali GPUs.

When do I need to use Streamline?

Streamline gives a complete picture of system performance and is very useful for telling you where the problem is. However, to find out what is causing that problem, you need to use tools such as the Mali Graphics Debugger

Setting up Streamline

Streamline requires that you have root access to your device so that you can install gator (the daemon that Streamline uses to collect system information) and insert the kernel module. For Android devices, you will also need Android SDK and NDK.

We have a selection of blogs and presentations for Streamline setup on specific devices: