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

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

Issue 913203006: cc: Calculate "can use lcd text" on the compositor thread (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove tuple to fix Android compile Created 5 years, 10 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.h ('k') | cc/trees/layer_tree_host_common_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.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
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
126 min_page_scale_factor_(1.f), 126 min_page_scale_factor_(1.f),
127 max_page_scale_factor_(1.f), 127 max_page_scale_factor_(1.f),
128 has_gpu_rasterization_trigger_(false), 128 has_gpu_rasterization_trigger_(false),
129 content_is_suitable_for_gpu_rasterization_(true), 129 content_is_suitable_for_gpu_rasterization_(true),
130 gpu_rasterization_histogram_recorded_(false), 130 gpu_rasterization_histogram_recorded_(false),
131 background_color_(SK_ColorWHITE), 131 background_color_(SK_ColorWHITE),
132 has_transparent_background_(false), 132 has_transparent_background_(false),
133 partial_texture_update_requests_(0), 133 partial_texture_update_requests_(0),
134 did_complete_scale_animation_(false), 134 did_complete_scale_animation_(false),
135 in_paint_layer_contents_(false), 135 in_paint_layer_contents_(false),
136 total_frames_used_for_lcd_text_metrics_(0),
137 id_(s_layer_tree_host_sequence_number.GetNext() + 1), 136 id_(s_layer_tree_host_sequence_number.GetNext() + 1),
138 next_commit_forces_redraw_(false), 137 next_commit_forces_redraw_(false),
139 shared_bitmap_manager_(shared_bitmap_manager), 138 shared_bitmap_manager_(shared_bitmap_manager),
140 gpu_memory_buffer_manager_(gpu_memory_buffer_manager), 139 gpu_memory_buffer_manager_(gpu_memory_buffer_manager),
141 surface_id_namespace_(0u), 140 surface_id_namespace_(0u),
142 next_surface_sequence_(1u) { 141 next_surface_sequence_(1u) {
143 if (settings_.accelerated_animation_enabled) 142 if (settings_.accelerated_animation_enabled)
144 animation_registrar_ = AnimationRegistrar::Create(); 143 animation_registrar_ = AnimationRegistrar::Create();
145 rendering_stats_instrumentation_->set_record_rendering_stats( 144 rendering_stats_instrumentation_->set_record_rendering_stats(
146 debug_state_.RecordRenderingStats()); 145 debug_state_.RecordRenderingStats());
(...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after
806 content_is_suitable_for_gpu_rasterization_); 805 content_is_suitable_for_gpu_rasterization_);
807 // Record how many pages actually get gpu rasterization when enabled. 806 // Record how many pages actually get gpu rasterization when enabled.
808 UMA_HISTOGRAM_BOOLEAN("Renderer4.GpuRasterizationUsed", 807 UMA_HISTOGRAM_BOOLEAN("Renderer4.GpuRasterizationUsed",
809 (has_gpu_rasterization_trigger_ && 808 (has_gpu_rasterization_trigger_ &&
810 content_is_suitable_for_gpu_rasterization_)); 809 content_is_suitable_for_gpu_rasterization_));
811 } 810 }
812 811
813 gpu_rasterization_histogram_recorded_ = true; 812 gpu_rasterization_histogram_recorded_ = true;
814 } 813 }
815 814
816 void LayerTreeHost::CalculateLCDTextMetricsCallback(Layer* layer) {
817 if (!layer->SupportsLCDText())
818 return;
819
820 lcd_text_metrics_.total_num_cc_layers++;
821 if (layer->draw_properties().can_use_lcd_text) {
822 lcd_text_metrics_.total_num_cc_layers_can_use_lcd_text++;
823 if (layer->contents_opaque())
824 lcd_text_metrics_.total_num_cc_layers_will_use_lcd_text++;
825 }
826 }
827
828 bool LayerTreeHost::UsingSharedMemoryResources() { 815 bool LayerTreeHost::UsingSharedMemoryResources() {
829 return GetRendererCapabilities().using_shared_memory_resources; 816 return GetRendererCapabilities().using_shared_memory_resources;
830 } 817 }
831 818
832 bool LayerTreeHost::UpdateLayers(Layer* root_layer, 819 bool LayerTreeHost::UpdateLayers(Layer* root_layer,
833 ResourceUpdateQueue* queue) { 820 ResourceUpdateQueue* queue) {
834 TRACE_EVENT1("cc", "LayerTreeHost::UpdateLayers", 821 TRACE_EVENT1("cc", "LayerTreeHost::UpdateLayers",
835 "source_frame_number", source_frame_number()); 822 "source_frame_number", source_frame_number());
836 823
837 RenderSurfaceLayerList update_list; 824 RenderSurfaceLayerList update_list;
(...skipping 20 matching lines...) Expand all
858 root_layer, device_viewport_size(), gfx::Transform(), 845 root_layer, device_viewport_size(), gfx::Transform(),
859 device_scale_factor_, page_scale_factor_, page_scale_layer, 846 device_scale_factor_, page_scale_factor_, page_scale_layer,
860 elastic_overscroll_, overscroll_elasticity_layer_.get(), 847 elastic_overscroll_, overscroll_elasticity_layer_.get(),
861 GetRendererCapabilities().max_texture_size, settings_.can_use_lcd_text, 848 GetRendererCapabilities().max_texture_size, settings_.can_use_lcd_text,
862 settings_.layers_always_allowed_lcd_text, 849 settings_.layers_always_allowed_lcd_text,
863 can_render_to_separate_surface, 850 can_render_to_separate_surface,
864 settings_.layer_transforms_should_scale_layer_contents, 851 settings_.layer_transforms_should_scale_layer_contents,
865 settings_.verify_property_trees, &update_list, 852 settings_.verify_property_trees, &update_list,
866 render_surface_layer_list_id); 853 render_surface_layer_list_id);
867 LayerTreeHostCommon::CalculateDrawProperties(&inputs); 854 LayerTreeHostCommon::CalculateDrawProperties(&inputs);
868
869 if (total_frames_used_for_lcd_text_metrics_ <=
870 kTotalFramesToUseForLCDTextMetrics) {
871 LayerTreeHostCommon::CallFunctionForSubtree(
872 root_layer,
873 base::Bind(&LayerTreeHost::CalculateLCDTextMetricsCallback,
874 base::Unretained(this)));
875 total_frames_used_for_lcd_text_metrics_++;
876 }
877
878 if (total_frames_used_for_lcd_text_metrics_ ==
879 kTotalFramesToUseForLCDTextMetrics) {
880 total_frames_used_for_lcd_text_metrics_++;
881
882 UMA_HISTOGRAM_PERCENTAGE(
883 "Renderer4.LCDText.PercentageOfCandidateLayers",
884 lcd_text_metrics_.total_num_cc_layers_can_use_lcd_text * 100.0 /
885 lcd_text_metrics_.total_num_cc_layers);
886 UMA_HISTOGRAM_PERCENTAGE(
887 "Renderer4.LCDText.PercentageOfAALayers",
888 lcd_text_metrics_.total_num_cc_layers_will_use_lcd_text * 100.0 /
889 lcd_text_metrics_.total_num_cc_layers_can_use_lcd_text);
890 }
891 } 855 }
892 856
893 // Reset partial texture update requests. 857 // Reset partial texture update requests.
894 partial_texture_update_requests_ = 0; 858 partial_texture_update_requests_ = 0;
895 859
896 bool did_paint_content = false; 860 bool did_paint_content = false;
897 bool need_more_updates = false; 861 bool need_more_updates = false;
898 PaintLayerContents( 862 PaintLayerContents(
899 update_list, queue, &did_paint_content, &need_more_updates); 863 update_list, queue, &did_paint_content, &need_more_updates);
900 if (need_more_updates) { 864 if (need_more_updates) {
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after
1374 bool children_need_begin_frames) const { 1338 bool children_need_begin_frames) const {
1375 proxy_->SetChildrenNeedBeginFrames(children_need_begin_frames); 1339 proxy_->SetChildrenNeedBeginFrames(children_need_begin_frames);
1376 } 1340 }
1377 1341
1378 void LayerTreeHost::SendBeginFramesToChildren( 1342 void LayerTreeHost::SendBeginFramesToChildren(
1379 const BeginFrameArgs& args) const { 1343 const BeginFrameArgs& args) const {
1380 client_->SendBeginFramesToChildren(args); 1344 client_->SendBeginFramesToChildren(args);
1381 } 1345 }
1382 1346
1383 } // namespace cc 1347 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host.h ('k') | cc/trees/layer_tree_host_common_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698