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

Side by Side Diff: cc/trees/layer_tree_host_impl.cc

Issue 2946223003: cc: Add UMA to measure the raster duration for pending tree activation. (Closed)
Patch Set: tests Created 3 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 unified diff | Download patch
« no previous file with comments | « cc/trees/layer_tree_host_impl.h ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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/trees/layer_tree_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 } else { 154 } else {
155 UMA_HISTOGRAM_BOOLEAN("Renderer4.CompositorTouchScrollUpdateThread", 155 UMA_HISTOGRAM_BOOLEAN("Renderer4.CompositorTouchScrollUpdateThread",
156 scroll_on_main_thread); 156 scroll_on_main_thread);
157 } 157 }
158 } 158 }
159 159
160 } // namespace 160 } // namespace
161 161
162 DEFINE_SCOPED_UMA_HISTOGRAM_TIMER(PendingTreeDurationHistogramTimer, 162 DEFINE_SCOPED_UMA_HISTOGRAM_TIMER(PendingTreeDurationHistogramTimer,
163 "Scheduling.%s.PendingTreeDuration"); 163 "Scheduling.%s.PendingTreeDuration");
164 DEFINE_SCOPED_UMA_HISTOGRAM_TIMER(PendingTreeRasterDurationHistogramTimer,
165 "Scheduling.%s.PendingTreeRasterDuration");
164 166
165 LayerTreeHostImpl::FrameData::FrameData() 167 LayerTreeHostImpl::FrameData::FrameData()
166 : render_surface_list(nullptr), 168 : render_surface_list(nullptr),
167 has_no_damage(false), 169 has_no_damage(false),
168 may_contain_video(false) {} 170 may_contain_video(false) {}
169 171
170 LayerTreeHostImpl::FrameData::~FrameData() {} 172 LayerTreeHostImpl::FrameData::~FrameData() {}
171 173
172 std::unique_ptr<LayerTreeHostImpl> LayerTreeHostImpl::Create( 174 std::unique_ptr<LayerTreeHostImpl> LayerTreeHostImpl::Create(
173 const LayerTreeSettings& settings, 175 const LayerTreeSettings& settings,
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
380 bool did_prepare_tiles = PrepareTiles(); 382 bool did_prepare_tiles = PrepareTiles();
381 if (!did_prepare_tiles) { 383 if (!did_prepare_tiles) {
382 NotifyReadyToActivate(); 384 NotifyReadyToActivate();
383 385
384 // Ensure we get ReadyToDraw signal even when PrepareTiles not run. This 386 // Ensure we get ReadyToDraw signal even when PrepareTiles not run. This
385 // is important for SingleThreadProxy and impl-side painting case. For 387 // is important for SingleThreadProxy and impl-side painting case. For
386 // STP, we commit to active tree and RequiresHighResToDraw, and set 388 // STP, we commit to active tree and RequiresHighResToDraw, and set
387 // Scheduler to wait for ReadyToDraw signal to avoid Checkerboard. 389 // Scheduler to wait for ReadyToDraw signal to avoid Checkerboard.
388 if (CommitToActiveTree()) 390 if (CommitToActiveTree())
389 NotifyReadyToDraw(); 391 NotifyReadyToDraw();
392 } else if (!CommitToActiveTree()) {
393 DCHECK(!pending_tree_raster_duration_timer_);
394 pending_tree_raster_duration_timer_ =
395 base::MakeUnique<PendingTreeRasterDurationHistogramTimer>();
390 } 396 }
391 } 397 }
392 398
393 bool LayerTreeHostImpl::CanDraw() const { 399 bool LayerTreeHostImpl::CanDraw() const {
394 // Note: If you are changing this function or any other function that might 400 // Note: If you are changing this function or any other function that might
395 // affect the result of CanDraw, make sure to call 401 // affect the result of CanDraw, make sure to call
396 // client_->OnCanDrawStateChanged in the proper places and update the 402 // client_->OnCanDrawStateChanged in the proper places and update the
397 // NotifyIfCanDrawChanged test. 403 // NotifyIfCanDrawChanged test.
398 404
399 if (!layer_tree_frame_sink_) { 405 if (!layer_tree_frame_sink_) {
(...skipping 969 matching lines...) Expand 10 before | Expand all | Expand 10 after
1369 if (!result.IsValid()) 1375 if (!result.IsValid())
1370 result = gfx::ColorSpace::CreateSRGB(); 1376 result = gfx::ColorSpace::CreateSRGB();
1371 return result; 1377 return result;
1372 } 1378 }
1373 1379
1374 void LayerTreeHostImpl::RequestImplSideInvalidation() { 1380 void LayerTreeHostImpl::RequestImplSideInvalidation() {
1375 client_->NeedsImplSideInvalidation(); 1381 client_->NeedsImplSideInvalidation();
1376 } 1382 }
1377 1383
1378 void LayerTreeHostImpl::NotifyReadyToActivate() { 1384 void LayerTreeHostImpl::NotifyReadyToActivate() {
1385 pending_tree_raster_duration_timer_.reset();
1379 client_->NotifyReadyToActivate(); 1386 client_->NotifyReadyToActivate();
1380 } 1387 }
1381 1388
1382 void LayerTreeHostImpl::NotifyReadyToDraw() { 1389 void LayerTreeHostImpl::NotifyReadyToDraw() {
1383 // Tiles that are ready will cause NotifyTileStateChanged() to be called so we 1390 // Tiles that are ready will cause NotifyTileStateChanged() to be called so we
1384 // don't need to schedule a draw here. Just stop WillBeginImplFrame() from 1391 // don't need to schedule a draw here. Just stop WillBeginImplFrame() from
1385 // causing optimistic requests to draw a frame. 1392 // causing optimistic requests to draw a frame.
1386 is_likely_to_require_a_draw_ = false; 1393 is_likely_to_require_a_draw_ = false;
1387 1394
1388 client_->NotifyReadyToDraw(); 1395 client_->NotifyReadyToDraw();
(...skipping 2925 matching lines...) Expand 10 before | Expand all | Expand 10 after
4314 4321
4315 void LayerTreeHostImpl::ShowScrollbarsForImplScroll(ElementId element_id) { 4322 void LayerTreeHostImpl::ShowScrollbarsForImplScroll(ElementId element_id) {
4316 if (!element_id) 4323 if (!element_id)
4317 return; 4324 return;
4318 if (ScrollbarAnimationController* animation_controller = 4325 if (ScrollbarAnimationController* animation_controller =
4319 ScrollbarAnimationControllerForElementId(element_id)) 4326 ScrollbarAnimationControllerForElementId(element_id))
4320 animation_controller->DidScrollUpdate(); 4327 animation_controller->DidScrollUpdate();
4321 } 4328 }
4322 4329
4323 } // namespace cc 4330 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.h ('k') | cc/trees/layer_tree_host_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698