aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkOpts.cpp
diff options
context:
space:
mode:
authorGravatar Mike Klein <mtklein@chromium.org>2016-10-19 21:05:17 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-10-20 16:59:23 +0000
commit2878e76247fd335dee755cfd4c9cd026804f9655 (patch)
treef99ff1d17f73373b503a0e4fce1b41dc54b44d9b /src/core/SkOpts.cpp
parentd2fe3bce079671b0210d5c7cddcc712988d0b686 (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.cpp60
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, "");