Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(190)

Unified Diff: cc/scheduler/scheduler.cc

Issue 1765723002: Hoist begin frame sources out of scheduler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@scheduler_remove_throttle_flag
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/scheduler/scheduler.cc
diff --git a/cc/scheduler/scheduler.cc b/cc/scheduler/scheduler.cc
index a84c1ba8a67c4b2b01c8705b248821683be4100a..796a67b75bd92fb1f80c34648d0b94c27fbbb72e 100644
--- a/cc/scheduler/scheduler.cc
+++ b/cc/scheduler/scheduler.cc
@@ -31,19 +31,11 @@ scoped_ptr<Scheduler> Scheduler::Create(
const SchedulerSettings& settings,
int layer_tree_host_id,
base::SingleThreadTaskRunner* task_runner,
- BeginFrameSource* external_frame_source,
+ BeginFrameSource* begin_frame_source,
scoped_ptr<CompositorTimingHistory> compositor_timing_history) {
- scoped_ptr<SyntheticBeginFrameSource> synthetic_frame_source;
- if (!settings.use_external_begin_frame_source) {
- synthetic_frame_source = SyntheticBeginFrameSource::Create(
- task_runner, BeginFrameArgs::DefaultInterval());
- }
- scoped_ptr<BackToBackBeginFrameSource> unthrottled_frame_source =
- BackToBackBeginFrameSource::Create(task_runner);
- return make_scoped_ptr(new Scheduler(
- client, settings, layer_tree_host_id, task_runner, external_frame_source,
- std::move(synthetic_frame_source), std::move(unthrottled_frame_source),
- std::move(compositor_timing_history)));
+ return make_scoped_ptr(new Scheduler(client, settings, layer_tree_host_id,
+ task_runner, begin_frame_source,
+ std::move(compositor_timing_history)));
}
Scheduler::Scheduler(
@@ -51,18 +43,13 @@ Scheduler::Scheduler(
const SchedulerSettings& settings,
int layer_tree_host_id,
base::SingleThreadTaskRunner* task_runner,
- BeginFrameSource* external_frame_source,
- scoped_ptr<SyntheticBeginFrameSource> synthetic_frame_source,
- scoped_ptr<BackToBackBeginFrameSource> unthrottled_frame_source,
+ BeginFrameSource* begin_frame_source,
scoped_ptr<CompositorTimingHistory> compositor_timing_history)
: settings_(settings),
client_(client),
layer_tree_host_id_(layer_tree_host_id),
task_runner_(task_runner),
- external_frame_source_(external_frame_source),
- synthetic_frame_source_(std::move(synthetic_frame_source)),
- unthrottled_frame_source_(std::move(unthrottled_frame_source)),
- frame_source_(BeginFrameSourceMultiplexer::Create()),
+ frame_source_(begin_frame_source),
observing_frame_source_(false),
compositor_timing_history_(std::move(compositor_timing_history)),
begin_impl_frame_deadline_mode_(
@@ -75,33 +62,19 @@ Scheduler::Scheduler(
TRACE_EVENT1("cc", "Scheduler::Scheduler", "settings", settings_.AsValue());
DCHECK(client_);
DCHECK(!state_machine_.BeginFrameNeeded());
- DCHECK(!settings_.use_external_begin_frame_source || external_frame_source_);
- DCHECK(settings_.use_external_begin_frame_source || synthetic_frame_source_);
- DCHECK(unthrottled_frame_source_);
begin_retro_frame_closure_ =
base::Bind(&Scheduler::BeginRetroFrame, weak_factory_.GetWeakPtr());
begin_impl_frame_deadline_closure_ = base::Bind(
&Scheduler::OnBeginImplFrameDeadline, weak_factory_.GetWeakPtr());
- frame_source_->AddSource(primary_frame_source());
- primary_frame_source()->SetClientReady();
-
- frame_source_->AddSource(unthrottled_frame_source_.get());
- unthrottled_frame_source_->SetClientReady();
-
- if (settings_.throttle_frame_production) {
- frame_source_->SetActiveSource(primary_frame_source());
- } else {
- frame_source_->SetActiveSource(unthrottled_frame_source_.get());
- }
+ frame_source_->SetClientReady();
ProcessScheduledActions();
}
Scheduler::~Scheduler() {
if (observing_frame_source_)
frame_source_->RemoveObserver(this);
- frame_source_->SetActiveSource(nullptr);
}
base::TimeTicks Scheduler::Now() const {
@@ -113,21 +86,6 @@ base::TimeTicks Scheduler::Now() const {
return now;
}
-void Scheduler::CommitVSyncParameters(base::TimeTicks timebase,
- base::TimeDelta interval) {
- if (authoritative_vsync_interval_ != base::TimeDelta()) {
- interval = authoritative_vsync_interval_;
- } else if (interval == base::TimeDelta()) {
- // TODO(brianderson): We should not be receiving 0 intervals.
- interval = BeginFrameArgs::DefaultInterval();
- }
-
- last_vsync_timebase_ = timebase;
-
- if (synthetic_frame_source_)
- synthetic_frame_source_->OnUpdateVSyncParameters(timebase, interval);
-}
-
void Scheduler::SetEstimatedParentDrawTime(base::TimeDelta draw_time) {
DCHECK_GE(draw_time.ToInternalValue(), 0);
estimated_parent_draw_time_ = draw_time;
@@ -360,14 +318,6 @@ void Scheduler::SetChildrenNeedBeginFrames(bool children_need_begin_frames) {
ProcessScheduledActions();
}
-void Scheduler::SetAuthoritativeVSyncInterval(const base::TimeDelta& interval) {
- authoritative_vsync_interval_ = interval;
- if (synthetic_frame_source_) {
- synthetic_frame_source_->OnUpdateVSyncParameters(last_vsync_timebase_,
- interval);
- }
-}
-
void Scheduler::SetVideoNeedsBeginFrames(bool video_needs_begin_frames) {
state_machine_.SetVideoNeedsBeginFrames(video_needs_begin_frames);
ProcessScheduledActions();
@@ -801,14 +751,8 @@ void Scheduler::AsValueInto(base::trace_event::TracedValue* state) const {
}
state->BeginDictionary("scheduler_state");
- state->SetBoolean("external_frame_source_", !!external_frame_source_);
state->SetBoolean("throttle_frame_production_",
settings_.throttle_frame_production);
- state->SetDouble("authoritative_vsync_interval_ms",
enne (OOO) 2016/03/03 23:06:14 I'm not sure if anybody was using this info, but I
Sami 2016/03/08 19:15:24 I think it was here just for debugging, so no need
- authoritative_vsync_interval_.InMillisecondsF());
- state->SetDouble(
- "last_vsync_timebase_ms",
- (last_vsync_timebase_ - base::TimeTicks()).InMillisecondsF());
state->SetDouble("estimated_parent_draw_time_ms",
estimated_parent_draw_time_.InMillisecondsF());
state->SetBoolean("observing_frame_source", observing_frame_source_);

Powered by Google App Engine
This is Rietveld 408576698