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

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

Issue 951673002: Revert "Pull chromium at 2c3ffb2355a27c32f45e508ef861416b820c823b" (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: 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_client.h » ('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),
136 id_(s_layer_tree_host_sequence_number.GetNext() + 1), 137 id_(s_layer_tree_host_sequence_number.GetNext() + 1),
137 next_commit_forces_redraw_(false), 138 next_commit_forces_redraw_(false),
138 shared_bitmap_manager_(shared_bitmap_manager), 139 shared_bitmap_manager_(shared_bitmap_manager),
139 gpu_memory_buffer_manager_(gpu_memory_buffer_manager), 140 gpu_memory_buffer_manager_(gpu_memory_buffer_manager),
140 surface_id_namespace_(0u), 141 surface_id_namespace_(0u),
141 next_surface_sequence_(1u) { 142 next_surface_sequence_(1u) {
142 if (settings_.accelerated_animation_enabled) 143 if (settings_.accelerated_animation_enabled)
143 animation_registrar_ = AnimationRegistrar::Create(); 144 animation_registrar_ = AnimationRegistrar::Create();
144 rendering_stats_instrumentation_->set_record_rendering_stats( 145 rendering_stats_instrumentation_->set_record_rendering_stats(
145 debug_state_.RecordRenderingStats()); 146 debug_state_.RecordRenderingStats());
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 void LayerTreeHost::WillBeginMainFrame() { 226 void LayerTreeHost::WillBeginMainFrame() {
226 devtools_instrumentation::WillBeginMainThreadFrame(id(), 227 devtools_instrumentation::WillBeginMainThreadFrame(id(),
227 source_frame_number()); 228 source_frame_number());
228 client_->WillBeginMainFrame(); 229 client_->WillBeginMainFrame();
229 } 230 }
230 231
231 void LayerTreeHost::DidBeginMainFrame() { 232 void LayerTreeHost::DidBeginMainFrame() {
232 client_->DidBeginMainFrame(); 233 client_->DidBeginMainFrame();
233 } 234 }
234 235
235 void LayerTreeHost::BeginMainFrameNotExpectedSoon() {
236 client_->BeginMainFrameNotExpectedSoon();
237 }
238
239 void LayerTreeHost::BeginMainFrame(const BeginFrameArgs& args) { 236 void LayerTreeHost::BeginMainFrame(const BeginFrameArgs& args) {
240 inside_begin_main_frame_ = true; 237 inside_begin_main_frame_ = true;
241 client_->BeginMainFrame(args); 238 client_->BeginMainFrame(args);
242 inside_begin_main_frame_ = false; 239 inside_begin_main_frame_ = false;
243 } 240 }
244 241
245 void LayerTreeHost::DidStopFlinging() { 242 void LayerTreeHost::DidStopFlinging() {
246 proxy_->MainThreadHasStoppedFlinging(); 243 proxy_->MainThreadHasStoppedFlinging();
247 } 244 }
248 245
(...skipping 306 matching lines...) Expand 10 before | Expand all | Expand 10 after
555 int event_layer_id = (*events)[event_index].layer_id; 552 int event_layer_id = (*events)[event_index].layer_id;
556 553
557 // Use the map of all controllers, not just active ones, since non-active 554 // Use the map of all controllers, not just active ones, since non-active
558 // controllers may still receive events for impl-only animations. 555 // controllers may still receive events for impl-only animations.
559 const AnimationRegistrar::AnimationControllerMap& animation_controllers = 556 const AnimationRegistrar::AnimationControllerMap& animation_controllers =
560 animation_registrar_->all_animation_controllers(); 557 animation_registrar_->all_animation_controllers();
561 AnimationRegistrar::AnimationControllerMap::const_iterator iter = 558 AnimationRegistrar::AnimationControllerMap::const_iterator iter =
562 animation_controllers.find(event_layer_id); 559 animation_controllers.find(event_layer_id);
563 if (iter != animation_controllers.end()) { 560 if (iter != animation_controllers.end()) {
564 switch ((*events)[event_index].type) { 561 switch ((*events)[event_index].type) {
565 case AnimationEvent::STARTED: 562 case AnimationEvent::Started:
566 (*iter).second->NotifyAnimationStarted((*events)[event_index]); 563 (*iter).second->NotifyAnimationStarted((*events)[event_index]);
567 break; 564 break;
568 565
569 case AnimationEvent::FINISHED: 566 case AnimationEvent::Finished:
570 (*iter).second->NotifyAnimationFinished((*events)[event_index]); 567 (*iter).second->NotifyAnimationFinished((*events)[event_index]);
571 break; 568 break;
572 569
573 case AnimationEvent::ABORTED: 570 case AnimationEvent::Aborted:
574 (*iter).second->NotifyAnimationAborted((*events)[event_index]); 571 (*iter).second->NotifyAnimationAborted((*events)[event_index]);
575 break; 572 break;
576 573
577 case AnimationEvent::PROPERTY_UPDATE: 574 case AnimationEvent::PropertyUpdate:
578 (*iter).second->NotifyAnimationPropertyUpdate((*events)[event_index]); 575 (*iter).second->NotifyAnimationPropertyUpdate((*events)[event_index]);
579 break; 576 break;
580 } 577 }
581 } 578 }
582 } 579 }
583 } 580 }
584 581
585 void LayerTreeHost::SetRootLayer(scoped_refptr<Layer> root_layer) { 582 void LayerTreeHost::SetRootLayer(scoped_refptr<Layer> root_layer) {
586 if (root_layer_.get() == root_layer.get()) 583 if (root_layer_.get() == root_layer.get())
587 return; 584 return;
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
805 content_is_suitable_for_gpu_rasterization_); 802 content_is_suitable_for_gpu_rasterization_);
806 // Record how many pages actually get gpu rasterization when enabled. 803 // Record how many pages actually get gpu rasterization when enabled.
807 UMA_HISTOGRAM_BOOLEAN("Renderer4.GpuRasterizationUsed", 804 UMA_HISTOGRAM_BOOLEAN("Renderer4.GpuRasterizationUsed",
808 (has_gpu_rasterization_trigger_ && 805 (has_gpu_rasterization_trigger_ &&
809 content_is_suitable_for_gpu_rasterization_)); 806 content_is_suitable_for_gpu_rasterization_));
810 } 807 }
811 808
812 gpu_rasterization_histogram_recorded_ = true; 809 gpu_rasterization_histogram_recorded_ = true;
813 } 810 }
814 811
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
815 bool LayerTreeHost::UsingSharedMemoryResources() { 824 bool LayerTreeHost::UsingSharedMemoryResources() {
816 return GetRendererCapabilities().using_shared_memory_resources; 825 return GetRendererCapabilities().using_shared_memory_resources;
817 } 826 }
818 827
819 bool LayerTreeHost::UpdateLayers(Layer* root_layer, 828 bool LayerTreeHost::UpdateLayers(Layer* root_layer,
820 ResourceUpdateQueue* queue) { 829 ResourceUpdateQueue* queue) {
821 TRACE_EVENT1("cc", "LayerTreeHost::UpdateLayers", 830 TRACE_EVENT1("cc", "LayerTreeHost::UpdateLayers",
822 "source_frame_number", source_frame_number()); 831 "source_frame_number", source_frame_number());
823 832
824 RenderSurfaceLayerList update_list; 833 RenderSurfaceLayerList update_list;
(...skipping 20 matching lines...) Expand all
845 root_layer, device_viewport_size(), gfx::Transform(), 854 root_layer, device_viewport_size(), gfx::Transform(),
846 device_scale_factor_, page_scale_factor_, page_scale_layer, 855 device_scale_factor_, page_scale_factor_, page_scale_layer,
847 elastic_overscroll_, overscroll_elasticity_layer_.get(), 856 elastic_overscroll_, overscroll_elasticity_layer_.get(),
848 GetRendererCapabilities().max_texture_size, settings_.can_use_lcd_text, 857 GetRendererCapabilities().max_texture_size, settings_.can_use_lcd_text,
849 settings_.layers_always_allowed_lcd_text, 858 settings_.layers_always_allowed_lcd_text,
850 can_render_to_separate_surface, 859 can_render_to_separate_surface,
851 settings_.layer_transforms_should_scale_layer_contents, 860 settings_.layer_transforms_should_scale_layer_contents,
852 settings_.verify_property_trees, &update_list, 861 settings_.verify_property_trees, &update_list,
853 render_surface_layer_list_id); 862 render_surface_layer_list_id);
854 LayerTreeHostCommon::CalculateDrawProperties(&inputs); 863 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(
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 }
855 } 887 }
856 888
857 // Reset partial texture update requests. 889 // Reset partial texture update requests.
858 partial_texture_update_requests_ = 0; 890 partial_texture_update_requests_ = 0;
859 891
860 bool did_paint_content = false; 892 bool did_paint_content = false;
861 bool need_more_updates = false; 893 bool need_more_updates = false;
862 PaintLayerContents( 894 PaintLayerContents(
863 update_list, queue, &did_paint_content, &need_more_updates); 895 update_list, queue, &did_paint_content, &need_more_updates);
864 if (need_more_updates) { 896 if (need_more_updates) {
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
1212 } 1244 }
1213 1245
1214 UIResourceId LayerTreeHost::CreateUIResource(UIResourceClient* client) { 1246 UIResourceId LayerTreeHost::CreateUIResource(UIResourceClient* client) {
1215 DCHECK(client); 1247 DCHECK(client);
1216 1248
1217 UIResourceId next_id = next_ui_resource_id_++; 1249 UIResourceId next_id = next_ui_resource_id_++;
1218 DCHECK(ui_resource_client_map_.find(next_id) == 1250 DCHECK(ui_resource_client_map_.find(next_id) ==
1219 ui_resource_client_map_.end()); 1251 ui_resource_client_map_.end());
1220 1252
1221 bool resource_lost = false; 1253 bool resource_lost = false;
1222 UIResourceRequest request(UIResourceRequest::UI_RESOURCE_CREATE, next_id, 1254 UIResourceRequest request(UIResourceRequest::UIResourceCreate,
1255 next_id,
1223 client->GetBitmap(next_id, resource_lost)); 1256 client->GetBitmap(next_id, resource_lost));
1224 ui_resource_request_queue_.push_back(request); 1257 ui_resource_request_queue_.push_back(request);
1225 1258
1226 UIResourceClientData data; 1259 UIResourceClientData data;
1227 data.client = client; 1260 data.client = client;
1228 data.size = request.GetBitmap().GetSize(); 1261 data.size = request.GetBitmap().GetSize();
1229 1262
1230 ui_resource_client_map_[request.GetId()] = data; 1263 ui_resource_client_map_[request.GetId()] = data;
1231 return request.GetId(); 1264 return request.GetId();
1232 } 1265 }
1233 1266
1234 // Deletes a UI resource. May safely be called more than once. 1267 // Deletes a UI resource. May safely be called more than once.
1235 void LayerTreeHost::DeleteUIResource(UIResourceId uid) { 1268 void LayerTreeHost::DeleteUIResource(UIResourceId uid) {
1236 UIResourceClientMap::iterator iter = ui_resource_client_map_.find(uid); 1269 UIResourceClientMap::iterator iter = ui_resource_client_map_.find(uid);
1237 if (iter == ui_resource_client_map_.end()) 1270 if (iter == ui_resource_client_map_.end())
1238 return; 1271 return;
1239 1272
1240 UIResourceRequest request(UIResourceRequest::UI_RESOURCE_DELETE, uid); 1273 UIResourceRequest request(UIResourceRequest::UIResourceDelete, uid);
1241 ui_resource_request_queue_.push_back(request); 1274 ui_resource_request_queue_.push_back(request);
1242 ui_resource_client_map_.erase(iter); 1275 ui_resource_client_map_.erase(iter);
1243 } 1276 }
1244 1277
1245 void LayerTreeHost::RecreateUIResources() { 1278 void LayerTreeHost::RecreateUIResources() {
1246 for (UIResourceClientMap::iterator iter = ui_resource_client_map_.begin(); 1279 for (UIResourceClientMap::iterator iter = ui_resource_client_map_.begin();
1247 iter != ui_resource_client_map_.end(); 1280 iter != ui_resource_client_map_.end();
1248 ++iter) { 1281 ++iter) {
1249 UIResourceId uid = iter->first; 1282 UIResourceId uid = iter->first;
1250 const UIResourceClientData& data = iter->second; 1283 const UIResourceClientData& data = iter->second;
1251 bool resource_lost = true; 1284 bool resource_lost = true;
1252 UIResourceRequest request(UIResourceRequest::UI_RESOURCE_CREATE, uid, 1285 UIResourceRequest request(UIResourceRequest::UIResourceCreate,
1286 uid,
1253 data.client->GetBitmap(uid, resource_lost)); 1287 data.client->GetBitmap(uid, resource_lost));
1254 ui_resource_request_queue_.push_back(request); 1288 ui_resource_request_queue_.push_back(request);
1255 } 1289 }
1256 } 1290 }
1257 1291
1258 // Returns the size of a resource given its id. 1292 // Returns the size of a resource given its id.
1259 gfx::Size LayerTreeHost::GetUIResourceSize(UIResourceId uid) const { 1293 gfx::Size LayerTreeHost::GetUIResourceSize(UIResourceId uid) const {
1260 UIResourceClientMap::const_iterator iter = ui_resource_client_map_.find(uid); 1294 UIResourceClientMap::const_iterator iter = ui_resource_client_map_.find(uid);
1261 if (iter == ui_resource_client_map_.end()) 1295 if (iter == ui_resource_client_map_.end())
1262 return gfx::Size(); 1296 return gfx::Size();
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
1336 bool children_need_begin_frames) const { 1370 bool children_need_begin_frames) const {
1337 proxy_->SetChildrenNeedBeginFrames(children_need_begin_frames); 1371 proxy_->SetChildrenNeedBeginFrames(children_need_begin_frames);
1338 } 1372 }
1339 1373
1340 void LayerTreeHost::SendBeginFramesToChildren( 1374 void LayerTreeHost::SendBeginFramesToChildren(
1341 const BeginFrameArgs& args) const { 1375 const BeginFrameArgs& args) const {
1342 client_->SendBeginFramesToChildren(args); 1376 client_->SendBeginFramesToChildren(args);
1343 } 1377 }
1344 1378
1345 } // namespace cc 1379 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host.h ('k') | cc/trees/layer_tree_host_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698