I plan to compare the GPU performance of different GPU powerscale policies. GPU powerscale policies are found under

/drivers/msm/gpu/msm[or any other chipset name]/kgsl_pwrscale_XXXX.c

under the kernel tree, where XXXX= trustzone, msm or any other policy I wrote. Based on these different policies I expect differing performance for frame rendering. SO for each policy let's assume there is a different ROM.

I know there are apps like GFXBench and Basemark 2.0 ES Taiji which can measure GPU performance directly. But I am looking to measuring performance of the GPU in low GPU intensive apps/workloads such as Home screen scrolling, Twitter or 2048 game.

What metrics can I take into account and how can I measure them?

Since I am using a 2nd Gen Nexus 7 and it's using a Qualcomm Adreno GPU, I can use the Adreno Profiler from Qualcomm to capture FPS when I scroll. But in apps like Twitter, the screen doesn't refresh unless you scroll, so there is no FPS measurement if we don't scroll. So what other metrics can I use

1 Answer 1


For low GPU workloads, the only sensible metric is power consumption. If the frame time is always less than 1/60 s, then changes in frame time won't affect the visual appearance of the app, so neither frame time nor FPS provide any useful information. You can't usefully measure power consumption from a user-space benchmark: you need either kernel hooks (such as are used by the Android battery use chart) or a hardware power probe.

Note that it's important to measure the power consumption of the whole system, not just the GPU. It's almost always possible to shift work between the CPU and GPU, and you may find that certain GPU performance techniques actually increase CPU power consumption, so you need the total power in order to see the whole picture.

Note also that you need to measure the power consumption over all time, not just while the frame is rendering. Consider two power policies: one always runs the GPU at full speed while there is work to do, but if the frame is quick to render, it's only for a very short burst; the other turns down the GPU speed to reduce power consumption such that the frame is always ready just in time. Sampling power use, or measuring it only while the frame is being rendered, will make the first policy look more power-hungry, but it might in fact use less power overall, because it can run in short bursts.

In short, power profiling is a big topic, and choosing the right workload is only a small part of it. You really need to understand what you're trying to optimize for, and that's not always frame time.

  • Thanks. You can check measure the power using the current. An instantaneous current measurement is present at /sys/class/power_supply/battery/current_now You can also use profilers like trepn profiler for Qualcomm chipsets
    – Isuru
    May 20, 2014 at 18:42

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .