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

Unified Diff: cc/scheduler/scheduler.h

Issue 1184863004: cc: Move timing history to the Scheduler. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase, add include Created 5 years, 6 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.h
diff --git a/cc/scheduler/scheduler.h b/cc/scheduler/scheduler.h
index 22674dfa03abe698c2b7c470c2beb6fd5981039b..4f0b52f199f410fa41183cc7c23572f3e42364ea 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;
@@ -43,9 +46,6 @@ class SchedulerClient {
virtual void ScheduledActionBeginOutputSurfaceCreation() = 0;
virtual void ScheduledActionPrepareTiles() = 0;
virtual void ScheduledActionInvalidateOutputSurface() = 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;
@@ -79,14 +79,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;
@@ -179,11 +178,15 @@ 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
sunnyps 2015/06/23 18:11:03 nit: Do we really need a comment asking not to use
danakj 2015/06/23 18:13:02 The style guide forbids doing so.
brianderson 2015/06/23 20:23:27 Done.
// destructor!
virtual base::TimeTicks Now() const;
+ virtual base::TimeDelta DrawDurationEstimate() const;
+ virtual base::TimeDelta BeginMainFrameToCommitDurationEstimate() const;
+ virtual base::TimeDelta CommitToActivateDurationEstimate() const;
scoped_ptr<BeginFrameSourceMultiplexer> frame_source_;
BeginFrameSource* primary_frame_source_;
@@ -204,6 +207,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_;
@@ -229,6 +233,7 @@ class CC_EXPORT Scheduler : public BeginFrameObserverBase {
void PostBeginRetroFrameIfNeeded();
void SetupPollingMechanisms();
void DrawAndSwapIfPossible();
+ void DrawAndSwapForced();
void ProcessScheduledActions();
bool CanCommitAndActivateBeforeDeadline() const;
void AdvanceCommitStateIfPossible();

Powered by Google App Engine
This is Rietveld 408576698