| 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 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 return; | 124 return; |
| 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(host->RootLayer(), |
| 135 host->RootLayer(), | 135 [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 |