New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 603331 link

Starred by 2 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocked on:
issue 602485



Sign in to add a comment

Decouple cc scheduler from its deadline

Project Member Reported by sunn...@chromium.org, Apr 13 2016

Issue description

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

 
Just to clarify regarding 2.: You are not planning on changing the effective behavior where the scheduler will sort of treat this as a proactive BeginFrame and delay the Begin*Main*Frame until something actually changes, right?
No, BeginMainFrame won't be delayed - we'll just remove the unnecessary rescheduling of the deadline.
Wait, even if there's nothing to draw it won't be delayed until something changes?
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.
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


missed BeginFrame
... <- and there is a BeginMainFrame and Composite in between here ->...
vsync -> BeginFrame
Components: Internals>GPU>Scheduling
Cc: stanisc@chromium.org
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