From ec07b0b9c1616c9e0acefef894b98b61662e5fda Mon Sep 17 00:00:00 2001 From: Mike Klein Date: Wed, 19 Oct 2016 16:45:16 -0400 Subject: 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 Commit-Queue: Mike Klein --- src/opts/SkOpts_hsw.cpp | 64 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) 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 + + } } -- cgit v1.2.3