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

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

Issue 1511743004: cc: Fix recording of GPU rasterization histogram for renderer compositor. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add ForTesting to SetTaskRunnerProvider. Created 5 years 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_unittest_record_gpu_histogram.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 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 std::move(external_begin_frame_source))); 159 std::move(external_begin_frame_source)));
160 } 160 }
161 161
162 void LayerTreeHost::InitializeForTesting( 162 void LayerTreeHost::InitializeForTesting(
163 scoped_ptr<TaskRunnerProvider> task_runner_provider, 163 scoped_ptr<TaskRunnerProvider> task_runner_provider,
164 scoped_ptr<Proxy> proxy_for_testing) { 164 scoped_ptr<Proxy> proxy_for_testing) {
165 task_runner_provider_ = std::move(task_runner_provider); 165 task_runner_provider_ = std::move(task_runner_provider);
166 InitializeProxy(std::move(proxy_for_testing)); 166 InitializeProxy(std::move(proxy_for_testing));
167 } 167 }
168 168
169 void LayerTreeHost::SetTaskRunnerProviderForTesting(
170 scoped_ptr<TaskRunnerProvider> task_runner_provider) {
171 DCHECK(!task_runner_provider_);
172 task_runner_provider_ = std::move(task_runner_provider);
173 }
174
169 void LayerTreeHost::InitializeProxy(scoped_ptr<Proxy> proxy) { 175 void LayerTreeHost::InitializeProxy(scoped_ptr<Proxy> proxy) {
170 TRACE_EVENT0("cc", "LayerTreeHost::InitializeForReal"); 176 TRACE_EVENT0("cc", "LayerTreeHost::InitializeForReal");
171 177
172 proxy_ = std::move(proxy); 178 proxy_ = std::move(proxy);
173 proxy_->Start(); 179 proxy_->Start();
174 if (settings_.accelerated_animation_enabled) { 180 if (settings_.accelerated_animation_enabled) {
175 if (animation_host_) 181 if (animation_host_)
176 animation_host_->SetSupportsScrollAnimations( 182 animation_host_->SetSupportsScrollAnimations(
177 proxy_->SupportsImplScrolling()); 183 proxy_->SupportsImplScrolling());
178 else 184 else
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after
730 Layer* found = FindFirstScrollableLayer(layer->children()[i].get()); 736 Layer* found = FindFirstScrollableLayer(layer->children()[i].get());
731 if (found) 737 if (found)
732 return found; 738 return found;
733 } 739 }
734 740
735 return NULL; 741 return NULL;
736 } 742 }
737 743
738 void LayerTreeHost::RecordGpuRasterizationHistogram() { 744 void LayerTreeHost::RecordGpuRasterizationHistogram() {
739 // Gpu rasterization is only supported for Renderer compositors. 745 // Gpu rasterization is only supported for Renderer compositors.
740 // Checking for IsThreaded() to exclude Browser compositors. 746 // Checking for IsSingleThreaded() to exclude Browser compositors.
741 if (gpu_rasterization_histogram_recorded_ || IsThreaded()) 747 if (gpu_rasterization_histogram_recorded_ || IsSingleThreaded())
742 return; 748 return;
743 749
744 // Record how widely gpu rasterization is enabled. 750 // Record how widely gpu rasterization is enabled.
745 // This number takes device/gpu whitelisting/backlisting into account. 751 // This number takes device/gpu whitelisting/backlisting into account.
746 // Note that we do not consider the forced gpu rasterization mode, which is 752 // Note that we do not consider the forced gpu rasterization mode, which is
747 // mostly used for debugging purposes. 753 // mostly used for debugging purposes.
748 UMA_HISTOGRAM_BOOLEAN("Renderer4.GpuRasterizationEnabled", 754 UMA_HISTOGRAM_BOOLEAN("Renderer4.GpuRasterizationEnabled",
749 settings_.gpu_rasterization_enabled); 755 settings_.gpu_rasterization_enabled);
750 if (settings_.gpu_rasterization_enabled) { 756 if (settings_.gpu_rasterization_enabled) {
751 UMA_HISTOGRAM_BOOLEAN("Renderer4.GpuRasterizationTriggered", 757 UMA_HISTOGRAM_BOOLEAN("Renderer4.GpuRasterizationTriggered",
(...skipping 505 matching lines...) Expand 10 before | Expand all | Expand 10 after
1257 return compositor_mode_ == CompositorMode::SingleThreaded; 1263 return compositor_mode_ == CompositorMode::SingleThreaded;
1258 } 1264 }
1259 1265
1260 bool LayerTreeHost::IsThreaded() const { 1266 bool LayerTreeHost::IsThreaded() const {
1261 DCHECK(compositor_mode_ != CompositorMode::Threaded || 1267 DCHECK(compositor_mode_ != CompositorMode::Threaded ||
1262 task_runner_provider_->HasImplThread()); 1268 task_runner_provider_->HasImplThread());
1263 return compositor_mode_ == CompositorMode::Threaded; 1269 return compositor_mode_ == CompositorMode::Threaded;
1264 } 1270 }
1265 1271
1266 } // namespace cc 1272 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host.h ('k') | cc/trees/layer_tree_host_unittest_record_gpu_histogram.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698