Decouple cc scheduler from its deadline |
|||
Issue descriptionRight now the cc scheduler uses the deadline for all cases: 1. It has something to draw but is also waiting for a commit: regular deadline 2. It has nothing to draw and is only waiting for a commit: late deadline (frame time + interval) 3. In commit to active tree mode we are waiting for commit and ready to draw: indefinite deadline The deadline really only applies to the first case. The other cases are where the scheduler is actually idle and waiting for something. We can do this after we remove retro frames and make all begin frame sources support missed frames. The biggest hurdle to fixing this will be our tests which are all very deadline driven.
,
Apr 22 2016
No, BeginMainFrame won't be delayed - we'll just remove the unnecessary rescheduling of the deadline.
,
Apr 22 2016
Wait, even if there's nothing to draw it won't be delayed until something changes?
,
Apr 22 2016
Case #2 is about when the scheduler thinks it needs a commit. If something does come up that requires a redraw the scheduler will schedule a deadline. Basically I want the deadline to be only for the case where we have something to draw.
,
Apr 22 2016
So what about this pattern, will it still work? needs_begin_frame == false something changes SetNeedsBeginFrames(true) + AddObserver() missed BeginFrame vsync -> BeginFrame nothing changed yet.... ... SetNeedsCommit() ->BeginMainFrame
,
Apr 22 2016
missed BeginFrame ... <- and there is a BeginMainFrame and Composite in between here ->... vsync -> BeginFrame
,
Aug 31 2016
,
Jan 12 2017
Adding myself to cc list because I am interested in eventually getting rid of scheduling deadline as a delayed task. |
|||
►
Sign in to add a comment |
|||
Comment 1 by siev...@chromium.org
, Apr 22 2016