Sharp Android performance drop reported as Graphics.PresentAndSync->Device.Present

I have a relatively simple 3d game and am seeing a sharp performance drop after running for 30s-2min on Android. The offending task in the profiler is Graphics.PresentAndSync->Device.Present (BlitToCurrentFB is after that, but it’s only 2-3% as compared to the Device.Present ~60%). Has anyone else experienced something similar?

Profiler pre-spike

Profiler post-spike

Things I’ve tried with no luck: Turn off vsync. Disable all UI elements. Restart phone. Compile APK using only ARM. Disable all shadows/anti-aliasing. Change all materials to use unlit shader.

I would normally blame this issue on myself and thing I messed something up in my code, or had memory building up somewhere, but the fact that it’s such a binary on/off thing makes me think it’s something else.

Thanks for any help/advice.

Solution: The issue was thermal throttling on my Nexus 5x. Was able to run at 60fps indefinitely while phone was resting on a bag of frozen broccoli.

1 Like