diff options
author | Mike Reed <reed@google.com> | 2016-10-21 10:43:36 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2016-10-21 15:02:45 +0000 |
commit | 9cdd2abc30520d6f425afbc2d7bd7b15f8b11ba1 (patch) | |
tree | 28058f1be6281ef93e6ecbe7f30bb7334ba4eef6 /bench/RecordingBench.cpp | |
parent | a9f64dec63b6f4169ba16f8b6c63fff5a6494029 (diff) |
add pipe to nanobench
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3801
Change-Id: Ia0b90b1e2947a7b9ae7cb340ef5cd5b3251bbd23
Reviewed-on: https://skia-review.googlesource.com/3801
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'bench/RecordingBench.cpp')
-rw-r--r-- | bench/RecordingBench.cpp | 53 |
1 files changed, 39 insertions, 14 deletions
diff --git a/bench/RecordingBench.cpp b/bench/RecordingBench.cpp index d8034ce5d5..69be911467 100644 --- a/bench/RecordingBench.cpp +++ b/bench/RecordingBench.cpp @@ -11,37 +11,42 @@ #include "SkLiteRecorder.h" #include "SkPictureRecorder.h" -RecordingBench::RecordingBench(const char* name, const SkPicture* pic, bool useBBH, bool lite) - : fName(name) - , fUseBBH(useBBH) { +PictureCentricBench::PictureCentricBench(const char* name, const SkPicture* pic) : fName(name) { // Flatten the source picture in case it's trivially nested (useless for timing). SkPictureRecorder rec; pic->playback(rec.beginRecording(pic->cullRect(), nullptr, SkPictureRecorder::kPlaybackDrawPicture_RecordFlag)); fSrc = rec.finishRecordingAsPicture(); - - // If we're recording into an SkLiteDL, also record _from_ one. - if (lite) { - fDL = SkLiteDL::New(pic->cullRect()); - SkLiteRecorder r; - r.reset(fDL.get()); - fSrc->playback(&r); - } } -const char* RecordingBench::onGetName() { +const char* PictureCentricBench::onGetName() { return fName.c_str(); } -bool RecordingBench::isSuitableFor(Backend backend) { +bool PictureCentricBench::isSuitableFor(Backend backend) { return backend == kNonRendering_Backend; } -SkIPoint RecordingBench::onGetSize() { +SkIPoint PictureCentricBench::onGetSize() { return SkIPoint::Make(SkScalarCeilToInt(fSrc->cullRect().width()), SkScalarCeilToInt(fSrc->cullRect().height())); } +/////////////////////////////////////////////////////////////////////////////////////////////////// + +RecordingBench::RecordingBench(const char* name, const SkPicture* pic, bool useBBH, bool lite) + : INHERITED(name, pic) + , fUseBBH(useBBH) +{ + // If we're recording into an SkLiteDL, also record _from_ one. + if (lite) { + fDL = SkLiteDL::New(fSrc->cullRect()); + SkLiteRecorder r; + r.reset(fDL.get()); + fSrc->playback(&r); + } +} + void RecordingBench::onDraw(int loops, SkCanvas*) { if (fDL) { SkLiteRecorder rec; @@ -61,3 +66,23 @@ void RecordingBench::onDraw(int loops, SkCanvas*) { } } } + +/////////////////////////////////////////////////////////////////////////////////////////////////// + +#include "SkPipe.h" +#include "SkStream.h" + +PipingBench::PipingBench(const char* name, const SkPicture* pic) : INHERITED(name, pic) { + fName.prepend("pipe_"); +} + +void PipingBench::onDraw(int loops, SkCanvas*) { + SkDynamicMemoryWStream stream; + SkPipeSerializer serializer; + + while (loops --> 0) { + fSrc->playback(serializer.beginWrite(fSrc->cullRect(), &stream)); + serializer.endWrite(); + stream.reset(); + } +} |