diff options
author | 2014-04-29 15:34:03 +0000 | |
---|---|---|
committer | 2014-04-29 15:34:03 +0000 | |
commit | 705b1ff617ffe672e65d53bcaf3b690e8bb6b025 (patch) | |
tree | 7067ee31d459ec7c8857e6da48b3dbf412c603a5 /tests | |
parent | 0a5c233e3b911232c0d6f9a88ded99ecf88b8a97 (diff) |
Don't bother doing the empty clip check in SkRecordDraw.
On Mike's suggestion, I tested out not doing any empty-clip check at all in
SkRecordDraw, given that mostly we'll do that again anyway inside SkCanvas.
Most SKPs are identical to the status quo, whether bot or silk, played back in tiles
or full. Average playback performance, both arithmetic and geometric mean, is also
unchanged.
A handful of SKPs do draw faster or slower reliably, particularly when tiled. E.g. a
cnn tile draws about 40% faster, a cuteoverload tile about 20% slower. Their profiles
look pretty much the same before and after, so I can't really explain the changes.
I'd say, given that performance is mostly identical and very identical in bulk,
we might as well remove this code. It's nice to keep SkRecordDraw as dumb as possible.
BUG=skia:2378
R=reed@google.com, fmalita@chromium.org, mtklein@google.com, borenet@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/258183002
git-svn-id: http://skia.googlecode.com/svn/trunk@14433 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tests')
-rw-r--r-- | tests/RecordDrawTest.cpp | 24 |
1 files changed, 0 insertions, 24 deletions
diff --git a/tests/RecordDrawTest.cpp b/tests/RecordDrawTest.cpp index 8c6635489e..c4dab84273 100644 --- a/tests/RecordDrawTest.cpp +++ b/tests/RecordDrawTest.cpp @@ -45,27 +45,3 @@ DEF_TEST(RecordDraw_Culling, r) { // If culling weren't working, we'd see 8 commands recorded here. REPORTER_ASSERT(r, 5 == rerecord.count()); } - -DEF_TEST(RecordDraw_Clipping, r) { - SkRecord record; - SkRecorder recorder(SkRecorder::kWriteOnly_Mode, &record, W, H); - - // 8 draw commands. - recorder.save(); - recorder.clipRect(SkRect::MakeLTRB(0, 0, 100, 100)); - recorder.drawRect(SkRect::MakeLTRB(20, 20, 40, 40), SkPaint()); - recorder.save(); - // This clipRect makes the clip empty, so the next command does nothing. - recorder.clipRect(SkRect::MakeLTRB(200, 200, 300, 300)); - recorder.drawRect(SkRect::MakeLTRB(220, 220, 240, 240), SkPaint()); // Skipped - recorder.restore(); - recorder.restore(); - - // Same deal as above: we need full SkCanvas semantics for clip skipping to work. - SkRecord rerecord; - SkRecorder rerecorder(SkRecorder::kReadWrite_Mode, &rerecord, W, H); - SkRecordDraw(record, &rerecorder); - - // All commands except the one marked // Skipped will be preserved. - REPORTER_ASSERT(r, 7 == rerecord.count()); -} |