Android display VSYNC signal is very chaotic

I am studying frames in an Android application. They are irregular and occur approximately once per second on average. I linked the handler back in question with a very simple shader, and I'm sure the frame rendering time is short.

When I run systrace, I see what looks like dropped frames, but the reason is that the HW_VSYNC_0 signal sometimes does not flip (i.e., it adheres to 0 or 1 for half a cycle). My understanding (from this answer ) was that this watch comes from the display and therefore should be regular.

The VSYNC-sf signal continues independently, although sometimes it also flips, apparently in a desperate attempt to return to synchronization.

My question is: is this the expected behavior and the reasons for its occurrence?

Systrace screenshot

+5
source share
1 answer

While I cannot accurately explain the unstable behavior of various synchronization signals, I finally decided that my main stutter was caused by excessive power control at the OS level. It seems that the processor clock resigned until the frame rendering time exceeded the update time, then something (possibly not related to it) drove the processor clock to the maximum.

0
source

Source: https://habr.com/ru/post/1272136/


All Articles