aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/SkRasterPipelineBench.cpp
diff options
context:
space:
mode:
authorGravatar Mike Klein <mtklein@chromium.org>2016-10-25 13:31:21 -0400
committerGravatar Mike Klein <mtklein@chromium.org>2016-10-25 18:04:16 +0000
commite9f74b89c09772dd5abae1c0709c711d7cdb6535 (patch)
tree96e72a059facdc06f0ea39f2037e77d08eac6453 /bench/SkRasterPipelineBench.cpp
parentaebfb45104eeb6dab5dbbedda13c2eaa7b7f7868 (diff)
SkRasterPipeline::compile().
I'm not yet caching these in the blitter, and speed is essentially unchanged in the bench where I am now building and compiling the pipeline only once. This may not be able to stay a simple std::function after I figure out caching, but for now it's a nice fit. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3911 Change-Id: I9545af589f73baf9f17cb4e6ace9a814c2478fe9 Reviewed-on: https://skia-review.googlesource.com/3911 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.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/bench/SkRasterPipelineBench.cpp b/bench/SkRasterPipelineBench.cpp
index bf71d9a8d9..bfe2110362 100644
--- a/bench/SkRasterPipelineBench.cpp
+++ b/bench/SkRasterPipelineBench.cpp
@@ -32,16 +32,18 @@ public:
}
void onDraw(int loops, SkCanvas*) override {
+ SkRasterPipeline p;
+ p.append(SkRasterPipeline::load_s_srgb, src);
+ p.append(SkRasterPipeline:: scale_u8, mask);
+ p.append(kF16 ? SkRasterPipeline::load_d_f16
+ : SkRasterPipeline::load_d_srgb, dst);
+ p.append(SkRasterPipeline:: srcover);
+ p.append(kF16 ? SkRasterPipeline::store_f16
+ : SkRasterPipeline::store_srgb, dst);
+ auto compiled = p.compile();
+
while (loops --> 0) {
- SkRasterPipeline p;
- p.append(SkRasterPipeline::load_s_srgb, src);
- p.append(SkRasterPipeline:: scale_u8, mask);
- p.append(kF16 ? SkRasterPipeline::load_d_f16
- : SkRasterPipeline::load_d_srgb, dst);
- p.append(SkRasterPipeline:: srcover);
- p.append(kF16 ? SkRasterPipeline::store_f16
- : SkRasterPipeline::store_srgb, dst);
- p.run(N);
+ compiled(0, N);
}
}
};