We are happy to announce the release of Arm Mobile Studio 2021.1, the latest version of our tool suite for profiling Android applications and games. In this bumper issue, we will cover the new features and quality-of-life improvements in both the 2021.0 and 2021.1 releases.
One of the major improvements we have made in these releases is to the Performance Advisor workflow, in particular when used interactively alongside the Streamline profiler.
The first set of improvements is to the lwi_me.py helper script which installs the Performance Advisor layer driver and configures the connected device. For initial use, you can now run the script directly from the installation directory without any arguments, following the step-by-step on-screen menus to set up the session:
C:\Tools\Arm Mobile Studio 2021.0\performance_advisor\lwi\helpers>py -3 lwi_me.py
Refer to the getting started with Performance Advisor instructions for step-by-step instructions on how to run the script. Use the lwi_me.py script options section in the Performance Advisor User Guide for details of all the available command-line options.
Once the device is configured you can use the Android connection GUI in Streamline to connect to the device, select your counter template, and start the capture. One quality-of-life improvement we have made here is to substantially speed up the debuggable packages listing on the target device, so you will now spend less time hanging around on the connection screen.
The Performance Advisor layer driver has always had the ability to generate software counters for API-centric events, such as frame rate, render passes per frame, and draw calls per frame. These software counters can be visualized in Streamline, but their names are unpredictable because they include the address of the triggering rendering context. This means we have historically not been able to include them in the Mali counter visualization templates, which required an exact pattern match. The latest release of Streamline adds support for wildcard data series, which can dynamically pattern match to find the counters to present.
Wildcard series are now available as a standard feature in the Timeline view, allowing you to add them to your own data visualizations. In addition, they have been pre-integrated in to all of the Mali GPU templates to enable automatic visualization of key software counters from the Performance Advisor layer driver. If you are using the built-in counter templates for captures generated with the LWI layer driver, there is no need to do anything differently. You will get charts for these counters simply by selecting the right template for your device.
On the topic of Streamline software counters, this release adds support for a new fixed-point counter type to the convenience API. This allows counters to have fractional values, not just integers, which make some types of data easier to represent or representable with smaller error bars without integer rounding.
Last month saw us release a Mobile Studio package to provide a drop-in integration for developers using the Unity game engine. This package exposes C# bindings for the Streamline event annotation API, which can be used to embed more contextual information from the application into profile captures. The package is available on GitHub under an open-source license, and is compatible with Unity 2018.4 or newer.
Did you know: Applications can emit event annotations to identify interesting time regions in their application, which Performance Advisor can then use to provide per-region breakdown reports.
Unity recently published a great blog post describing how you can use the Unity profiler and frame debugger, along with Arm Mobile Studio tools, to analyze a Unity game. If you are new to profiling games built with Unity, this is a great place to start.
Towards the end of 2020, we had several bug reports from Android users trying to use the native software profiling features in Streamline, where the tool would fail to resolve symbols for the profiled APK. After some investigation we identified the problem. In some circumstances, Android will memmap native code libraries directly out of the APK so the profiler sees “app.apk + offset” rather than the more usual “lib.so + offset”. This was causing Streamline’s analyzer fail to associate the symbol information from “lib.so” with the data samples. We now support correctly decoding debug info for these directly mapped libraries, so Android 10 profiling should now be reliable once more.
Arm Mobile Studio should work on nearly all recent Android devices with a Mali GPU, but we maintain a public supported devices page containing the devices we have actually tested ourselves. For this release we have added the following devices to our selection:
Refer to the supported devices page for a full list of supported devices.
In parallel to the Mobile Studio releases, we have been continuing to work on the performance of the astcenc compressor for the ASTC texture format. Version 3.0 of the compressor was released at the start of June, and includes another 25-75% performance uplift, depending on compression settings, on top of the 25% uplift from the 2.5 release earlier in the year. The 2.5 release was the last release in the 2.x series, but a branch remains live to provide long-term support and bug fixes.
The Unity 2021.1 and 2021.2 releases have updated to use recent versions of the codec, bringing substantially faster texture import for your Unity projects. Source code and binaries for the standalone compressor can be found on the GitHub project page.
If you missed our recent webinar training series on Android graphics optimization, you can now watch them on-demand. These sessions cover some fundamentals of mobile GPUs, best practices for content, shaders and API usage, and a demonstration of Mobile Studio tools in action.
If you are new to profiling with Arm Mobile Studio, here is a new tutorial about using Streamline to find your performance problems, and techniques to avoid them.
If you are using Unreal Engine, here is a tutorial to help you integrate Mobile Studio with your projects.
Stay up to date with all our new tutorials, blogs, and other news here.
Arm Mobile Studio is free to use, try the latest release today.
[CTAToken URL = "https://developer.arm.com/tools-and-software/graphics-and-gaming/arm-mobile-studio/downloads" target="_blank" text="Download Arm Mobile Studio" class ="green"]