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

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

Issue 2654993004: Move GPU blacklist calculation to GPU proc (Closed)
Patch Set: fix win clang build Created 3 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_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 <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 if (needs_full_tree_sync_) 292 if (needs_full_tree_sync_)
293 TreeSynchronizer::SynchronizeTrees(root_layer(), sync_tree); 293 TreeSynchronizer::SynchronizeTrees(root_layer(), sync_tree);
294 294
295 PushPropertiesTo(sync_tree); 295 PushPropertiesTo(sync_tree);
296 296
297 sync_tree->PassSwapPromises(swap_promise_manager_.TakeSwapPromises()); 297 sync_tree->PassSwapPromises(swap_promise_manager_.TakeSwapPromises());
298 298
299 host_impl->SetHasGpuRasterizationTrigger(has_gpu_rasterization_trigger_); 299 host_impl->SetHasGpuRasterizationTrigger(has_gpu_rasterization_trigger_);
300 host_impl->SetContentIsSuitableForGpuRasterization( 300 host_impl->SetContentIsSuitableForGpuRasterization(
301 content_is_suitable_for_gpu_rasterization_); 301 content_is_suitable_for_gpu_rasterization_);
302 RecordGpuRasterizationHistogram(); 302 RecordGpuRasterizationHistogram(host_impl);
303 303
304 host_impl->SetViewportSize(device_viewport_size_); 304 host_impl->SetViewportSize(device_viewport_size_);
305 sync_tree->SetDeviceScaleFactor(device_scale_factor_); 305 sync_tree->SetDeviceScaleFactor(device_scale_factor_);
306 host_impl->SetDebugState(debug_state_); 306 host_impl->SetDebugState(debug_state_);
307 307
308 sync_tree->set_ui_resource_request_queue( 308 sync_tree->set_ui_resource_request_queue(
309 ui_resource_manager_->TakeUIResourcesRequests()); 309 ui_resource_manager_->TakeUIResourcesRequests());
310 310
311 { 311 {
312 TRACE_EVENT0("cc", "LayerTreeHostInProcess::PushProperties"); 312 TRACE_EVENT0("cc", "LayerTreeHostInProcess::PushProperties");
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 ->Add(timer.Elapsed().InMicroseconds()); 571 ->Add(timer.Elapsed().InMicroseconds());
572 } 572 }
573 573
574 return result || next_commit_forces_redraw_; 574 return result || next_commit_forces_redraw_;
575 } 575 }
576 576
577 void LayerTreeHost::DidCompletePageScaleAnimation() { 577 void LayerTreeHost::DidCompletePageScaleAnimation() {
578 did_complete_scale_animation_ = true; 578 did_complete_scale_animation_ = true;
579 } 579 }
580 580
581 void LayerTreeHost::RecordGpuRasterizationHistogram() { 581 void LayerTreeHost::RecordGpuRasterizationHistogram(
582 const LayerTreeHostImpl* host_impl) {
582 // Gpu rasterization is only supported for Renderer compositors. 583 // Gpu rasterization is only supported for Renderer compositors.
583 // Checking for IsSingleThreaded() to exclude Browser compositors. 584 // Checking for IsSingleThreaded() to exclude Browser compositors.
584 if (gpu_rasterization_histogram_recorded_ || IsSingleThreaded()) 585 if (gpu_rasterization_histogram_recorded_ || IsSingleThreaded())
585 return; 586 return;
586 587
588 bool gpu_rasterization_enabled = false;
589 if (host_impl->compositor_frame_sink()) {
590 ContextProvider* compositor_context_provider =
591 host_impl->compositor_frame_sink()->context_provider();
592 if (compositor_context_provider) {
593 gpu_rasterization_enabled =
594 compositor_context_provider->ContextCapabilities().gpu_rasterization;
595 }
596 }
597
587 // Record how widely gpu rasterization is enabled. 598 // Record how widely gpu rasterization is enabled.
588 // This number takes device/gpu whitelisting/backlisting into account. 599 // This number takes device/gpu whitelisting/backlisting into account.
589 // Note that we do not consider the forced gpu rasterization mode, which is 600 // Note that we do not consider the forced gpu rasterization mode, which is
590 // mostly used for debugging purposes. 601 // mostly used for debugging purposes.
591 UMA_HISTOGRAM_BOOLEAN("Renderer4.GpuRasterizationEnabled", 602 UMA_HISTOGRAM_BOOLEAN("Renderer4.GpuRasterizationEnabled",
592 settings_.gpu_rasterization_enabled); 603 gpu_rasterization_enabled);
593 if (settings_.gpu_rasterization_enabled) { 604 if (gpu_rasterization_enabled) {
594 UMA_HISTOGRAM_BOOLEAN("Renderer4.GpuRasterizationTriggered", 605 UMA_HISTOGRAM_BOOLEAN("Renderer4.GpuRasterizationTriggered",
595 has_gpu_rasterization_trigger_); 606 has_gpu_rasterization_trigger_);
596 UMA_HISTOGRAM_BOOLEAN("Renderer4.GpuRasterizationSuitableContent", 607 UMA_HISTOGRAM_BOOLEAN("Renderer4.GpuRasterizationSuitableContent",
597 content_is_suitable_for_gpu_rasterization_); 608 content_is_suitable_for_gpu_rasterization_);
598 // Record how many pages actually get gpu rasterization when enabled. 609 // Record how many pages actually get gpu rasterization when enabled.
599 UMA_HISTOGRAM_BOOLEAN("Renderer4.GpuRasterizationUsed", 610 UMA_HISTOGRAM_BOOLEAN("Renderer4.GpuRasterizationUsed",
600 (has_gpu_rasterization_trigger_ && 611 (has_gpu_rasterization_trigger_ &&
601 content_is_suitable_for_gpu_rasterization_)); 612 content_is_suitable_for_gpu_rasterization_));
602 } 613 }
603 614
(...skipping 648 matching lines...) Expand 10 before | Expand all | Expand 10 after
1252 LayerListReverseIterator<Layer> LayerTreeHost::rend() { 1263 LayerListReverseIterator<Layer> LayerTreeHost::rend() {
1253 return LayerListReverseIterator<Layer>(nullptr); 1264 return LayerListReverseIterator<Layer>(nullptr);
1254 } 1265 }
1255 1266
1256 void LayerTreeHost::SetNeedsDisplayOnAllLayers() { 1267 void LayerTreeHost::SetNeedsDisplayOnAllLayers() {
1257 for (auto* layer : *this) 1268 for (auto* layer : *this)
1258 layer->SetNeedsDisplay(); 1269 layer->SetNeedsDisplay();
1259 } 1270 }
1260 1271
1261 } // namespace cc 1272 } // 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