Header Ads

Fine tune your graphic apps with the Adreno™ Profiler for Xperia™

Sony Ericsson’s latest Xperia™ smartphones, such as Xperia™ PLAY, Xperia™ arc, and Xperia™ neo, support Adreno™ Profiler for Xperia™, a tool to help developers optimise their use of the Adreno 205 graphics processor. Using the Adreno™ Profiler for Xperia™, you can fine tune your code for optimal graphics performance.
This article gives an overview of the Adreno™ Profiler for Xperia™ and identifies some of its key features. For simplicity, the tool will be referred to as the Profiler in the remainder of the article.

At the heart of Sony Ericsson’s latest Xperia™ smartphone is Qualcomm’s powerful Snapdragon chipset which incorporates the Scorpion 1 GHz MSM8255 processor and the Adreno™ 205 graphics processor. The Adreno 205 is an embedded graphics processing unit (GPU) that supports a complete range of 2D and 3D graphics, including hardware-level support for OpenGL ES 1.1/2.0, EGL 1.3, and OpenVG™ 1.1. With features such as enhanced shader performance and support for streaming textures, the Adreno 205 enables the kind of sophisticated graphics that gamers enjoy and have come to expect in leading-edge games.
The Adreno™ Profiler for Xperia™
The Profiler is a tool that you as a developer can use to profile and tune a mobile graphics application. The tool tracks the performance of your graphics code as it runs in an Xperia™ device such as the Xperia™ PLAY. It provides in-depth analysis of your code so that you can identify performance bottlenecks and fix them as appropriate.
The Profiler, which runs in a PC under Microsoft® Windows® XP, connects to the Xperia™ PLAY through a USB connection. As your app runs, the Profiler displays performance data captured from the Xperia™ device. The tool offers two display modes: grapher and scrubber. In grapher mode, the Profiler displays graphs of realtime metrics streamed from the device. You can direct the tool to display graphs of specific metrics such as frame rate (FPS), GPU usage, and CPU statistics.

An Adreno™ Profiler for Xperia™ display in grapher mode.
In scrubber mode, you can display a frame captured from the running app as well as a call trace window that shows all the OpenGL ES 1.0/1.1/2.0 render calls (glDraw* and glClear) made by the app during the captured frame. For OpenGL ES 2.0 calls, the call trace window also shows performance metrics for each render call.

A call trace window showing performance metrics.
The horisontal color bars in the window represent the relative performance cost of the render call. Red represents the highest cost, green the lowest. This gives you a way of visualising which render calls are the most expensive.
Some of the other important data that the Profiler displays are:
Comments that identify potential performance problems.
Frame statistics such as the number of API calls, redundant calls, and query calls made for the captured frame. Frame statistics that may adversely affect performance are highlighted in red.
Specific metrics for a render call. You can choose to display a wide variety of granular metrics for a render call, such as the GPU clock cycles elapsed or the average number of transformed vertices for each primitive.
Shader statistics, such as the number of general purpose registers used and the number of ALU operations executed.
In addition to displaying performance-related data, the Profiler allows you to experiment with various settings. For example, you can override various OpenGL context parameters and view their impact on performance. You can also edit shaders. When you edit a specific shader, it is automatically recompiled and relinked. The Profiler then displays metrics for the updated shader, including predicted cycle counts and GPR requirements.
The Profiler gives you an easy way to profile your graphic applications in Xperia™ devices such as Xperia™ PLAY. Through the in-depth data and visualizations that the Profiler provides, you can determine where the performance bottlenecks are in your graphic application. And because the tool enables you to experiment, you can determine whether a change fixes the problem or whether, in fact, the problem is worth fixing.

No comments:

Powered by Blogger.