| Index: cc/debug/rasterize_and_record_benchmark.cc
|
| diff --git a/cc/debug/rasterize_and_record_benchmark.cc b/cc/debug/rasterize_and_record_benchmark.cc
|
| index a2052ab35c5f106dda0b07e2183f0aef9128643f..41d62100fb26d15204cc279e8c5af81c85926cde 100644
|
| --- a/cc/debug/rasterize_and_record_benchmark.cc
|
| +++ b/cc/debug/rasterize_and_record_benchmark.cc
|
| @@ -18,6 +18,7 @@
|
| #include "cc/resources/picture_pile.h"
|
| #include "cc/trees/layer_tree_host.h"
|
| #include "cc/trees/layer_tree_host_common.h"
|
| +#include "third_party/skia/include/utils/SkPictureUtils.h"
|
| #include "ui/gfx/geometry/rect.h"
|
|
|
| namespace cc {
|
| @@ -64,6 +65,7 @@ void RasterizeAndRecordBenchmark::DidUpdateLayers(LayerTreeHost* host) {
|
| DCHECK(!results_.get());
|
| results_ = make_scoped_ptr(new base::DictionaryValue);
|
| results_->SetInteger("pixels_recorded", record_results_.pixels_recorded);
|
| + results_->SetInteger("picture_memory_usage", record_results_.bytes_used);
|
|
|
| for (int i = 0; i < Picture::RECORDING_MODE_COUNT; i++) {
|
| std::string name = base::StringPrintf("record_time%s_ms", kModeSuffixes[i]);
|
| @@ -119,6 +121,7 @@ void RasterizeAndRecordBenchmark::RunOnLayer(PictureLayer* layer) {
|
| Picture::RecordingMode mode =
|
| static_cast<Picture::RecordingMode>(mode_index);
|
| base::TimeDelta min_time = base::TimeDelta::Max();
|
| + size_t memory_used = 0;
|
|
|
| // Parameters for LapTimer.
|
| const int kTimeLimitMillis = 1;
|
| @@ -131,18 +134,21 @@ void RasterizeAndRecordBenchmark::RunOnLayer(PictureLayer* layer) {
|
| LapTimer timer(kWarmupRuns,
|
| base::TimeDelta::FromMilliseconds(kTimeLimitMillis),
|
| kTimeCheckInterval);
|
| + scoped_refptr<Picture> picture;
|
| do {
|
| - scoped_refptr<Picture> picture = Picture::Create(
|
| - visible_content_rect, painter, tile_grid_info, false, mode);
|
| + picture = Picture::Create(visible_content_rect, painter, tile_grid_info,
|
| + false, mode);
|
| timer.NextLap();
|
| } while (!timer.HasTimeLimitExpired());
|
| base::TimeDelta duration =
|
| base::TimeDelta::FromMillisecondsD(timer.MsPerLap());
|
| if (duration < min_time)
|
| min_time = duration;
|
| + memory_used = picture->ApproximateMemoryUsage();
|
| }
|
|
|
| if (mode == Picture::RECORD_NORMALLY) {
|
| + record_results_.bytes_used += memory_used;
|
| record_results_.pixels_recorded +=
|
| visible_content_rect.width() * visible_content_rect.height();
|
| }
|
| @@ -151,7 +157,8 @@ void RasterizeAndRecordBenchmark::RunOnLayer(PictureLayer* layer) {
|
| }
|
|
|
| RasterizeAndRecordBenchmark::RecordResults::RecordResults()
|
| - : pixels_recorded(0) {}
|
| + : pixels_recorded(0), bytes_used(0) {
|
| +}
|
|
|
| RasterizeAndRecordBenchmark::RecordResults::~RecordResults() {}
|
|
|
|
|