Reland "SF: Encapsulate frame targeting"
Introduce FrameTargeter to isolate a display's per-frame metrics around past/upcoming deadline targets. The Scheduler updates the FrameTargeter on frame begin/end, whereas ICompositor (concretely SurfaceFlinger) has read-only access via the FrameTarget interface. For now, only instantiate the pacesetter's FrameTargeter. The reverted Idf9f43b37f3479c94a478d154eaa46f43e0c6c9d had an incorrect functional change that adjusted `earliestPresentTime` based on the past VSYNC, which differs from the previous frame's VSYNC when targeting two VSYNCs ahead. This CL restores the `earliestPresentTime` to be relative to the previous frame. Bug: 262269033 Bug: 241285475 Bug: 241285191 Test: Perfetto Test: dumpsys SurfaceFlinger --scheduler Test: atest libscheduler_test:FrameTargeterTest Test: systemui-bubble-1-jank-suite on raven-userdebug Change-Id: I584e299e8af55baae1125f45fd47b13f705a268c
Loading
Please register or sign in to comment