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 |