| Index: cc/scheduler/scheduler.h
|
| diff --git a/cc/scheduler/scheduler.h b/cc/scheduler/scheduler.h
|
| index 408bd4cc9f56e25ea2ad66a4f93022554ce1b982..31d0b08b557f1b19d9f90cdaa5b233e8009bba2c 100644
|
| --- a/cc/scheduler/scheduler.h
|
| +++ b/cc/scheduler/scheduler.h
|
| @@ -17,6 +17,7 @@
|
| #include "cc/output/vsync_parameter_observer.h"
|
| #include "cc/scheduler/begin_frame_source.h"
|
| #include "cc/scheduler/begin_frame_tracker.h"
|
| +#include "cc/scheduler/compositor_timing_history.h"
|
| #include "cc/scheduler/delay_based_time_source.h"
|
| #include "cc/scheduler/draw_result.h"
|
| #include "cc/scheduler/scheduler_settings.h"
|
| @@ -31,6 +32,8 @@ class SingleThreadTaskRunner;
|
|
|
| namespace cc {
|
|
|
| +class RenderingStatsInstrumentation;
|
| +
|
| class SchedulerClient {
|
| public:
|
| virtual void WillBeginImplFrame(const BeginFrameArgs& args) = 0;
|
| @@ -44,9 +47,6 @@ class SchedulerClient {
|
| virtual void ScheduledActionPrepareTiles() = 0;
|
| virtual void ScheduledActionInvalidateOutputSurface() = 0;
|
| virtual void DidAnticipatedDrawTimeChange(base::TimeTicks time) = 0;
|
| - virtual base::TimeDelta DrawDurationEstimate() = 0;
|
| - virtual base::TimeDelta BeginMainFrameToCommitDurationEstimate() = 0;
|
| - virtual base::TimeDelta CommitToActivateDurationEstimate() = 0;
|
| virtual void DidFinishImplFrame() = 0;
|
| virtual void SendBeginFramesToChildren(const BeginFrameArgs& args) = 0;
|
| virtual void SendBeginMainFrameNotExpectedSoon() = 0;
|
| @@ -80,14 +80,13 @@ class CC_EXPORT Scheduler : public BeginFrameObserverBase {
|
| const SchedulerSettings& scheduler_settings,
|
| int layer_tree_host_id,
|
| const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
|
| - scoped_ptr<BeginFrameSource> external_begin_frame_source) {
|
| + scoped_ptr<BeginFrameSource> external_begin_frame_source,
|
| + RenderingStatsInstrumentation* rendering_stats_instrumentation) {
|
| SchedulerFrameSourcesConstructor frame_sources_constructor;
|
| - return make_scoped_ptr(new Scheduler(client,
|
| - scheduler_settings,
|
| - layer_tree_host_id,
|
| - task_runner,
|
| - external_begin_frame_source.Pass(),
|
| - &frame_sources_constructor));
|
| + return make_scoped_ptr(new Scheduler(
|
| + client, scheduler_settings, layer_tree_host_id, task_runner,
|
| + external_begin_frame_source.Pass(), rendering_stats_instrumentation,
|
| + &frame_sources_constructor));
|
| }
|
|
|
| ~Scheduler() override;
|
| @@ -129,7 +128,9 @@ class CC_EXPORT Scheduler : public BeginFrameObserverBase {
|
|
|
| void NotifyReadyToCommit();
|
| void BeginMainFrameAborted(CommitEarlyOutReason reason);
|
| + void DidCommit();
|
|
|
| + void WillPrepareTiles();
|
| void DidPrepareTiles();
|
| void DidLoseOutputSurface();
|
| void DidCreateAndInitializeOutputSurface();
|
| @@ -182,11 +183,17 @@ class CC_EXPORT Scheduler : public BeginFrameObserverBase {
|
| int layer_tree_host_id,
|
| const scoped_refptr<base::SingleThreadTaskRunner>& task_runner,
|
| scoped_ptr<BeginFrameSource> external_begin_frame_source,
|
| + RenderingStatsInstrumentation* rendering_stats_instrumentation,
|
| SchedulerFrameSourcesConstructor* frame_sources_constructor);
|
|
|
| // virtual for testing - Don't call these in the constructor or
|
| // destructor!
|
| virtual base::TimeTicks Now() const;
|
| + virtual base::TimeDelta BeginMainFrameToCommitDurationEstimate() const;
|
| + virtual base::TimeDelta PrepareTilesDurationEstimate() const;
|
| + virtual base::TimeDelta PrepareTilesToReadyToActivateDurationEstimate() const;
|
| + virtual base::TimeDelta ActivateDurationEstimate() const;
|
| + virtual base::TimeDelta DrawDurationEstimate() const;
|
|
|
| scoped_ptr<BeginFrameSourceMultiplexer> frame_source_;
|
| BeginFrameSource* primary_frame_source_;
|
| @@ -207,6 +214,7 @@ class CC_EXPORT Scheduler : public BeginFrameObserverBase {
|
| int layer_tree_host_id_;
|
| scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
|
|
|
| + CompositorTimingHistory compositor_timing_history_;
|
| base::TimeDelta estimated_parent_draw_time_;
|
|
|
| std::deque<BeginFrameArgs> begin_retro_frame_args_;
|
| @@ -232,6 +240,7 @@ class CC_EXPORT Scheduler : public BeginFrameObserverBase {
|
| void PostBeginRetroFrameIfNeeded();
|
| void SetupPollingMechanisms();
|
| void DrawAndSwapIfPossible();
|
| + void DrawAndSwapForced();
|
| void ProcessScheduledActions();
|
| bool CanCommitAndActivateBeforeDeadline() const;
|
| void AdvanceCommitStateIfPossible();
|
|
|