Chromium Code Reviews| Index: cc/scheduler/scheduler.cc |
| diff --git a/cc/scheduler/scheduler.cc b/cc/scheduler/scheduler.cc |
| index cc6ae1a39dc79c0e6a8f9dcb6b0fcc0b901ce589..126bebf93b08dbf15a6fdacfe13e8e2f17f4b0f5 100644 |
| --- a/cc/scheduler/scheduler.cc |
| +++ b/cc/scheduler/scheduler.cc |
| @@ -64,8 +64,7 @@ void Scheduler::SyntheticBeginFrameSource::OnTimerTick() { |
| BeginFrameArgs |
| Scheduler::SyntheticBeginFrameSource::CreateSyntheticBeginFrameArgs( |
| base::TimeTicks frame_time) { |
| - base::TimeTicks deadline = |
| - time_source_->NextTickTime() - scheduler_->EstimatedParentDrawTime(); |
| + base::TimeTicks deadline = time_source_->NextTickTime(); |
| return BeginFrameArgs::Create( |
| frame_time, deadline, scheduler_->VSyncInterval()); |
| } |
| @@ -398,6 +397,9 @@ void Scheduler::BeginFrame(const BeginFrameArgs& args) { |
| TRACE_EVENT1("cc", "Scheduler::BeginFrame", "args", ToTrace(args)); |
| DCHECK(settings_.throttle_frame_production); |
| + BeginFrameArgs adjusted_args(args); |
| + adjusted_args.deadline -= EstimatedParentDrawTime(); |
|
brianderson
2014/06/10 18:24:23
I had some reservations about putting the adjustme
|
| + |
| bool should_defer_begin_frame; |
| if (settings_.using_synchronous_renderer_compositor) { |
| should_defer_begin_frame = false; |
| @@ -410,13 +412,13 @@ void Scheduler::BeginFrame(const BeginFrameArgs& args) { |
| } |
| if (should_defer_begin_frame) { |
| - begin_retro_frame_args_.push_back(args); |
| + begin_retro_frame_args_.push_back(adjusted_args); |
| TRACE_EVENT_INSTANT0( |
| "cc", "Scheduler::BeginFrame deferred", TRACE_EVENT_SCOPE_THREAD); |
| return; |
| } |
| - BeginImplFrame(args); |
| + BeginImplFrame(adjusted_args); |
| } |
| // BeginRetroFrame is called for BeginFrames that we've deferred because |