Chromium Code Reviews| Index: cc/scheduler/frame_rate_controller.cc |
| diff --git a/cc/scheduler/frame_rate_controller.cc b/cc/scheduler/frame_rate_controller.cc |
| index 54c1bdaf48f15d12b52d075c5ee7a30a112a0f9b..90dec25f7ef21648a44adfb7f3076e177561394c 100644 |
| --- a/cc/scheduler/frame_rate_controller.cc |
| +++ b/cc/scheduler/frame_rate_controller.cc |
| @@ -76,9 +76,10 @@ BeginFrameArgs FrameRateController::SetActive(bool active) { |
| base::TimeTicks missed_tick_time = time_source_->SetActive(active); |
| if (!missed_tick_time.is_null()) { |
| base::TimeTicks deadline = NextTickTime(); |
| - return BeginFrameArgs::Create(missed_tick_time, |
| - deadline, |
| - interval_); |
| + BeginFrameArgs args = |
| + BeginFrameArgs::Create(missed_tick_time, deadline, interval_); |
| + args.deadline += deadline_adjustment_; |
|
danakj
2013/09/17 20:26:19
Is this covered by a unit test?
brianderson
2013/09/17 21:08:24
There are few ways to handle the first frame's dea
|
| + return args; |
| } |
| } else { |
| if (active) |
| @@ -118,10 +119,11 @@ void FrameRateController::OnTimerTick() { |
| if (client_) { |
| // TODO(brianderson): Use an adaptive parent compositor deadline. |
| base::TimeTicks frame_time = LastTickTime(); |
| - base::TimeTicks deadline = NextTickTime() + deadline_adjustment_; |
| - client_->FrameRateControllerTick( |
| - throttled, |
| - BeginFrameArgs::Create(frame_time, deadline, interval_)); |
| + base::TimeTicks deadline = NextTickTime(); |
| + BeginFrameArgs args = |
| + BeginFrameArgs::Create(frame_time, deadline, interval_); |
| + args.deadline += deadline_adjustment_; |
|
danakj
2013/09/17 20:26:19
why adjust the deadline after instead of just pass
brianderson
2013/09/17 21:08:24
I used to have an AdjustDeadline method that would
|
| + client_->FrameRateControllerTick(throttled, args); |
| } |
| if (!is_time_source_throttling_ && !throttled) |