OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/debug/rasterize_and_record_benchmark_impl.h" | 5 #include "cc/debug/rasterize_and_record_benchmark_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <limits> | 8 #include <limits> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
125 | 125 |
126 if (settings->HasKey("rasterize_repeat_count")) | 126 if (settings->HasKey("rasterize_repeat_count")) |
127 settings->GetInteger("rasterize_repeat_count", &rasterize_repeat_count_); | 127 settings->GetInteger("rasterize_repeat_count", &rasterize_repeat_count_); |
128 } | 128 } |
129 | 129 |
130 RasterizeAndRecordBenchmarkImpl::~RasterizeAndRecordBenchmarkImpl() {} | 130 RasterizeAndRecordBenchmarkImpl::~RasterizeAndRecordBenchmarkImpl() {} |
131 | 131 |
132 void RasterizeAndRecordBenchmarkImpl::DidCompleteCommit( | 132 void RasterizeAndRecordBenchmarkImpl::DidCompleteCommit( |
133 LayerTreeHostImpl* host) { | 133 LayerTreeHostImpl* host) { |
134 LayerTreeHostCommon::CallFunctionForSubtree( | 134 LayerTreeHostCommon::CallFunctionForSubtree( |
135 host->RootLayer(), | 135 host->RootLayer(), [this](LayerImpl* layer) { |
136 base::Bind(&RasterizeAndRecordBenchmarkImpl::Run, | 136 rasterize_results_.total_layers++; |
137 base::Unretained(this))); | 137 layer->RunMicroBenchmark(this); |
| 138 }); |
138 | 139 |
139 scoped_ptr<base::DictionaryValue> result(new base::DictionaryValue()); | 140 scoped_ptr<base::DictionaryValue> result(new base::DictionaryValue()); |
140 result->SetDouble("rasterize_time_ms", | 141 result->SetDouble("rasterize_time_ms", |
141 rasterize_results_.total_best_time.InMillisecondsF()); | 142 rasterize_results_.total_best_time.InMillisecondsF()); |
142 result->SetDouble("total_pictures_in_pile_size", | 143 result->SetDouble("total_pictures_in_pile_size", |
143 rasterize_results_.total_memory_usage); | 144 rasterize_results_.total_memory_usage); |
144 result->SetInteger("pixels_rasterized", rasterize_results_.pixels_rasterized); | 145 result->SetInteger("pixels_rasterized", rasterize_results_.pixels_rasterized); |
145 result->SetInteger("pixels_rasterized_with_non_solid_color", | 146 result->SetInteger("pixels_rasterized_with_non_solid_color", |
146 rasterize_results_.pixels_rasterized_with_non_solid_color); | 147 rasterize_results_.pixels_rasterized_with_non_solid_color); |
147 result->SetInteger("pixels_rasterized_as_opaque", | 148 result->SetInteger("pixels_rasterized_as_opaque", |
148 rasterize_results_.pixels_rasterized_as_opaque); | 149 rasterize_results_.pixels_rasterized_as_opaque); |
149 result->SetInteger("total_layers", rasterize_results_.total_layers); | 150 result->SetInteger("total_layers", rasterize_results_.total_layers); |
150 result->SetInteger("total_picture_layers", | 151 result->SetInteger("total_picture_layers", |
151 rasterize_results_.total_picture_layers); | 152 rasterize_results_.total_picture_layers); |
152 result->SetInteger("total_picture_layers_with_no_content", | 153 result->SetInteger("total_picture_layers_with_no_content", |
153 rasterize_results_.total_picture_layers_with_no_content); | 154 rasterize_results_.total_picture_layers_with_no_content); |
154 result->SetInteger("total_picture_layers_off_screen", | 155 result->SetInteger("total_picture_layers_off_screen", |
155 rasterize_results_.total_picture_layers_off_screen); | 156 rasterize_results_.total_picture_layers_off_screen); |
156 | 157 |
157 NotifyDone(result.Pass()); | 158 NotifyDone(result.Pass()); |
158 } | 159 } |
159 | 160 |
160 void RasterizeAndRecordBenchmarkImpl::Run(LayerImpl* layer) { | |
161 rasterize_results_.total_layers++; | |
162 layer->RunMicroBenchmark(this); | |
163 } | |
164 | |
165 void RasterizeAndRecordBenchmarkImpl::RunOnLayer(PictureLayerImpl* layer) { | 161 void RasterizeAndRecordBenchmarkImpl::RunOnLayer(PictureLayerImpl* layer) { |
166 rasterize_results_.total_picture_layers++; | 162 rasterize_results_.total_picture_layers++; |
167 if (!layer->CanHaveTilings()) { | 163 if (!layer->CanHaveTilings()) { |
168 rasterize_results_.total_picture_layers_with_no_content++; | 164 rasterize_results_.total_picture_layers_with_no_content++; |
169 return; | 165 return; |
170 } | 166 } |
171 if (layer->visible_content_rect().IsEmpty()) { | 167 if (layer->visible_content_rect().IsEmpty()) { |
172 rasterize_results_.total_picture_layers_off_screen++; | 168 rasterize_results_.total_picture_layers_off_screen++; |
173 return; | 169 return; |
174 } | 170 } |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
226 total_memory_usage(0), | 222 total_memory_usage(0), |
227 total_layers(0), | 223 total_layers(0), |
228 total_picture_layers(0), | 224 total_picture_layers(0), |
229 total_picture_layers_with_no_content(0), | 225 total_picture_layers_with_no_content(0), |
230 total_picture_layers_off_screen(0) { | 226 total_picture_layers_off_screen(0) { |
231 } | 227 } |
232 | 228 |
233 RasterizeAndRecordBenchmarkImpl::RasterizeResults::~RasterizeResults() {} | 229 RasterizeAndRecordBenchmarkImpl::RasterizeResults::~RasterizeResults() {} |
234 | 230 |
235 } // namespace cc | 231 } // namespace cc |
OLD | NEW |