aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/opts/SkOpts_hsw.cpp
diff options
context:
space:
mode:
authorGravatar Mike Klein <mtklein@chromium.org>2016-10-19 16:45:16 -0400
committerGravatar Mike Klein <mtklein@chromium.org>2016-10-19 21:01:43 +0000
commitec07b0b9c1616c9e0acefef894b98b61662e5fda (patch)
tree8fa8759dbdaed252b047f2a55a42ee3529c04a4a /src/opts/SkOpts_hsw.cpp
parent21f74906a534b9296ba65c15df9093cadd6b33ab (diff)
Try again with SkOpts_hsw and 8x pipelines, attempt 2.
Originally reviewed: https://skia-review.googlesource.com/3667 This time around, don't forget swap_src_dst. CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3676 Change-Id: I127e7fb2bf9d3bfee61c3749fc1c334c9476cb4e Reviewed-on: https://skia-review.googlesource.com/3676 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'src/opts/SkOpts_hsw.cpp')
-rw-r--r--src/opts/SkOpts_hsw.cpp64
1 files changed, 63 insertions, 1 deletions
diff --git a/src/opts/SkOpts_hsw.cpp b/src/opts/SkOpts_hsw.cpp
index 53e2e5acdd..ecbb3e72b5 100644
--- a/src/opts/SkOpts_hsw.cpp
+++ b/src/opts/SkOpts_hsw.cpp
@@ -8,8 +8,70 @@
#include "SkOpts.h"
#define SK_OPTS_NS hsw
+#include "SkRasterPipeline_opts.h"
namespace SkOpts {
- void Init_hsw() { }
+ void Init_hsw() {
+
+ run_pipeline = SK_OPTS_NS::run_pipeline;
+
+ #define STAGE(stage) \
+ body[SkRasterPipeline::stage] = (SkOpts::VoidFn)SK_OPTS_NS::stage; \
+ tail[SkRasterPipeline::stage] = (SkOpts::VoidFn)SK_OPTS_NS::stage##_tail
+
+ STAGE(store_565);
+ STAGE(store_srgb);
+ STAGE(store_f16);
+
+ STAGE(load_s_565);
+ STAGE(load_s_srgb);
+ STAGE(load_s_f16);
+
+ STAGE(load_d_565);
+ STAGE(load_d_srgb);
+ STAGE(load_d_f16);
+
+ STAGE(scale_u8);
+
+ STAGE(lerp_u8);
+ STAGE(lerp_565);
+ #undef STAGE
+
+ #define STAGE(stage) \
+ body[SkRasterPipeline::stage] = (SkOpts::VoidFn)SK_OPTS_NS::stage; \
+ tail[SkRasterPipeline::stage] = (SkOpts::VoidFn)SK_OPTS_NS::stage
+
+ STAGE(just_return);
+ STAGE(swap_src_dst);
+ STAGE(lerp_constant_float);
+ STAGE(constant_color);
+
+ STAGE(dst);
+ STAGE(dstatop);
+ STAGE(dstin);
+ STAGE(dstout);
+ STAGE(dstover);
+ STAGE(srcatop);
+ STAGE(srcin);
+ STAGE(srcout);
+ STAGE(srcover);
+ STAGE(clear);
+ STAGE(modulate);
+ STAGE(multiply);
+ STAGE(plus_);
+ STAGE(screen);
+ STAGE(xor_);
+ STAGE(colorburn);
+ STAGE(colordodge);
+ STAGE(darken);
+ STAGE(difference);
+ STAGE(exclusion);
+ STAGE(hardlight);
+ STAGE(lighten);
+ STAGE(overlay);
+ STAGE(softlight);
+ #undef STAGE
+
+ }
}