Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(344)

Issue 2591013004: [cc] Add and use BeginFrameAck for DidFinishFrame. (Closed)

Created:
4 years ago by Eric Seckler
Modified:
3 years, 11 months ago
CC:
enne (OOO), Aaron Boodman, abarth-chromium, blink-reviews, cc-bugs_chromium.org, chromium-reviews, darin (slow to review), darin-cc_chromium.org, jam, mlamouri+watch-content_chromium.org, nona+watch_chromium.org, piman+watch_chromium.org, qsr+mojo_chromium.org, scheduler-bugs_chromium.org, shuchen+watch_chromium.org, Sami, James Su, viettrungluu+watch_chromium.org, yusukes+watch_chromium.org, yzshen+watch_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

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. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+263 lines, -100 lines) Patch
M cc/output/begin_frame_args.h View 1 1 chunk +57 lines, -0 lines 0 comments Download
M cc/output/begin_frame_args.cc View 1 1 chunk +20 lines, -0 lines 0 comments Download
M cc/scheduler/begin_frame_source.h View 5 chunks +16 lines, -9 lines 0 comments Download
M cc/scheduler/begin_frame_source.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M cc/scheduler/begin_frame_source_unittest.cc View 15 chunks +58 lines, -29 lines 0 comments Download
M cc/scheduler/scheduler.cc View 4 chunks +22 lines, -6 lines 0 comments Download
M cc/scheduler/scheduler_state_machine.h View 1 chunk +2 lines, -0 lines 0 comments Download
M cc/surfaces/display_scheduler.h View 1 chunk +3 lines, -2 lines 0 comments Download
M cc/surfaces/display_scheduler.cc View 1 5 chunks +19 lines, -8 lines 0 comments Download
M cc/surfaces/display_scheduler_unittest.cc View 1 2 23 chunks +46 lines, -36 lines 0 comments Download
M cc/test/fake_external_begin_frame_source.h View 1 2 chunks +2 lines, -1 line 0 comments Download
M cc/test/fake_external_begin_frame_source.cc View 1 2 chunks +13 lines, -5 lines 0 comments Download
M content/renderer/gpu/compositor_external_begin_frame_source.h View 1 1 chunk +2 lines, -1 line 0 comments Download
M ui/android/window_android.cc View 1 2 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 37 (25 generated)
Eric Seckler
sequence numbers are only waiting on owners now - sending the next part :)
4 years ago (2016-12-21 15:56:30 UTC) #11
Sami
Looks great! Non-owner lgtm.
4 years ago (2016-12-21 16:33:33 UTC) #15
brianderson
https://codereview.chromium.org/2591013004/diff/20001/cc/output/begin_frame_args.h File cc/output/begin_frame_args.h (right): https://codereview.chromium.org/2591013004/diff/20001/cc/output/begin_frame_args.h#newcode127 cc/output/begin_frame_args.h:127: uint64_t source_id; uint32_t here or uint64_t elsewhere. Don't care ...
4 years ago (2016-12-21 20:15:06 UTC) #16
Eric Seckler
Turns out that the DisplaySchedulerTests were a little buggy b/c they didn't provide missed BeginFrames ...
4 years ago (2016-12-22 11:11:49 UTC) #18
brianderson
lgtm, after now_src_.Advance is explicit in DisplaySchedulerTest. The DisplaySchedulerTests fixes are related to this patch, ...
3 years, 11 months ago (2017-01-03 19:30:17 UTC) #23
Eric Seckler
Thanks Brian! Adding more folks for ownership: +enne@ for content/renderer/gpu +twellington@ for ui/android +dcheng@ for ...
3 years, 11 months ago (2017-01-04 10:14:49 UTC) #25
Theresa
ui/android lgtm
3 years, 11 months ago (2017-01-04 16:07:12 UTC) #26
enne (OOO)
lgtm
3 years, 11 months ago (2017-01-04 22:12:51 UTC) #27
dcheng
As far as I can tell, we're not actually sending these across IPC yet, right? ...
3 years, 11 months ago (2017-01-05 06:49:54 UTC) #28
Eric Seckler
On 2017/01/05 06:49:54, dcheng wrote: > As far as I can tell, we're not actually ...
3 years, 11 months ago (2017-01-06 16:08:51 UTC) #30
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2591013004/120001
3 years, 11 months ago (2017-01-06 16:09:34 UTC) #33
commit-bot: I haz the power
3 years, 11 months ago (2017-01-06 17:23:29 UTC) #36
Message was sent while issue was closed.
Committed patchset #4 (id:120001) as
https://chromium.googlesource.com/chromium/src/+/05dc9ef49954de90fd62d5a9b7cb...

Powered by Google App Engine
This is Rietveld 408576698