diff options
author | Mike Klein <mtklein@chromium.org> | 2016-10-19 21:05:17 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2016-10-20 16:59:23 +0000 |
commit | 2878e76247fd335dee755cfd4c9cd026804f9655 (patch) | |
tree | f99ff1d17f73373b503a0e4fce1b41dc54b44d9b /src/core/SkOpts.cpp | |
parent | d2fe3bce079671b0210d5c7cddcc712988d0b686 (diff) |
SkRasterPipeline refactor
- Give body and tail functions separate types. This frees a register in body functions, especially important for Windows.
- Fill out default, SSE4.1, and HSW versions of all functions. This means we don't have to mess around with SkNf_abi... all functions come from the same compilation unit where SkNf is a single consistent type.
- Move Stage::next() into SkRasterPipeline_opts.h as a static inline function.
- Remove Stage::ctx() entirely... fCtx is literally the same thing.
This is a step along the way toward building the entire pipeline in src/opts, removing the need for all the stages to be functions living in SkOpts.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3680
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot,Test-Ubuntu-Clang-GCE-CPU-AVX2-x86_64-Debug-ASAN-Trybot
Change-Id: I7de78ffebc15b9bad4eda187c9f50369cd7e5e42
Reviewed-on: https://skia-review.googlesource.com/3680
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'src/core/SkOpts.cpp')
-rw-r--r-- | src/core/SkOpts.cpp | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/src/core/SkOpts.cpp b/src/core/SkOpts.cpp index 627f0e3b21..16389484b4 100644 --- a/src/core/SkOpts.cpp +++ b/src/core/SkOpts.cpp @@ -144,8 +144,8 @@ namespace SkOpts { static_assert(SK_ARRAY_COUNT(body) == SkRasterPipeline::kNumStockStages, ""); SkOpts::VoidFn tail[] = { - (SkOpts::VoidFn)SK_OPTS_NS::just_return, - (SkOpts::VoidFn)SK_OPTS_NS::swap_src_dst, + (SkOpts::VoidFn)SK_OPTS_NS::just_return_tail, + (SkOpts::VoidFn)SK_OPTS_NS::swap_src_dst_tail, (SkOpts::VoidFn)SK_OPTS_NS::store_565_tail, (SkOpts::VoidFn)SK_OPTS_NS::store_srgb_tail, @@ -163,34 +163,34 @@ namespace SkOpts { (SkOpts::VoidFn)SK_OPTS_NS::lerp_u8_tail, (SkOpts::VoidFn)SK_OPTS_NS::lerp_565_tail, - (SkOpts::VoidFn)SK_OPTS_NS::lerp_constant_float, - - (SkOpts::VoidFn)SK_OPTS_NS::constant_color, - - (SkOpts::VoidFn)SK_OPTS_NS::dst, - (SkOpts::VoidFn)SK_OPTS_NS::dstatop, - (SkOpts::VoidFn)SK_OPTS_NS::dstin, - (SkOpts::VoidFn)SK_OPTS_NS::dstout, - (SkOpts::VoidFn)SK_OPTS_NS::dstover, - (SkOpts::VoidFn)SK_OPTS_NS::srcatop, - (SkOpts::VoidFn)SK_OPTS_NS::srcin, - (SkOpts::VoidFn)SK_OPTS_NS::srcout, - (SkOpts::VoidFn)SK_OPTS_NS::srcover, - (SkOpts::VoidFn)SK_OPTS_NS::clear, - (SkOpts::VoidFn)SK_OPTS_NS::modulate, - (SkOpts::VoidFn)SK_OPTS_NS::multiply, - (SkOpts::VoidFn)SK_OPTS_NS::plus_, - (SkOpts::VoidFn)SK_OPTS_NS::screen, - (SkOpts::VoidFn)SK_OPTS_NS::xor_, - (SkOpts::VoidFn)SK_OPTS_NS::colorburn, - (SkOpts::VoidFn)SK_OPTS_NS::colordodge, - (SkOpts::VoidFn)SK_OPTS_NS::darken, - (SkOpts::VoidFn)SK_OPTS_NS::difference, - (SkOpts::VoidFn)SK_OPTS_NS::exclusion, - (SkOpts::VoidFn)SK_OPTS_NS::hardlight, - (SkOpts::VoidFn)SK_OPTS_NS::lighten, - (SkOpts::VoidFn)SK_OPTS_NS::overlay, - (SkOpts::VoidFn)SK_OPTS_NS::softlight, + (SkOpts::VoidFn)SK_OPTS_NS::lerp_constant_float_tail, + + (SkOpts::VoidFn)SK_OPTS_NS::constant_color_tail, + + (SkOpts::VoidFn)SK_OPTS_NS::dst_tail, + (SkOpts::VoidFn)SK_OPTS_NS::dstatop_tail, + (SkOpts::VoidFn)SK_OPTS_NS::dstin_tail, + (SkOpts::VoidFn)SK_OPTS_NS::dstout_tail, + (SkOpts::VoidFn)SK_OPTS_NS::dstover_tail, + (SkOpts::VoidFn)SK_OPTS_NS::srcatop_tail, + (SkOpts::VoidFn)SK_OPTS_NS::srcin_tail, + (SkOpts::VoidFn)SK_OPTS_NS::srcout_tail, + (SkOpts::VoidFn)SK_OPTS_NS::srcover_tail, + (SkOpts::VoidFn)SK_OPTS_NS::clear_tail, + (SkOpts::VoidFn)SK_OPTS_NS::modulate_tail, + (SkOpts::VoidFn)SK_OPTS_NS::multiply_tail, + (SkOpts::VoidFn)SK_OPTS_NS::plus__tail, + (SkOpts::VoidFn)SK_OPTS_NS::screen_tail, + (SkOpts::VoidFn)SK_OPTS_NS::xor__tail, + (SkOpts::VoidFn)SK_OPTS_NS::colorburn_tail, + (SkOpts::VoidFn)SK_OPTS_NS::colordodge_tail, + (SkOpts::VoidFn)SK_OPTS_NS::darken_tail, + (SkOpts::VoidFn)SK_OPTS_NS::difference_tail, + (SkOpts::VoidFn)SK_OPTS_NS::exclusion_tail, + (SkOpts::VoidFn)SK_OPTS_NS::hardlight_tail, + (SkOpts::VoidFn)SK_OPTS_NS::lighten_tail, + (SkOpts::VoidFn)SK_OPTS_NS::overlay_tail, + (SkOpts::VoidFn)SK_OPTS_NS::softlight_tail, }; static_assert(SK_ARRAY_COUNT(tail) == SkRasterPipeline::kNumStockStages, ""); |