google / grafika

Grafika test app
Apache License 2.0
6.07k stars 1.46k forks source link

Using the on-device GPU profiler shows no usage #95

Open crearo opened 6 years ago

crearo commented 6 years ago

I'm using the GPU profiler provided in all Android devices in the Developer options.

Surprisingly, for most grafika activities it does not show any bars. I was expecting it to show a continuous sequence of bars because we're calling several GPU functions (swap buffers, drawArrays).

Show + Capture Acitivity doesn't have any bars, whereas Continuous Capture does and I'm guessing this is because of the flickering [Recording] textview.

Does someone know how to profile the GPU properly?

crearo commented 6 years ago

Update :

I removed all textview.setText() calls in Continuous Capture Activity, and there are no bars being drawn. I have left the call to GLES20.glScissor(xpos, 0, width / 32, height / 32); on.

This makes me think that the on device GPU profiler only profiles UI elements, and ignore any calls we make through GLES.

crearo commented 6 years ago

Alright, I used the Opengles Tracer in Android Device Monitor and that shows all the GLES commands/functions I run per frame. This is helpful to trace commands, but it provides no profiling related information; example the memory used. From this SO post I understand the wall time and thread time give no useful information.