Android display VSYNC signal is highly erratic

Viewed 639

I'm investigating frame drops in my Android app. They are irregular and happen around once a second on average. I have paired back the renderer in question to a very simple shader and I'm confident that frame render time is short.

When I run systrace I can see what look like the dropped frames, but the cause appears to be that the HW_VSYNC_0 signal occasionally fails to flip (i.e. it sticks at 0 or 1 for half a cycle). My understanding (from this answer) was that this clock comes from the display hardware and should therefore be regular.

The VSYNC-sf signal carries on regardless, although occasionally it flips as well, presumably in a desperate attempt to get back in sync.

My question: is this expected behaviour and what causes it to happen?

Screenshot of systrace

1 Answers
Related