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

Side by Side Diff: cc/scheduler/compositor_timing_history.cc

Issue 1432463002: cc: Track BeginMainFrame more precisely in CompositorTimingHistory. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed unit tests. New tests to be added. Created 5 years, 1 month 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/scheduler/compositor_timing_history.h" 5 #include "cc/scheduler/compositor_timing_history.h"
6 6
7 #include "base/metrics/histogram.h" 7 #include "base/metrics/histogram.h"
8 #include "base/trace_event/trace_event.h" 8 #include "base/trace_event/trace_event.h"
9 #include "cc/debug/rendering_stats_instrumentation.h" 9 #include "cc/debug/rendering_stats_instrumentation.h"
10 10
11 namespace cc { 11 namespace cc {
12 12
13 class CompositorTimingHistory::UMAReporter { 13 class CompositorTimingHistory::UMAReporter {
14 public: 14 public:
15 virtual ~UMAReporter() {} 15 virtual ~UMAReporter() {}
16 16
17 virtual void AddBeginMainFrameToCommitDuration(base::TimeDelta duration, 17 virtual void AddBeginMainFrameToCommitDuration(base::TimeDelta duration,
18 base::TimeDelta estimate, 18 base::TimeDelta estimate,
19 bool affects_estimate) = 0; 19 bool affects_estimate) = 0;
20 virtual void AddBeginMainFrameQueueDurationCriticalDuration(
21 base::TimeDelta duration,
22 base::TimeDelta estimate,
23 bool affects_estimate) = 0;
24 virtual void AddBeginMainFrameQueueDurationNotCriticalDuration(
25 base::TimeDelta duration,
26 base::TimeDelta estimate,
27 bool affects_estimate) = 0;
28 virtual void AddBeginMainFrameStartToCommitDuration(
29 base::TimeDelta duration,
30 base::TimeDelta estimate,
31 bool affects_estimate) = 0;
20 virtual void AddCommitToReadyToActivateDuration(base::TimeDelta duration, 32 virtual void AddCommitToReadyToActivateDuration(base::TimeDelta duration,
21 base::TimeDelta estimate, 33 base::TimeDelta estimate,
22 bool affects_estimate) = 0; 34 bool affects_estimate) = 0;
23 virtual void AddPrepareTilesDuration(base::TimeDelta duration, 35 virtual void AddPrepareTilesDuration(base::TimeDelta duration,
24 base::TimeDelta estimate, 36 base::TimeDelta estimate,
25 bool affects_estimate) = 0; 37 bool affects_estimate) = 0;
26 virtual void AddActivateDuration(base::TimeDelta duration, 38 virtual void AddActivateDuration(base::TimeDelta duration,
27 base::TimeDelta estimate, 39 base::TimeDelta estimate,
28 bool affects_estimate) = 0; 40 bool affects_estimate) = 0;
29 virtual void AddDrawDuration(base::TimeDelta duration, 41 virtual void AddDrawDuration(base::TimeDelta duration,
30 base::TimeDelta estimate, 42 base::TimeDelta estimate,
31 bool affects_estimate) = 0; 43 bool affects_estimate) = 0;
32 }; 44 };
33 45
34 namespace { 46 namespace {
35 47
36 // Using the 90th percentile will disable latency recovery 48 // Using the 90th percentile will disable latency recovery
37 // if we are missing the deadline approximately ~6 times per 49 // if we are missing the deadline approximately ~6 times per
38 // second. 50 // second.
39 // TODO(brianderson): Fine tune the percentiles below. 51 // TODO(brianderson): Fine tune the percentiles below.
40 const size_t kDurationHistorySize = 60; 52 const size_t kDurationHistorySize = 60;
41 const double kBeginMainFrameToCommitEstimationPercentile = 90.0; 53 const double kBeginMainFrameToCommitEstimationPercentile = 90.0;
54 const double kBeginMainFrameQueueDurationCriticalEstimationPercentile = 90.0;
55 const double kBeginMainFrameQueueDurationNotCriticalEstimationPercentile = 90.0;
56 const double kBeginMainFrameStartToCommitEstimationPercentile = 90.0;
42 const double kCommitToReadyToActivateEstimationPercentile = 90.0; 57 const double kCommitToReadyToActivateEstimationPercentile = 90.0;
43 const double kPrepareTilesEstimationPercentile = 90.0; 58 const double kPrepareTilesEstimationPercentile = 90.0;
44 const double kActivateEstimationPercentile = 90.0; 59 const double kActivateEstimationPercentile = 90.0;
45 const double kDrawEstimationPercentile = 90.0; 60 const double kDrawEstimationPercentile = 90.0;
46 61
47 const int kUmaDurationMinMicros = 1; 62 const int kUmaDurationMinMicros = 1;
48 const int64 kUmaDurationMaxMicros = 1 * base::Time::kMicrosecondsPerSecond; 63 const int64 kUmaDurationMaxMicros = 1 * base::Time::kMicrosecondsPerSecond;
49 const size_t kUmaDurationBucketCount = 100; 64 const size_t kUmaDurationBucketCount = 100;
50 65
51 // Deprecated because they combine Browser and Renderer stats and have low 66 // Deprecated because they combine Browser and Renderer stats and have low
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 class RendererUMAReporter : public CompositorTimingHistory::UMAReporter { 118 class RendererUMAReporter : public CompositorTimingHistory::UMAReporter {
104 public: 119 public:
105 ~RendererUMAReporter() override {} 120 ~RendererUMAReporter() override {}
106 121
107 void AddBeginMainFrameToCommitDuration(base::TimeDelta duration, 122 void AddBeginMainFrameToCommitDuration(base::TimeDelta duration,
108 base::TimeDelta estimate, 123 base::TimeDelta estimate,
109 bool affects_estimate) override { 124 bool affects_estimate) override {
110 REPORT_COMPOSITOR_TIMING_HISTORY_UMA("Renderer", "BeginMainFrameToCommit"); 125 REPORT_COMPOSITOR_TIMING_HISTORY_UMA("Renderer", "BeginMainFrameToCommit");
111 } 126 }
112 127
128 void AddBeginMainFrameQueueDurationCriticalDuration(
129 base::TimeDelta duration,
130 base::TimeDelta estimate,
131 bool affects_estimate) override {
132 REPORT_COMPOSITOR_TIMING_HISTORY_UMA("Renderer",
133 "BeginMainFrameQueueDurationCritical");
134 }
135
136 void AddBeginMainFrameQueueDurationNotCriticalDuration(
137 base::TimeDelta duration,
138 base::TimeDelta estimate,
139 bool affects_estimate) override {
140 REPORT_COMPOSITOR_TIMING_HISTORY_UMA(
141 "Renderer", "BeginMainFrameQueueDurationNotCritical");
142 }
143
144 void AddBeginMainFrameStartToCommitDuration(base::TimeDelta duration,
145 base::TimeDelta estimate,
146 bool affects_estimate) override {
147 REPORT_COMPOSITOR_TIMING_HISTORY_UMA("Renderer",
148 "BeginMainFrameStartToCommit");
149 }
150
113 void AddCommitToReadyToActivateDuration(base::TimeDelta duration, 151 void AddCommitToReadyToActivateDuration(base::TimeDelta duration,
114 base::TimeDelta estimate, 152 base::TimeDelta estimate,
115 bool affects_estimate) override { 153 bool affects_estimate) override {
116 REPORT_COMPOSITOR_TIMING_HISTORY_UMA("Renderer", "CommitToReadyToActivate"); 154 REPORT_COMPOSITOR_TIMING_HISTORY_UMA("Renderer", "CommitToReadyToActivate");
117 } 155 }
118 156
119 void AddPrepareTilesDuration(base::TimeDelta duration, 157 void AddPrepareTilesDuration(base::TimeDelta duration,
120 base::TimeDelta estimate, 158 base::TimeDelta estimate,
121 bool affects_estimate) override { 159 bool affects_estimate) override {
122 REPORT_COMPOSITOR_TIMING_HISTORY_UMA("Renderer", "PrepareTiles"); 160 REPORT_COMPOSITOR_TIMING_HISTORY_UMA("Renderer", "PrepareTiles");
(...skipping 16 matching lines...) Expand all
139 class BrowserUMAReporter : public CompositorTimingHistory::UMAReporter { 177 class BrowserUMAReporter : public CompositorTimingHistory::UMAReporter {
140 public: 178 public:
141 ~BrowserUMAReporter() override {} 179 ~BrowserUMAReporter() override {}
142 180
143 void AddBeginMainFrameToCommitDuration(base::TimeDelta duration, 181 void AddBeginMainFrameToCommitDuration(base::TimeDelta duration,
144 base::TimeDelta estimate, 182 base::TimeDelta estimate,
145 bool affects_estimate) override { 183 bool affects_estimate) override {
146 REPORT_COMPOSITOR_TIMING_HISTORY_UMA("Browser", "BeginMainFrameToCommit"); 184 REPORT_COMPOSITOR_TIMING_HISTORY_UMA("Browser", "BeginMainFrameToCommit");
147 } 185 }
148 186
187 void AddBeginMainFrameQueueDurationCriticalDuration(
188 base::TimeDelta duration,
189 base::TimeDelta estimate,
190 bool affects_estimate) override {
191 REPORT_COMPOSITOR_TIMING_HISTORY_UMA("Browser",
192 "BeginMainFrameQueueDurationCritical");
193 }
194
195 void AddBeginMainFrameQueueDurationNotCriticalDuration(
196 base::TimeDelta duration,
197 base::TimeDelta estimate,
198 bool affects_estimate) override {
199 REPORT_COMPOSITOR_TIMING_HISTORY_UMA(
200 "Browser", "BeginMainFrameQueueDurationNotCritical");
201 }
202
203 void AddBeginMainFrameStartToCommitDuration(base::TimeDelta duration,
204 base::TimeDelta estimate,
205 bool affects_estimate) override {
206 REPORT_COMPOSITOR_TIMING_HISTORY_UMA("Browser",
207 "BeginMainFrameStartToCommit");
208 }
209
149 void AddCommitToReadyToActivateDuration(base::TimeDelta duration, 210 void AddCommitToReadyToActivateDuration(base::TimeDelta duration,
150 base::TimeDelta estimate, 211 base::TimeDelta estimate,
151 bool affects_estimate) override { 212 bool affects_estimate) override {
152 REPORT_COMPOSITOR_TIMING_HISTORY_UMA("Browser", "CommitToReadyToActivate"); 213 REPORT_COMPOSITOR_TIMING_HISTORY_UMA("Browser", "CommitToReadyToActivate");
153 } 214 }
154 215
155 void AddPrepareTilesDuration(base::TimeDelta duration, 216 void AddPrepareTilesDuration(base::TimeDelta duration,
156 base::TimeDelta estimate, 217 base::TimeDelta estimate,
157 bool affects_estimate) override { 218 bool affects_estimate) override {
158 REPORT_COMPOSITOR_TIMING_HISTORY_UMA("Browser", "PrepareTiles"); 219 REPORT_COMPOSITOR_TIMING_HISTORY_UMA("Browser", "PrepareTiles");
(...skipping 15 matching lines...) Expand all
174 235
175 class NullUMAReporter : public CompositorTimingHistory::UMAReporter { 236 class NullUMAReporter : public CompositorTimingHistory::UMAReporter {
176 public: 237 public:
177 ~NullUMAReporter() override {} 238 ~NullUMAReporter() override {}
178 void AddPrepareTilesDuration(base::TimeDelta duration, 239 void AddPrepareTilesDuration(base::TimeDelta duration,
179 base::TimeDelta estimate, 240 base::TimeDelta estimate,
180 bool affects_estimate) override {} 241 bool affects_estimate) override {}
181 void AddBeginMainFrameToCommitDuration(base::TimeDelta duration, 242 void AddBeginMainFrameToCommitDuration(base::TimeDelta duration,
182 base::TimeDelta estimate, 243 base::TimeDelta estimate,
183 bool affects_estimate) override {} 244 bool affects_estimate) override {}
245 void AddBeginMainFrameQueueDurationCriticalDuration(
246 base::TimeDelta duration,
247 base::TimeDelta estimate,
248 bool affects_estimate) override {}
249 void AddBeginMainFrameQueueDurationNotCriticalDuration(
250 base::TimeDelta duration,
251 base::TimeDelta estimate,
252 bool affects_estimate) override {}
253 void AddBeginMainFrameStartToCommitDuration(base::TimeDelta duration,
254 base::TimeDelta estimate,
255 bool affects_estimate) override {}
184 void AddCommitToReadyToActivateDuration(base::TimeDelta duration, 256 void AddCommitToReadyToActivateDuration(base::TimeDelta duration,
185 base::TimeDelta estimate, 257 base::TimeDelta estimate,
186 bool affects_estimate) override {} 258 bool affects_estimate) override {}
187 void AddActivateDuration(base::TimeDelta duration, 259 void AddActivateDuration(base::TimeDelta duration,
188 base::TimeDelta estimate, 260 base::TimeDelta estimate,
189 bool affects_estimate) override {} 261 bool affects_estimate) override {}
190 void AddDrawDuration(base::TimeDelta duration, 262 void AddDrawDuration(base::TimeDelta duration,
191 base::TimeDelta estimate, 263 base::TimeDelta estimate,
192 bool affects_estimate) override {} 264 bool affects_estimate) override {}
193 }; 265 };
194 266
195 } // namespace 267 } // namespace
196 268
197 CompositorTimingHistory::CompositorTimingHistory( 269 CompositorTimingHistory::CompositorTimingHistory(
198 UMACategory uma_category, 270 UMACategory uma_category,
199 RenderingStatsInstrumentation* rendering_stats_instrumentation) 271 RenderingStatsInstrumentation* rendering_stats_instrumentation)
200 : enabled_(false), 272 : enabled_(false),
201 begin_main_frame_to_commit_duration_history_(kDurationHistorySize), 273 begin_main_frame_sent_to_commit_duration_history_(kDurationHistorySize),
274 begin_main_frame_queue_duration_critical_history_(kDurationHistorySize),
275 begin_main_frame_queue_duration_not_critical_history_(
276 kDurationHistorySize),
277 begin_main_frame_start_to_commit_duration_history_(kDurationHistorySize),
202 commit_to_ready_to_activate_duration_history_(kDurationHistorySize), 278 commit_to_ready_to_activate_duration_history_(kDurationHistorySize),
203 prepare_tiles_duration_history_(kDurationHistorySize), 279 prepare_tiles_duration_history_(kDurationHistorySize),
204 activate_duration_history_(kDurationHistorySize), 280 activate_duration_history_(kDurationHistorySize),
205 draw_duration_history_(kDurationHistorySize), 281 draw_duration_history_(kDurationHistorySize),
282 begin_main_frame_on_critical_path_(false),
206 uma_reporter_(CreateUMAReporter(uma_category)), 283 uma_reporter_(CreateUMAReporter(uma_category)),
207 rendering_stats_instrumentation_(rendering_stats_instrumentation) {} 284 rendering_stats_instrumentation_(rendering_stats_instrumentation) {}
208 285
209 CompositorTimingHistory::~CompositorTimingHistory() { 286 CompositorTimingHistory::~CompositorTimingHistory() {
210 } 287 }
211 288
212 scoped_ptr<CompositorTimingHistory::UMAReporter> 289 scoped_ptr<CompositorTimingHistory::UMAReporter>
213 CompositorTimingHistory::CreateUMAReporter(UMACategory category) { 290 CompositorTimingHistory::CreateUMAReporter(UMACategory category) {
214 switch (category) { 291 switch (category) {
215 case RENDERER_UMA: 292 case RENDERER_UMA:
(...skipping 27 matching lines...) Expand all
243 base::TimeTicks CompositorTimingHistory::Now() const { 320 base::TimeTicks CompositorTimingHistory::Now() const {
244 return base::TimeTicks::Now(); 321 return base::TimeTicks::Now();
245 } 322 }
246 323
247 void CompositorTimingHistory::SetRecordingEnabled(bool enabled) { 324 void CompositorTimingHistory::SetRecordingEnabled(bool enabled) {
248 enabled_ = enabled; 325 enabled_ = enabled;
249 } 326 }
250 327
251 base::TimeDelta 328 base::TimeDelta
252 CompositorTimingHistory::BeginMainFrameToCommitDurationEstimate() const { 329 CompositorTimingHistory::BeginMainFrameToCommitDurationEstimate() const {
253 return begin_main_frame_to_commit_duration_history_.Percentile( 330 return begin_main_frame_sent_to_commit_duration_history_.Percentile(
254 kBeginMainFrameToCommitEstimationPercentile); 331 kBeginMainFrameToCommitEstimationPercentile);
255 } 332 }
256 333
257 base::TimeDelta 334 base::TimeDelta
335 CompositorTimingHistory::BeginMainFrameQueueDurationCriticalEstimate() const {
336 return begin_main_frame_queue_duration_critical_history_.Percentile(
337 kBeginMainFrameQueueDurationCriticalEstimationPercentile);
338 }
339
340 base::TimeDelta
341 CompositorTimingHistory::BeginMainFrameQueueDurationNotCriticalEstimate()
342 const {
343 return begin_main_frame_queue_duration_not_critical_history_.Percentile(
344 kBeginMainFrameQueueDurationNotCriticalEstimationPercentile);
345 }
346
347 base::TimeDelta
348 CompositorTimingHistory::BeginMainFrameStartToCommitDurationEstimate() const {
349 return begin_main_frame_start_to_commit_duration_history_.Percentile(
350 kBeginMainFrameStartToCommitEstimationPercentile);
351 }
352
353 base::TimeDelta
258 CompositorTimingHistory::CommitToReadyToActivateDurationEstimate() const { 354 CompositorTimingHistory::CommitToReadyToActivateDurationEstimate() const {
259 return commit_to_ready_to_activate_duration_history_.Percentile( 355 return commit_to_ready_to_activate_duration_history_.Percentile(
260 kCommitToReadyToActivateEstimationPercentile); 356 kCommitToReadyToActivateEstimationPercentile);
261 } 357 }
262 358
263 base::TimeDelta CompositorTimingHistory::PrepareTilesDurationEstimate() const { 359 base::TimeDelta CompositorTimingHistory::PrepareTilesDurationEstimate() const {
264 return prepare_tiles_duration_history_.Percentile( 360 return prepare_tiles_duration_history_.Percentile(
265 kPrepareTilesEstimationPercentile); 361 kPrepareTilesEstimationPercentile);
266 } 362 }
267 363
268 base::TimeDelta CompositorTimingHistory::ActivateDurationEstimate() const { 364 base::TimeDelta CompositorTimingHistory::ActivateDurationEstimate() const {
269 return activate_duration_history_.Percentile(kActivateEstimationPercentile); 365 return activate_duration_history_.Percentile(kActivateEstimationPercentile);
270 } 366 }
271 367
272 base::TimeDelta CompositorTimingHistory::DrawDurationEstimate() const { 368 base::TimeDelta CompositorTimingHistory::DrawDurationEstimate() const {
273 return draw_duration_history_.Percentile(kDrawEstimationPercentile); 369 return draw_duration_history_.Percentile(kDrawEstimationPercentile);
274 } 370 }
275 371
276 void CompositorTimingHistory::WillBeginMainFrame() { 372 void CompositorTimingHistory::WillBeginMainFrame(bool on_critical_path) {
277 DCHECK_EQ(base::TimeTicks(), begin_main_frame_sent_time_); 373 DCHECK_EQ(base::TimeTicks(), begin_main_frame_sent_time_);
374 begin_main_frame_on_critical_path_ = on_critical_path;
278 begin_main_frame_sent_time_ = Now(); 375 begin_main_frame_sent_time_ = Now();
279 } 376 }
280 377
378 void CompositorTimingHistory::BeginMainFrameStarted(
379 base::TimeTicks main_thread_start_time) {
380 DCHECK_NE(base::TimeTicks(), begin_main_frame_sent_time_);
381 DCHECK_EQ(base::TimeTicks(), begin_main_frame_start_time_);
382 begin_main_frame_start_time_ = main_thread_start_time;
383 }
384
281 void CompositorTimingHistory::BeginMainFrameAborted() { 385 void CompositorTimingHistory::BeginMainFrameAborted() {
282 DidCommit(); 386 DidCommit();
283 } 387 }
284 388
285 void CompositorTimingHistory::DidCommit() { 389 void CompositorTimingHistory::DidCommit() {
286 DCHECK_NE(base::TimeTicks(), begin_main_frame_sent_time_); 390 DCHECK_NE(base::TimeTicks(), begin_main_frame_sent_time_);
287 391
288 commit_time_ = Now(); 392 commit_time_ = Now();
289 393
290 base::TimeDelta begin_main_frame_to_commit_duration = 394 bool begin_main_frame_start_time_is_valid =
395 !begin_main_frame_start_time_.is_null();
396 if (!begin_main_frame_start_time_is_valid)
397 begin_main_frame_start_time_ = begin_main_frame_sent_time_;
398
399 base::TimeDelta begin_main_frame_sent_to_commit_duration =
291 commit_time_ - begin_main_frame_sent_time_; 400 commit_time_ - begin_main_frame_sent_time_;
401 base::TimeDelta begin_main_frame_queue_duration =
402 begin_main_frame_start_time_ - begin_main_frame_sent_time_;
403 base::TimeDelta begin_main_frame_start_to_commit_duration =
404 commit_time_ - begin_main_frame_start_time_;
292 405
293 // Before adding the new data point to the timing history, see what we would 406 // Before adding the new data point to the timing history, see what we would
294 // have predicted for this frame. This allows us to keep track of the accuracy 407 // have predicted for this frame. This allows us to keep track of the accuracy
295 // of our predictions. 408 // of our predictions.
296 base::TimeDelta begin_main_frame_to_commit_estimate = 409 base::TimeDelta begin_main_frame_to_commit_estimate =
297 BeginMainFrameToCommitDurationEstimate(); 410 BeginMainFrameToCommitDurationEstimate();
298 uma_reporter_->AddBeginMainFrameToCommitDuration( 411 uma_reporter_->AddBeginMainFrameToCommitDuration(
299 begin_main_frame_to_commit_duration, begin_main_frame_to_commit_estimate, 412 begin_main_frame_sent_to_commit_duration,
300 enabled_); 413 begin_main_frame_to_commit_estimate, enabled_);
301 rendering_stats_instrumentation_->AddBeginMainFrameToCommitDuration( 414 rendering_stats_instrumentation_->AddBeginMainFrameToCommitDuration(
302 begin_main_frame_to_commit_duration, begin_main_frame_to_commit_estimate); 415 begin_main_frame_sent_to_commit_duration,
416 begin_main_frame_to_commit_estimate);
417
418 if (begin_main_frame_start_time_is_valid) {
419 if (begin_main_frame_on_critical_path_) {
420 uma_reporter_->AddBeginMainFrameQueueDurationCriticalDuration(
421 begin_main_frame_queue_duration,
422 BeginMainFrameQueueDurationCriticalEstimate(), enabled_);
423 } else {
424 uma_reporter_->AddBeginMainFrameQueueDurationNotCriticalDuration(
425 begin_main_frame_queue_duration,
426 BeginMainFrameQueueDurationNotCriticalEstimate(), enabled_);
427 }
428 }
429
430 uma_reporter_->AddBeginMainFrameStartToCommitDuration(
431 begin_main_frame_start_to_commit_duration,
432 BeginMainFrameStartToCommitDurationEstimate(), enabled_);
303 433
304 if (enabled_) { 434 if (enabled_) {
305 begin_main_frame_to_commit_duration_history_.InsertSample( 435 begin_main_frame_sent_to_commit_duration_history_.InsertSample(
306 begin_main_frame_to_commit_duration); 436 begin_main_frame_sent_to_commit_duration);
437 if (begin_main_frame_on_critical_path_) {
438 begin_main_frame_queue_duration_critical_history_.InsertSample(
439 begin_main_frame_queue_duration);
440 } else {
441 begin_main_frame_queue_duration_not_critical_history_.InsertSample(
442 begin_main_frame_queue_duration);
443 }
444 begin_main_frame_start_to_commit_duration_history_.InsertSample(
445 begin_main_frame_start_to_commit_duration);
307 } 446 }
308 447
309 begin_main_frame_sent_time_ = base::TimeTicks(); 448 begin_main_frame_sent_time_ = base::TimeTicks();
449 begin_main_frame_start_time_ = base::TimeTicks();
310 } 450 }
311 451
312 void CompositorTimingHistory::WillPrepareTiles() { 452 void CompositorTimingHistory::WillPrepareTiles() {
313 DCHECK_EQ(base::TimeTicks(), start_prepare_tiles_time_); 453 DCHECK_EQ(base::TimeTicks(), start_prepare_tiles_time_);
314 start_prepare_tiles_time_ = Now(); 454 start_prepare_tiles_time_ = Now();
315 } 455 }
316 456
317 void CompositorTimingHistory::DidPrepareTiles() { 457 void CompositorTimingHistory::DidPrepareTiles() {
318 DCHECK_NE(base::TimeTicks(), start_prepare_tiles_time_); 458 DCHECK_NE(base::TimeTicks(), start_prepare_tiles_time_);
319 459
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 uma_reporter_->AddDrawDuration(draw_duration, draw_estimate, enabled_); 529 uma_reporter_->AddDrawDuration(draw_duration, draw_estimate, enabled_);
390 530
391 if (enabled_) { 531 if (enabled_) {
392 draw_duration_history_.InsertSample(draw_duration); 532 draw_duration_history_.InsertSample(draw_duration);
393 } 533 }
394 534
395 start_draw_time_ = base::TimeTicks(); 535 start_draw_time_ = base::TimeTicks();
396 } 536 }
397 537
398 } // namespace cc 538 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698