My development device is a Samsung S4 Active with an Adreno 320.
I've been using the profiler to improve performance in leaps and bounds on my device. Currently my render-loop uses a DRAW_CONTINUOUSLY opengl surface view, where the renderer makes calls into native code (compiled with the NDK) to draw the frames. Finally I got the performance to 60FPS and 60% GPU usage.
Unfortunately this is highly inconsistent. Later the same scene ran at 30FPS and 100% GPU usage. Playing with the profiler I selected "Enable GPU DCVS and NAP".
Before option enabled: 30 FPS, 100% GPU usage
While option enabled: 60 FPS, 100% GPU usage
After option disabled: 60FPS 50% GPU usage.
A later execution of the app runs at 45FPS, 100% GPU usage.
Another restart runs at 60FPS, 50% GPU usage. (pictured). What is going on? I'm always rendering the same scene, and the FPS is stable for each of these, but I have no idea why it's fluctuating between stable values between restarts.
Picture of the last occurence in the profiler -> http://imgur.com/UoTVqFb
Also its not like this is after running it for a long time, there's no "garbage" building up. It's just the first 20 seconds of one start of the program, compared with the first 20 seconds of another start of the program. And if somebody would tell me what the "Enable GPU DCVS and NAP" option even does, that would be a good start perhaps.