aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/SkRasterPipelineBench.cpp
diff options
context:
space:
mode:
authorGravatar Mike Klein <mtklein@chromium.org>2017-01-17 10:24:15 -0500
committerGravatar Mike Klein <mtklein@chromium.org>2017-01-17 15:56:11 +0000
commitf76885694d4345363cb541170d18040a5c3f01cc (patch)
tree03078efabaa8a6126b9a018ed250282ef7e3e504 /bench/SkRasterPipelineBench.cpp
parentb5a1d41cc7d4995d473024a1a13020ad06870957 (diff)
Add a bench to exercise legacy-mode SkRasterPipeline behavior.
No fancy f16 or sRGB here... just good old legacy 8888. Change-Id: I21eb7c0d8e2c7a7d92e9d8a8bae9d318c4daa7e5 Reviewed-on: https://skia-review.googlesource.com/7109 Reviewed-by: Mike Klein <mtklein@chromium.org> Reviewed-by: Herb Derby <herb@google.com> Commit-Queue: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'bench/SkRasterPipelineBench.cpp')
-rw-r--r--bench/SkRasterPipelineBench.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/bench/SkRasterPipelineBench.cpp b/bench/SkRasterPipelineBench.cpp
index 6d9bb49f50..9afc029c30 100644
--- a/bench/SkRasterPipelineBench.cpp
+++ b/bench/SkRasterPipelineBench.cpp
@@ -76,3 +76,38 @@ DEF_BENCH( return (new SkRasterPipelineBench< true, true>); )
DEF_BENCH( return (new SkRasterPipelineBench<false, true>); )
DEF_BENCH( return (new SkRasterPipelineBench< true, false>); )
DEF_BENCH( return (new SkRasterPipelineBench<false, false>); )
+
+template <bool kCompiled>
+class SkRasterPipelineLegacyBench : public Benchmark {
+public:
+ bool isSuitableFor(Backend backend) override { return backend == kNonRendering_Backend; }
+ const char* onGetName() override {
+ return kCompiled ? "SkRasterPipeline_legacy_compile"
+ : "SkRasterPipeline_legacy_run";
+ }
+
+ void onDraw(int loops, SkCanvas*) override {
+ void* src_ctx = src;
+ void* dst_ctx = dst;
+
+ SkRasterPipeline p;
+ p.append(SkRasterPipeline::load_8888, &dst_ctx);
+ p.append(SkRasterPipeline::move_src_dst);
+ p.append(SkRasterPipeline::load_8888, &src_ctx);
+ p.append(SkRasterPipeline::srcover);
+ p.append(SkRasterPipeline::store_8888, &dst_ctx);
+
+ if (kCompiled) {
+ auto compiled = p.compile();
+ while (loops --> 0) {
+ compiled(0,0, N);
+ }
+ } else {
+ while (loops --> 0) {
+ p.run(0,0, N);
+ }
+ }
+ }
+};
+DEF_BENCH( return (new SkRasterPipelineLegacyBench< true>); )
+DEF_BENCH( return (new SkRasterPipelineLegacyBench<false>); )