diff options
author | skyostil@chromium.org <skyostil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-03 22:05:48 +0000 |
---|---|---|
committer | skyostil@chromium.org <skyostil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-03 22:05:48 +0000 |
commit | a70c063804a0057112eecde6b7c65c346f1a9d49 (patch) | |
tree | e8e7d39a4c5c0a069e4f46bcbf3a54671353a8f1 /cc/test/fake_content_layer_client.cc | |
parent | 97e46d3d0a26421f2c445431e5493645940086fc (diff) | |
download | chromium_src-a70c063804a0057112eecde6b7c65c346f1a9d49.zip chromium_src-a70c063804a0057112eecde6b7c65c346f1a9d49.tar.gz chromium_src-a70c063804a0057112eecde6b7c65c346f1a9d49.tar.bz2 |
cc: Add picture recording modes for benchmarking
This patch adds three different picture recording modes for benchmarking
purposes:
1. RECORD_NORMALLY. This is the default and produces a normal recording
as before.
2. RECORD_WITH_NULL_CANVAS. This mode uses SkNullCanvas to avoid (most
of) the Skia processing that happen during recording. Can be used to
estimate the recording workload inside Blink.
3. RECORD_WITH_PAINTING_DISABLED. Passes a NULL canvas to Blink, which
causes the GraphicsContext object to disable painting. This mode
gives an estimate of the recording workload of Blink excluding the
processing inside GraphicsContext.
This patch also modifies the rasterize_and_record_micro benchmark to
report the recording time for each mode (record_time_ms,
record_time_null_canvas_ms and record_time_painting_disabled_ms
respectively).
Anecdotally on a z600 and the key_silk_cases page set, SkNullCanvas cuts
recording time to 50% and disabling painting down to 19%.
BUG=357572
TEST=PictureTest.RecordingModes
TEST=tools/perf/run_benchmark rasterize_and_record_micro.key_silk_cases --browser=release
Review URL: https://codereview.chromium.org/216933002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261543 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/test/fake_content_layer_client.cc')
-rw-r--r-- | cc/test/fake_content_layer_client.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/cc/test/fake_content_layer_client.cc b/cc/test/fake_content_layer_client.cc index 2d1c304..3996654 100644 --- a/cc/test/fake_content_layer_client.cc +++ b/cc/test/fake_content_layer_client.cc @@ -10,14 +10,17 @@ namespace cc { FakeContentLayerClient::FakeContentLayerClient() - : paint_all_opaque_(false) { -} + : paint_all_opaque_(false), last_canvas_(NULL) {} FakeContentLayerClient::~FakeContentLayerClient() { } void FakeContentLayerClient::PaintContents(SkCanvas* canvas, const gfx::Rect& paint_rect, gfx::RectF* opaque_rect) { + last_canvas_ = canvas; + if (!canvas) + return; + if (paint_all_opaque_) *opaque_rect = paint_rect; |