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

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

Issue 195803003: cc: Remove OverdrawMetrics and --trace-overdraw flag. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rm-overdraw: switches Created 6 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « cc/trees/layer_tree_host.h ('k') | cc/trees/layer_tree_host_impl.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.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <stack> 8 #include <stack>
9 #include <string> 9 #include <string>
10 10
11 #include "base/atomic_sequence_num.h" 11 #include "base/atomic_sequence_num.h"
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/command_line.h" 13 #include "base/command_line.h"
14 #include "base/debug/trace_event.h" 14 #include "base/debug/trace_event.h"
15 #include "base/message_loop/message_loop.h" 15 #include "base/message_loop/message_loop.h"
16 #include "base/metrics/histogram.h" 16 #include "base/metrics/histogram.h"
17 #include "base/stl_util.h" 17 #include "base/stl_util.h"
18 #include "base/strings/string_number_conversions.h" 18 #include "base/strings/string_number_conversions.h"
19 #include "cc/animation/animation_registrar.h" 19 #include "cc/animation/animation_registrar.h"
20 #include "cc/animation/layer_animation_controller.h" 20 #include "cc/animation/layer_animation_controller.h"
21 #include "cc/base/math_util.h" 21 #include "cc/base/math_util.h"
22 #include "cc/debug/devtools_instrumentation.h" 22 #include "cc/debug/devtools_instrumentation.h"
23 #include "cc/debug/overdraw_metrics.h"
24 #include "cc/debug/rendering_stats_instrumentation.h" 23 #include "cc/debug/rendering_stats_instrumentation.h"
25 #include "cc/input/top_controls_manager.h" 24 #include "cc/input/top_controls_manager.h"
26 #include "cc/layers/heads_up_display_layer.h" 25 #include "cc/layers/heads_up_display_layer.h"
27 #include "cc/layers/heads_up_display_layer_impl.h" 26 #include "cc/layers/heads_up_display_layer_impl.h"
28 #include "cc/layers/layer.h" 27 #include "cc/layers/layer.h"
29 #include "cc/layers/layer_iterator.h" 28 #include "cc/layers/layer_iterator.h"
30 #include "cc/layers/painted_scrollbar_layer.h" 29 #include "cc/layers/painted_scrollbar_layer.h"
31 #include "cc/layers/render_surface.h" 30 #include "cc/layers/render_surface.h"
32 #include "cc/resources/prioritized_resource_manager.h" 31 #include "cc/resources/prioritized_resource_manager.h"
33 #include "cc/resources/ui_resource_request.h" 32 #include "cc/resources/ui_resource_request.h"
(...skipping 862 matching lines...) Expand 10 before | Expand all | Expand 10 after
896 } else if (it.represents_target_render_surface()) { 895 } else if (it.represents_target_render_surface()) {
897 if (it->mask_layer()) 896 if (it->mask_layer())
898 it->mask_layer()->SetTexturePriorities(calculator); 897 it->mask_layer()->SetTexturePriorities(calculator);
899 if (it->replica_layer() && it->replica_layer()->mask_layer()) 898 if (it->replica_layer() && it->replica_layer()->mask_layer())
900 it->replica_layer()->mask_layer()->SetTexturePriorities(calculator); 899 it->replica_layer()->mask_layer()->SetTexturePriorities(calculator);
901 } 900 }
902 } 901 }
903 } 902 }
904 903
905 void LayerTreeHost::PrioritizeTextures( 904 void LayerTreeHost::PrioritizeTextures(
906 const RenderSurfaceLayerList& render_surface_layer_list, 905 const RenderSurfaceLayerList& render_surface_layer_list) {
907 OverdrawMetrics* metrics) {
908 if (!contents_texture_manager_) 906 if (!contents_texture_manager_)
909 return; 907 return;
910 908
911 contents_texture_manager_->ClearPriorities(); 909 contents_texture_manager_->ClearPriorities();
912 910
913 size_t memory_for_render_surfaces_metric = 911 size_t memory_for_render_surfaces_metric =
914 CalculateMemoryForRenderSurfaces(render_surface_layer_list); 912 CalculateMemoryForRenderSurfaces(render_surface_layer_list);
915 913
916 SetPrioritiesForLayers(render_surface_layer_list); 914 SetPrioritiesForLayers(render_surface_layer_list);
917 SetPrioritiesForSurfaces(memory_for_render_surfaces_metric); 915 SetPrioritiesForSurfaces(memory_for_render_surfaces_metric);
918 916
919 metrics->DidUseContentsTextureMemoryBytes(
920 contents_texture_manager_->MemoryAboveCutoffBytes());
921 metrics->DidUseRenderSurfaceTextureMemoryBytes(
922 memory_for_render_surfaces_metric);
923
924 contents_texture_manager_->PrioritizeTextures(); 917 contents_texture_manager_->PrioritizeTextures();
925 } 918 }
926 919
927 size_t LayerTreeHost::CalculateMemoryForRenderSurfaces( 920 size_t LayerTreeHost::CalculateMemoryForRenderSurfaces(
928 const RenderSurfaceLayerList& update_list) { 921 const RenderSurfaceLayerList& update_list) {
929 size_t readback_bytes = 0; 922 size_t readback_bytes = 0;
930 size_t max_background_texture_bytes = 0; 923 size_t max_background_texture_bytes = 0;
931 size_t contents_texture_bytes = 0; 924 size_t contents_texture_bytes = 0;
932 925
933 // Start iteration at 1 to skip the root surface as it does not have a texture 926 // Start iteration at 1 to skip the root surface as it does not have a texture
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
976 *did_paint_content |= replica_mask_layer->Update(queue, NULL); 969 *did_paint_content |= replica_mask_layer->Update(queue, NULL);
977 *need_more_updates |= replica_mask_layer->NeedMoreUpdates(); 970 *need_more_updates |= replica_mask_layer->NeedMoreUpdates();
978 } 971 }
979 } 972 }
980 973
981 void LayerTreeHost::PaintLayerContents( 974 void LayerTreeHost::PaintLayerContents(
982 const RenderSurfaceLayerList& render_surface_layer_list, 975 const RenderSurfaceLayerList& render_surface_layer_list,
983 ResourceUpdateQueue* queue, 976 ResourceUpdateQueue* queue,
984 bool* did_paint_content, 977 bool* did_paint_content,
985 bool* need_more_updates) { 978 bool* need_more_updates) {
986 bool record_metrics_for_frame =
987 settings_.show_overdraw_in_tracing &&
988 base::debug::TraceLog::GetInstance() &&
989 base::debug::TraceLog::GetInstance()->IsEnabled();
990 OcclusionTracker<Layer> occlusion_tracker( 979 OcclusionTracker<Layer> occlusion_tracker(
991 root_layer_->render_surface()->content_rect(), record_metrics_for_frame); 980 root_layer_->render_surface()->content_rect());
992 occlusion_tracker.set_minimum_tracking_size( 981 occlusion_tracker.set_minimum_tracking_size(
993 settings_.minimum_occlusion_tracking_size); 982 settings_.minimum_occlusion_tracking_size);
994 983
995 PrioritizeTextures(render_surface_layer_list, 984 PrioritizeTextures(render_surface_layer_list);
996 occlusion_tracker.overdraw_metrics());
997 985
998 in_paint_layer_contents_ = true; 986 in_paint_layer_contents_ = true;
999 987
1000 // Iterates front-to-back to allow for testing occlusion and performing 988 // Iterates front-to-back to allow for testing occlusion and performing
1001 // culling during the tree walk. 989 // culling during the tree walk.
1002 typedef LayerIterator<Layer> LayerIteratorType; 990 typedef LayerIterator<Layer> LayerIteratorType;
1003 LayerIteratorType end = LayerIteratorType::End(&render_surface_layer_list); 991 LayerIteratorType end = LayerIteratorType::End(&render_surface_layer_list);
1004 for (LayerIteratorType it = 992 for (LayerIteratorType it =
1005 LayerIteratorType::Begin(&render_surface_layer_list); 993 LayerIteratorType::Begin(&render_surface_layer_list);
1006 it != end; 994 it != end;
1007 ++it) { 995 ++it) {
1008 occlusion_tracker.EnterLayer(it); 996 occlusion_tracker.EnterLayer(it);
1009 997
1010 if (it.represents_target_render_surface()) { 998 if (it.represents_target_render_surface()) {
1011 PaintMasksForRenderSurface( 999 PaintMasksForRenderSurface(
1012 *it, queue, did_paint_content, need_more_updates); 1000 *it, queue, did_paint_content, need_more_updates);
1013 } else if (it.represents_itself() && it->DrawsContent()) { 1001 } else if (it.represents_itself() && it->DrawsContent()) {
1014 DCHECK(!it->paint_properties().bounds.IsEmpty()); 1002 DCHECK(!it->paint_properties().bounds.IsEmpty());
1015 *did_paint_content |= it->Update(queue, &occlusion_tracker); 1003 *did_paint_content |= it->Update(queue, &occlusion_tracker);
1016 *need_more_updates |= it->NeedMoreUpdates(); 1004 *need_more_updates |= it->NeedMoreUpdates();
1017 } 1005 }
1018 1006
1019 occlusion_tracker.LeaveLayer(it); 1007 occlusion_tracker.LeaveLayer(it);
1020 } 1008 }
1021 1009
1022 in_paint_layer_contents_ = false; 1010 in_paint_layer_contents_ = false;
1023
1024 occlusion_tracker.overdraw_metrics()->RecordMetrics(this);
1025 } 1011 }
1026 1012
1027 void LayerTreeHost::ApplyScrollAndScale(const ScrollAndScaleSet& info) { 1013 void LayerTreeHost::ApplyScrollAndScale(const ScrollAndScaleSet& info) {
1028 if (!root_layer_.get()) 1014 if (!root_layer_.get())
1029 return; 1015 return;
1030 1016
1031 gfx::Vector2d inner_viewport_scroll_delta; 1017 gfx::Vector2d inner_viewport_scroll_delta;
1032 gfx::Vector2d outer_viewport_scroll_delta; 1018 gfx::Vector2d outer_viewport_scroll_delta;
1033 1019
1034 for (size_t i = 0; i < info.scrolls.size(); ++i) { 1020 for (size_t i = 0; i < info.scrolls.size(); ++i) {
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
1310 swap_promise_list_.push_back(swap_promise.Pass()); 1296 swap_promise_list_.push_back(swap_promise.Pass());
1311 } 1297 }
1312 1298
1313 void LayerTreeHost::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) { 1299 void LayerTreeHost::BreakSwapPromises(SwapPromise::DidNotSwapReason reason) {
1314 for (size_t i = 0; i < swap_promise_list_.size(); i++) 1300 for (size_t i = 0; i < swap_promise_list_.size(); i++)
1315 swap_promise_list_[i]->DidNotSwap(reason); 1301 swap_promise_list_[i]->DidNotSwap(reason);
1316 swap_promise_list_.clear(); 1302 swap_promise_list_.clear();
1317 } 1303 }
1318 1304
1319 } // namespace cc 1305 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host.h ('k') | cc/trees/layer_tree_host_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698