vmpstr@chromium.org | 8cac9fe | 2013-11-18 20:32:08 | [diff] [blame] | 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 |
| 3 | // found in the LICENSE file. |
| 4 | |
| 5 | #ifndef CC_DEBUG_RASTERIZE_AND_RECORD_BENCHMARK_IMPL_H_ |
| 6 | #define CC_DEBUG_RASTERIZE_AND_RECORD_BENCHMARK_IMPL_H_ |
| 7 | |
| 8 | #include <map> |
| 9 | #include <utility> |
| 10 | #include <vector> |
| 11 | |
skyostil | 0fd1dad | 2015-04-13 20:11:48 | [diff] [blame] | 12 | #include "base/single_thread_task_runner.h" |
vmpstr@chromium.org | 8cac9fe | 2013-11-18 20:32:08 | [diff] [blame] | 13 | #include "base/time/time.h" |
| 14 | #include "cc/debug/micro_benchmark_impl.h" |
danakj | 92015685 | 2015-05-18 20:22:29 | [diff] [blame^] | 15 | #include "cc/raster/task_graph_runner.h" |
vmpstr@chromium.org | 8cac9fe | 2013-11-18 20:32:08 | [diff] [blame] | 16 | |
| 17 | namespace cc { |
| 18 | |
| 19 | class LayerTreeHostImpl; |
| 20 | class PictureLayerImpl; |
| 21 | class LayerImpl; |
| 22 | class RasterizeAndRecordBenchmarkImpl : public MicroBenchmarkImpl { |
| 23 | public: |
| 24 | explicit RasterizeAndRecordBenchmarkImpl( |
skyostil | 0fd1dad | 2015-04-13 20:11:48 | [diff] [blame] | 25 | scoped_refptr<base::SingleThreadTaskRunner> origin_task_runner, |
vmpstr@chromium.org | 8cac9fe | 2013-11-18 20:32:08 | [diff] [blame] | 26 | base::Value* value, |
| 27 | const MicroBenchmarkImpl::DoneCallback& callback); |
dcheng | 716bedf | 2014-10-21 09:51:08 | [diff] [blame] | 28 | ~RasterizeAndRecordBenchmarkImpl() override; |
vmpstr@chromium.org | 8cac9fe | 2013-11-18 20:32:08 | [diff] [blame] | 29 | |
| 30 | // Implements MicroBenchmark interface. |
dcheng | 716bedf | 2014-10-21 09:51:08 | [diff] [blame] | 31 | void DidCompleteCommit(LayerTreeHostImpl* host) override; |
| 32 | void RunOnLayer(PictureLayerImpl* layer) override; |
vmpstr@chromium.org | 8cac9fe | 2013-11-18 20:32:08 | [diff] [blame] | 33 | |
| 34 | private: |
vmpstr@chromium.org | 8cac9fe | 2013-11-18 20:32:08 | [diff] [blame] | 35 | struct RasterizeResults { |
| 36 | RasterizeResults(); |
| 37 | ~RasterizeResults(); |
| 38 | |
| 39 | int pixels_rasterized; |
chrishtr@chromium.org | 9220531 | 2014-02-20 23:56:12 | [diff] [blame] | 40 | int pixels_rasterized_with_non_solid_color; |
| 41 | int pixels_rasterized_as_opaque; |
vmpstr@chromium.org | 8cac9fe | 2013-11-18 20:32:08 | [diff] [blame] | 42 | base::TimeDelta total_best_time; |
schenney | 6450d05 | 2014-12-03 02:12:31 | [diff] [blame] | 43 | int total_memory_usage; |
chrishtr@chromium.org | 9220531 | 2014-02-20 23:56:12 | [diff] [blame] | 44 | int total_layers; |
| 45 | int total_picture_layers; |
| 46 | int total_picture_layers_with_no_content; |
| 47 | int total_picture_layers_off_screen; |
vmpstr@chromium.org | 8cac9fe | 2013-11-18 20:32:08 | [diff] [blame] | 48 | }; |
| 49 | |
| 50 | RasterizeResults rasterize_results_; |
| 51 | int rasterize_repeat_count_; |
vmpstr@chromium.org | 8cac9fe | 2013-11-18 20:32:08 | [diff] [blame] | 52 | }; |
| 53 | |
| 54 | } // namespace cc |
| 55 | |
| 56 | #endif // CC_DEBUG_RASTERIZE_AND_RECORD_BENCHMARK_IMPL_H_ |