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 4844b16faee8771bd080cf3fc4c54f5146710e63..e9e32782c4b57f09b4b55be65abf25bd75fedf72 100644 |
| --- a/cc/scheduler/frame_rate_controller.cc |
| +++ b/cc/scheduler/frame_rate_controller.cc |
| @@ -86,7 +86,10 @@ BeginFrameArgs FrameRateController::SetActive(bool active) { |
| // TODO(brianderson): Use an adaptive parent compositor deadline. |
| base::TimeTicks frame_time = NextTickTime() - interval_; |
| base::TimeTicks deadline = NextTickTime(); |
| - return BeginFrameArgs::Create(frame_time, deadline, interval_); |
| + BeginFrameArgs args = |
| + BeginFrameArgs::Create(frame_time, deadline, interval_); |
| + args.AdjustDeadline(deadline_adjustment_); |
| + return args; |
| } |
| return BeginFrameArgs(); |
| } |
| @@ -98,6 +101,7 @@ void FrameRateController::SetMaxSwapsPending(int max_swaps_pending) { |
| void FrameRateController::SetTimebaseAndInterval(base::TimeTicks timebase, |
| base::TimeDelta interval) { |
| + timebase = base::TimeTicks(); |
|
brianderson
2013/07/18 02:02:49
This is a hack to keep the phase from changing eve
|
| interval_ = interval; |
| if (is_time_source_throttling_) |
| time_source_->SetTimebaseAndInterval(timebase, interval); |
| @@ -119,10 +123,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.AdjustDeadline(deadline_adjustment_); |
| + client_->FrameRateControllerTick(throttled, args); |
| } |
| if (!is_time_source_throttling_ && !throttled) |