summaryrefslogtreecommitdiffstats
path: root/cc/test/fake_content_layer_client.cc
diff options
context:
space:
mode:
authorskyostil@chromium.org <skyostil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-03 22:05:48 +0000
committerskyostil@chromium.org <skyostil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-03 22:05:48 +0000
commita70c063804a0057112eecde6b7c65c346f1a9d49 (patch)
treee8e7d39a4c5c0a069e4f46bcbf3a54671353a8f1 /cc/test/fake_content_layer_client.cc
parent97e46d3d0a26421f2c445431e5493645940086fc (diff)
downloadchromium_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.cc7
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;