jumper, implement 2.2 stages with approx_powf
My main interest is getting rid of weird code, but it's also faster.
The new bench drops from 667 to 412.
Change-Id: Ibf889601284cf925780320c828394f79937dc705
Reviewed-on: https://skia-review.googlesource.com/14035
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
diff --git a/bench/SkRasterPipelineBench.cpp b/bench/SkRasterPipelineBench.cpp
index 0ae48ee..fa2df4b 100644
--- a/bench/SkRasterPipelineBench.cpp
+++ b/bench/SkRasterPipelineBench.cpp
@@ -90,3 +90,24 @@
}
};
DEF_BENCH( return (new SkRasterPipelineLegacyBench); )
+
+class SkRasterPipeline_2dot2 : public Benchmark {
+public:
+ bool isSuitableFor(Backend backend) override { return backend == kNonRendering_Backend; }
+ const char* onGetName() override {
+ return "SkRasterPipeline_2dot2";
+ }
+
+ void onDraw(int loops, SkCanvas*) override {
+ SkColor4f c = { 1.0f, 1.0f, 1.0f, 1.0f };
+ SkRasterPipeline p;
+ p.append(SkRasterPipeline::constant_color, &c);
+ p.append(SkRasterPipeline::from_2dot2);
+ p.append(SkRasterPipeline::to_2dot2);
+
+ while (loops --> 0) {
+ p.run(0,N);
+ }
+ }
+};
+DEF_BENCH( return (new SkRasterPipeline_2dot2); )