Android profiling, fps, vsync


Is it possible to have an fps-counter in my app that is based on measuring how long a frame takes, without counting the time it waits for vsync?

Also, where do I look for “waiting for vsync” in the profiler when profiling an android game? When profiling the game running in the editor it’s WaitForTargetFPS, but on Android I think it’s included in Graphics.PresentAndSync, which also includes actually rendering, i beleive.

Background to why I think I want this: I am profiling this simple game. Runs fine in the editor. Runs 30-60 fps on my android phone. Supposedly it should easily run in 60 fps (it’s a simple game). Suspected I had some slow shaders, so I tried replacing them all with a simpler shader. It now runs in 60 fps. However, I’m not sure where to look for how fast it really is, and how long it’s waiting for vsync. There’s a big difference between taking 2 ms to render + 14 ms to wait and 15 ms to render and 1 ms to wait. I would like to replace each shader with the real one, one by one, and see how it effects performance.

Also, GPU profiling isn’t supported for my phone (Huawei Honor 5X), if that’s relevant.


this might be what you are looking for: