| Index: cc/scheduler/scheduler.cc
|
| diff --git a/cc/scheduler/scheduler.cc b/cc/scheduler/scheduler.cc
|
| index 2288169ecde077c80dc44fe911097a87924f1869..ded29bfbc3b3d6831f99b89077b9e0af3c8c9647 100644
|
| --- a/cc/scheduler/scheduler.cc
|
| +++ b/cc/scheduler/scheduler.cc
|
| @@ -66,7 +66,8 @@ Scheduler::Scheduler(
|
| const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
|
| scoped_ptr<BeginFrameSource> external_begin_frame_source,
|
| SchedulerFrameSourcesConstructor* frame_sources_constructor)
|
| - : frame_source_(),
|
| + : begin_frame_count_(0),
|
| + frame_source_(),
|
| primary_frame_source_(NULL),
|
| primary_frame_source_internal_(external_begin_frame_source.Pass()),
|
| vsync_observer_(NULL),
|
| @@ -340,6 +341,15 @@ void Scheduler::SetupPollingMechanisms() {
|
| bool Scheduler::OnBeginFrameMixInDelegate(const BeginFrameArgs& args) {
|
| TRACE_EVENT1("cc,benchmark", "Scheduler::BeginFrame", "args", args.AsValue());
|
|
|
| + bool in_renderer = !settings_.main_thread_should_always_be_low_latency;
|
| + if (in_renderer) {
|
| + const int kFramesToSkip = 1;
|
| + begin_frame_count_++;
|
| + if (begin_frame_count_ <= kFramesToSkip)
|
| + return false;
|
| + begin_frame_count_ = 0;
|
| + }
|
| +
|
| // Deliver BeginFrames to children.
|
| if (state_machine_.children_need_begin_frames()) {
|
| BeginFrameArgs adjusted_args_for_children(args);
|
|
|