[go: nahoru, domu]

blob: 0ab954382568a92155f024dc4eb7e6bfab9f1de2 [file] [log] [blame]
vmpstr@chromium.org8cac9fe2013-11-18 20:32:081// 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
skyostil0fd1dad2015-04-13 20:11:4812#include "base/single_thread_task_runner.h"
vmpstr@chromium.org8cac9fe2013-11-18 20:32:0813#include "base/time/time.h"
14#include "cc/debug/micro_benchmark_impl.h"
danakj920156852015-05-18 20:22:2915#include "cc/raster/task_graph_runner.h"
vmpstr@chromium.org8cac9fe2013-11-18 20:32:0816
17namespace cc {
18
19class LayerTreeHostImpl;
20class PictureLayerImpl;
21class LayerImpl;
22class RasterizeAndRecordBenchmarkImpl : public MicroBenchmarkImpl {
23 public:
24 explicit RasterizeAndRecordBenchmarkImpl(
skyostil0fd1dad2015-04-13 20:11:4825 scoped_refptr<base::SingleThreadTaskRunner> origin_task_runner,
vmpstr@chromium.org8cac9fe2013-11-18 20:32:0826 base::Value* value,
27 const MicroBenchmarkImpl::DoneCallback& callback);
dcheng716bedf2014-10-21 09:51:0828 ~RasterizeAndRecordBenchmarkImpl() override;
vmpstr@chromium.org8cac9fe2013-11-18 20:32:0829
30 // Implements MicroBenchmark interface.
dcheng716bedf2014-10-21 09:51:0831 void DidCompleteCommit(LayerTreeHostImpl* host) override;
32 void RunOnLayer(PictureLayerImpl* layer) override;
vmpstr@chromium.org8cac9fe2013-11-18 20:32:0833
34 private:
vmpstr@chromium.org8cac9fe2013-11-18 20:32:0835 struct RasterizeResults {
36 RasterizeResults();
37 ~RasterizeResults();
38
39 int pixels_rasterized;
chrishtr@chromium.org92205312014-02-20 23:56:1240 int pixels_rasterized_with_non_solid_color;
41 int pixels_rasterized_as_opaque;
vmpstr@chromium.org8cac9fe2013-11-18 20:32:0842 base::TimeDelta total_best_time;
schenney6450d052014-12-03 02:12:3143 int total_memory_usage;
chrishtr@chromium.org92205312014-02-20 23:56:1244 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.org8cac9fe2013-11-18 20:32:0848 };
49
50 RasterizeResults rasterize_results_;
51 int rasterize_repeat_count_;
vmpstr@chromium.org8cac9fe2013-11-18 20:32:0852};
53
54} // namespace cc
55
56#endif // CC_DEBUG_RASTERIZE_AND_RECORD_BENCHMARK_IMPL_H_