Fix SF jank classification
In a buffer stuffed state, there is no way the app frame will be
presented on time. It will be at least one vsync late even if the app
frame finished much earlier than expected. The current system wrongly
classifies this as SF Scheduling jank when in reality, the only jank is
that the app is now in a buffer stuffed state.
The other case can also happen, the app could have presented only one
vsync late in a stuffed scenario, but it could have spent some time
waiting on dequeue. To consider this case and give some room for the
app, we try to adjust the deadline within which the app should be ready
to be presented on the next vsync. This way, we can find frames that are
truly long in a buffer stuffed state.
Bug: 180423820
Test: libsurfaceflinger_unittest
Change-Id: I6ff35d018cfab1ef1e96d010165ed7bce013a98e
3 files changed