Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 655 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 802 content_is_suitable_for_gpu_rasterization_); | 801 content_is_suitable_for_gpu_rasterization_); |
| 803 // Record how many pages actually get gpu rasterization when enabled. | 802 // Record how many pages actually get gpu rasterization when enabled. |
| 804 UMA_HISTOGRAM_BOOLEAN("Renderer4.GpuRasterizationUsed", | 803 UMA_HISTOGRAM_BOOLEAN("Renderer4.GpuRasterizationUsed", |
| 805 (has_gpu_rasterization_trigger_ && | 804 (has_gpu_rasterization_trigger_ && |
| 806 content_is_suitable_for_gpu_rasterization_)); | 805 content_is_suitable_for_gpu_rasterization_)); |
| 807 } | 806 } |
| 808 | 807 |
| 809 gpu_rasterization_histogram_recorded_ = true; | 808 gpu_rasterization_histogram_recorded_ = true; |
| 810 } | 809 } |
| 811 | 810 |
| 812 void LayerTreeHost::CalculateLCDTextMetricsCallback(Layer* layer) { | |
| 813 if (!layer->SupportsLCDText()) | |
| 814 return; | |
| 815 | |
| 816 lcd_text_metrics_.total_num_cc_layers++; | |
| 817 if (layer->draw_properties().can_use_lcd_text) { | |
| 818 lcd_text_metrics_.total_num_cc_layers_can_use_lcd_text++; | |
| 819 if (layer->contents_opaque()) | |
| 820 lcd_text_metrics_.total_num_cc_layers_will_use_lcd_text++; | |
| 821 } | |
| 822 } | |
| 823 | |
| 824 bool LayerTreeHost::UsingSharedMemoryResources() { | 811 bool LayerTreeHost::UsingSharedMemoryResources() { |
| 825 return GetRendererCapabilities().using_shared_memory_resources; | 812 return GetRendererCapabilities().using_shared_memory_resources; |
| 826 } | 813 } |
| 827 | 814 |
| 828 bool LayerTreeHost::UpdateLayers(Layer* root_layer, | 815 bool LayerTreeHost::UpdateLayers(Layer* root_layer, |
| 829 ResourceUpdateQueue* queue) { | 816 ResourceUpdateQueue* queue) { |
| 830 TRACE_EVENT1("cc", "LayerTreeHost::UpdateLayers", | 817 TRACE_EVENT1("cc", "LayerTreeHost::UpdateLayers", |
| 831 "source_frame_number", source_frame_number()); | 818 "source_frame_number", source_frame_number()); |
| 832 | 819 |
| 833 RenderSurfaceLayerList update_list; | 820 RenderSurfaceLayerList update_list; |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 854 root_layer, device_viewport_size(), gfx::Transform(), | 841 root_layer, device_viewport_size(), gfx::Transform(), |
| 855 device_scale_factor_, page_scale_factor_, page_scale_layer, | 842 device_scale_factor_, page_scale_factor_, page_scale_layer, |
| 856 elastic_overscroll_, overscroll_elasticity_layer_.get(), | 843 elastic_overscroll_, overscroll_elasticity_layer_.get(), |
| 857 GetRendererCapabilities().max_texture_size, settings_.can_use_lcd_text, | 844 GetRendererCapabilities().max_texture_size, settings_.can_use_lcd_text, |
| 858 settings_.layers_always_allowed_lcd_text, | 845 settings_.layers_always_allowed_lcd_text, |
| 859 can_render_to_separate_surface, | 846 can_render_to_separate_surface, |
| 860 settings_.layer_transforms_should_scale_layer_contents, | 847 settings_.layer_transforms_should_scale_layer_contents, |
| 861 settings_.verify_property_trees, &update_list, | 848 settings_.verify_property_trees, &update_list, |
| 862 render_surface_layer_list_id); | 849 render_surface_layer_list_id); |
| 863 LayerTreeHostCommon::CalculateDrawProperties(&inputs); | 850 LayerTreeHostCommon::CalculateDrawProperties(&inputs); |
| 864 | |
| 865 if (total_frames_used_for_lcd_text_metrics_ <= | |
| 866 kTotalFramesToUseForLCDTextMetrics) { | |
| 867 LayerTreeHostCommon::CallFunctionForSubtree( | |
| 868 root_layer, | |
| 869 base::Bind(&LayerTreeHost::CalculateLCDTextMetricsCallback, | |
| 870 base::Unretained(this))); | |
| 871 total_frames_used_for_lcd_text_metrics_++; | |
| 872 } | |
| 873 | |
| 874 if (total_frames_used_for_lcd_text_metrics_ == | |
| 875 kTotalFramesToUseForLCDTextMetrics) { | |
| 876 total_frames_used_for_lcd_text_metrics_++; | |
| 877 | |
| 878 UMA_HISTOGRAM_PERCENTAGE( | |
|
danakj
2015/02/18 01:24:10
Are these not being used anymore?
| |
| 879 "Renderer4.LCDText.PercentageOfCandidateLayers", | |
| 880 lcd_text_metrics_.total_num_cc_layers_can_use_lcd_text * 100.0 / | |
| 881 lcd_text_metrics_.total_num_cc_layers); | |
| 882 UMA_HISTOGRAM_PERCENTAGE( | |
| 883 "Renderer4.LCDText.PercentageOfAALayers", | |
| 884 lcd_text_metrics_.total_num_cc_layers_will_use_lcd_text * 100.0 / | |
| 885 lcd_text_metrics_.total_num_cc_layers_can_use_lcd_text); | |
| 886 } | |
| 887 } | 851 } |
| 888 | 852 |
| 889 // Reset partial texture update requests. | 853 // Reset partial texture update requests. |
| 890 partial_texture_update_requests_ = 0; | 854 partial_texture_update_requests_ = 0; |
| 891 | 855 |
| 892 bool did_paint_content = false; | 856 bool did_paint_content = false; |
| 893 bool need_more_updates = false; | 857 bool need_more_updates = false; |
| 894 PaintLayerContents( | 858 PaintLayerContents( |
| 895 update_list, queue, &did_paint_content, &need_more_updates); | 859 update_list, queue, &did_paint_content, &need_more_updates); |
| 896 if (need_more_updates) { | 860 if (need_more_updates) { |
| (...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1370 bool children_need_begin_frames) const { | 1334 bool children_need_begin_frames) const { |
| 1371 proxy_->SetChildrenNeedBeginFrames(children_need_begin_frames); | 1335 proxy_->SetChildrenNeedBeginFrames(children_need_begin_frames); |
| 1372 } | 1336 } |
| 1373 | 1337 |
| 1374 void LayerTreeHost::SendBeginFramesToChildren( | 1338 void LayerTreeHost::SendBeginFramesToChildren( |
| 1375 const BeginFrameArgs& args) const { | 1339 const BeginFrameArgs& args) const { |
| 1376 client_->SendBeginFramesToChildren(args); | 1340 client_->SendBeginFramesToChildren(args); |
| 1377 } | 1341 } |
| 1378 | 1342 |
| 1379 } // namespace cc | 1343 } // namespace cc |
| OLD | NEW |