PowerVR Graphics SDK tools explained: Introducing PVRMonitor

Share on linkedin
Share on twitter
Share on facebook
Share on reddit
Share on digg
Share on email

This blog post is dedicated to PVRMonitor, our newest hardware profiling tool for Android devices. PVRMonitor displays real-time CPU and GPU performance data as bar graphs (where a low load is green and a high load is red) in a persistent overlay on top of all the other windows. This is done using Android’s Hardware Composition, allowing the graph to be rendered with a negligible performance impact.

PVRMonitor is ideal for the everyday testing and profiling as it will allow you to see performance regressions pretty quickly even when the game runs at solid 60 frames per second.

PVRMonitor - phone_2

You can download PVRMonitor now from Google Play and install it on your PowerVR-based device.
Get it on Google Play
For those of you who don’t have access to Google Play, you can download the APK by clicking on the icon below.

PVRMonitor - download[PVRMonitor download link]

Have you downloaded, installed and opened the app yet? Okay, read on for an overview of the features that we’ve implemented.


PVRMonitor is a real time system profiling tool that is overlaid on top of other windows. The information gets displayed as a bar chart containing an overview of the CPU load as well as various loads from the GPU.

PVRMonitor phone_0


Displays the CPU load (%) averaged over 200ms; there is an option to average it over 1 second and to display each core as a separate bar.

Why should I use it: This counter is very important as it will allow you to quickly see if the bottleneck is related to the CPU side of things.

Total Pixel

The total load of the pixel processing hardware. This includes work in the ISP (Image Synthesis Processor), TSP (Texture and Shading Processor), pixel processing in the ALUs and related stall time.

This value displays the total load (%) of the pixel processing hardware. This includes the texturing, raster operation and of course, fragment shader processing.

Why should I use it: This value is very important as it is directly proportional to the number of pixels displayed at every frame. There will be situations for which the game will run at rock-solid 60fps but with a very high Total Pixel (%) and thus it will be a hint that something can still be optimized in order to achieve better battery life.

Total Vertex

The total load of the vertex processing hardware. This includes vertex processing in the ALUs, work in the TA (Tile Accelerator) and related stall time.

This value displays the total load (%) of the vertex processing hardware. This includes not only the vertex shader processing but also the tiling.

Why should I use it: Generally neither tiling nor vertex shader processing will be a bottleneck. But if they ever become one, you’d want to know about it sooner rather than later.

ALU: Pixel

Percentage of time that the ALUs have spent processing pixel shaders.

This value displays the time (%) that the shader processors have spent working in fragment shaders.

Why should I use it: Use it to know how expensive the fragment shaders of your application are. For example, this counter will be perfect to help you tune the ideal level of effects and lightning/shadowing quality to display on a given scene.

ALU: Vertex

Percentage of time that the ALUs have spent processing vertex shaders.

This value displays the time (%) that the vertex processors have spent working in vertex shaders.

Why should I use it: Use it to monitor the amount of geometry being processed and help you to optimize it; often times a little mesh can go a long way. This counter will usually (or should usually) remain well below 10% in most games.

Notice that since our ALUs are unified (that is, they can process both fragment and vertex shaders), the ALU: Pixel and the ALU: Vertex values cannot go over 100% if added together.

PVRMonitor 10in_0

 Needless to say, all the values displayed should sound familiar if you ever had a chance to give PVRTune a go.

But… is this a PVRTune replacement? Not exactly.

PVRTune is the tool you should use for a full in-depth profiling work. PVRMonitor is a simplified overview of what the GPU and CPU are doing.

What’s under the hood?


For more details on the PVRMonitor internals, just read my previous blog post about PVRScope Stats. In short, PVRMonitor is an Android application built on top of the same PVRScope libraries that we distribute with the PowerVR Graphics SDK.


The GPU values displayed by PVRMonitor map 1:1 with the PVRScope counterpart, that is:

  • Total Pixel →  GPU task load: 3D core
  • Total Vertex → GPU task load: TA core
  • ALU: Pixel → USSE load: Pixel
  • ALU: Vertex → USSE load: Vertex

What about the overhead? Negligible.

Since Android 4.0 (Ice Cream Sandwich) there is a hardware composer that takes care of the screen composition/blending of surfaces (up to a certain number of layers). Previously that task was done by SurfaceFlinger by using OpenGL ES 1.x in order to allow a software fallback.


PVRMonitor is an awesome and hassle-free way to know how your next big game is performing… while you are playing it! It will help you identify a wide range of possible bottlenecks without using any external tool and with no setup time required.

Download PVRMonitor now from Google Play and give it a go; if you have any suggestions or you think we should add any particular features to PVRMonitor, please use our recently-launched PowerVR Insider Feedback system. If you are unsure whether your device has a PowerVR GPU, here is a selection of mobile SoCs that run Android and integrate our graphics cores:

PowerVR Series5

  • Actions ATM7021
  • Ingenic JZ4780
  • Intel ‘Medfield’ Z2460, ‘Lexington’ Z2420
  • MediaTek MT6573, MT6575, MT6577
  • Rockchip RK3168
  • Texas Instruments OMAP4430, OMAP4460

PowerVR Series5XT

  • Actions ATM7039
  • Allwinner A31, A31s
  • Intel ‘CloverTrail+’ Z2520, Z2560, Z2580
  • MediaTek MT6589, MT8125
  • Renesas (now acquired by Broadcom) MP5232, MP6530
  • Samsung Exynos 5410
  • Texas Instruments OMAP4470

PowerVR Series6

  • MediaTek MT8135

Don’t forget to come back to our blog for more tutorials and walk-throughs for our PowerVR Graphics SDK tools and follow us on Twitter (@PowerVRInsider and @ImaginationTech) for news and updates from our Developer Technology team.

Guillem Vinals Gangolells

Guillem Vinals Gangolells

I'm a Developer Technologies Engineer for the PowerVR division in Imagination Technologies, company in which I've been working since early 2011. My main task consists in the design of developer tools as well as in the integration of the PowerVR graphics in the Android ecosystem. Leaving the technical part aside, I also travel to some international events in order to collect feedback, give technical talks and meet with other companies

3 thoughts on “PowerVR Graphics SDK tools explained: Introducing PVRMonitor”

Please leave a comment below

Comment policy: We love comments and appreciate the time that readers spend to share ideas and give feedback. However, all comments are manually moderated and those deemed to be spam or solely promotional will be deleted. We respect your privacy and will not publish your personal details.

Blog Contact

If you have any enquiries regarding any of our blog posts, please contact:

United Kingdom

Tel: +44 (0)1923 260 511

Search by Tag

Search by Author

Related blog articles

bseries imgic technology

Back in the high-performance game

My first encounter with the PowerVR GPU was helping the then VideoLogic launch boards for Matrox in Europe. Not long after I joined the company, working on the rebrand to Imagination Technologies and promoting both our own VideoLogic-branded boards and those of our partners using ST’s Kyro processors. There were tens of board partners but only for one brief moment did we have two partners in the desktop space: NEC and ST.

Read More »
b series hero banner 2

IMG B-Series – a multi-core revolution for a new world

B-Series uses multi-core to deliver an incredible 33 core variations for the widest range of options at all levels of performance points. From the smallest IoT cores up to the mid-range desktop equivalent B-Series an outperform mid-range next-gen consoles. Learn more in this blog post.

Read More »
pvrtune complete

What is PVRTune Complete?

PVR Tune Complete highlights exactly what the application is doing at the GPU level, helping to identify any bottlenecks in the compute stage, the renderer, and the tiler.

Read More »


Sign up to receive the latest news and product updates from Imagination straight to your inbox.