Description[cc] Add and use BeginFrameAck for DidFinishFrame.
Adds BeginFrameAck struct and updates the signature and callsites of
BeginFrameSource::DidFinishFrame(). This is split off from
https://codereview.chromium.org/2527283003/.
Observers will be required to use BeginFrameAcks to indicate the
result of a BeginFrame message. The acknowledgments will be used by the
DisplayScheduler to determine when all updates for a BeginFrame have
been received and trigger an early deadline.
A BeginFrame acknowledgment indicates:
1) completion of a specific BeginFrame by the observer,
2) whether or not the observer produced updates, and
3) the oldest frame that was incorporated into the last update from the
observer.
2) and 3) are in preparation for DevTool's BeginFrameControl, see
http://bit.ly/bfc-v1 and https://codereview.chromium.org/2411793008/.
Follow-up patches will add:
- correct calculation of |latest_confirmed_frame| in
Scheduler/DisplayScheduler.
- missing DidFinishFrame() calls in observers
- integration of acks into CompositorFrame submission (to allow ack
propagation from services / renderer compositor)
- modification of DisplayScheduler to rely on BeginFrameAcks.
BUG=646774, 401331
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
Review-Url: https://codereview.chromium.org/2591013004
Cr-Commit-Position: refs/heads/master@{#441960}
Committed: https://chromium.googlesource.com/chromium/src/+/05dc9ef49954de90fd62d5a9b7cb60af7b14ff86
Patch Set 1 : . #
Total comments: 12
Patch Set 2 : address Brian's comments + fix DisplaySchedulerTests. #
Total comments: 2
Patch Set 3 : make time advancement explicit in DisplaySchedulerTests. #
Total comments: 2
Patch Set 4 : remove ipc struct traits for BeginFrameAck. #
Messages
Total messages: 37 (25 generated)
|