0

I am doing a project where I am scaling the frequency of the GPU of a Nexus 7 through the kernel to save power. To measure QoS/performance I am trying to collect data on frames rendered (drawn/dropped). I am hoping to run a few games/videos to see the frame rate. I am aware that I can collect data through the adb with the command

$>adb shell dumpsys gfxinfo <package_name>

in developer mode with "Profile GPU rendering" enabled. This only outputs the time taken to draw/process/execute for the last 128 frames for each package/application. I am wondering if there is a hack to increase the number of frames

or

if I can get rendered frame statistics another way. I understand we can use systrace/tracer for OpenGL ES. Neither outputs stats-just wave forms.

fadden
  • 51,356
  • 5
  • 116
  • 166
Isuru Daulagala
  • 179
  • 1
  • 10

3 Answers3

2

If it is the newer Nexus 7 with the snapdragon chip you could consider using the Adreno Profiler from their site. You'll have to make an account first though.

  • I used the Adreno profiler. It doesn't output raw time taken for a frame to be rendered. Instead it outputs FPS. I am also not sure how many frames it averages FPS measurement with. Do you know how many? – Isuru Daulagala May 17 '14 at 05:29
2

Since this is a top result on Google for "frame rate statistics on android" I'm going to offer another suggestion. dumpsys gfxinfo clears that buffer each time you access it, so you if you poll it you can collect data as long as you like.

Turnsole
  • 3,422
  • 5
  • 30
  • 52
  • 1
    Here's a python script I wrote to do just that, then make a graph of it: https://github.com/Turnsole/cookie-butter – Turnsole Apr 23 '15 at 17:55
1

You could use this app. It measures FPS of any game in the play store. It also records screenshots so you can understand what was happening when the FPS Drops.

Karthik H
  • 123
  • 1
  • 11