diff options
author | Mike Klein <mtklein@chromium.org> | 2016-10-25 10:27:33 -0400 |
---|---|---|
committer | Mike Klein <mtklein@chromium.org> | 2016-10-25 17:30:38 +0000 |
commit | aebfb45104eeb6dab5dbbedda13c2eaa7b7f7868 (patch) | |
tree | 7dcbf9bf86bd1b9fad0048dccbabb11e47a1d3fb /src/core/SkOpts.cpp | |
parent | cc813ae9a0afe4259f12b655d9336662a6e2c100 (diff) |
Move SkRasterPipeline further into SkOpts.
The portable code now becomes entirely focused on enum+ptr descriptions, leaving the concrete implementation of the pipeline to SkOpts::run_pipeline().
As implemented, the concrete implementation is basically the same, with a little more type safety.
Speed is essentially unchanged on my laptop, and that's having run_pipeline() rebuild its concrete state every call. There's room for improvement there if we split this into a compile_pipeline() / run_pipeline() sort of thing, which is my next planned CL.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3920
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Change-Id: Ie4c554f51040426de7c5c144afa5d9d9d8938012
Reviewed-on: https://skia-review.googlesource.com/3920
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 | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/src/core/SkOpts.cpp b/src/core/SkOpts.cpp index 16389484b4..c082b160ee 100644 --- a/src/core/SkOpts.cpp +++ b/src/core/SkOpts.cpp @@ -92,108 +92,6 @@ namespace SkOpts { DEFINE_DEFAULT(run_pipeline); #undef DEFINE_DEFAULT - SkOpts::VoidFn body[] = { - (SkOpts::VoidFn)SK_OPTS_NS::just_return, - (SkOpts::VoidFn)SK_OPTS_NS::swap_src_dst, - - (SkOpts::VoidFn)SK_OPTS_NS::store_565, - (SkOpts::VoidFn)SK_OPTS_NS::store_srgb, - (SkOpts::VoidFn)SK_OPTS_NS::store_f16, - - (SkOpts::VoidFn)SK_OPTS_NS::load_s_565, - (SkOpts::VoidFn)SK_OPTS_NS::load_s_srgb, - (SkOpts::VoidFn)SK_OPTS_NS::load_s_f16, - - (SkOpts::VoidFn)SK_OPTS_NS::load_d_565, - (SkOpts::VoidFn)SK_OPTS_NS::load_d_srgb, - (SkOpts::VoidFn)SK_OPTS_NS::load_d_f16, - - (SkOpts::VoidFn)SK_OPTS_NS::scale_u8, - - (SkOpts::VoidFn)SK_OPTS_NS::lerp_u8, - (SkOpts::VoidFn)SK_OPTS_NS::lerp_565, - (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, - }; - static_assert(SK_ARRAY_COUNT(body) == SkRasterPipeline::kNumStockStages, ""); - - SkOpts::VoidFn tail[] = { - (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, - (SkOpts::VoidFn)SK_OPTS_NS::store_f16_tail, - - (SkOpts::VoidFn)SK_OPTS_NS::load_s_565_tail, - (SkOpts::VoidFn)SK_OPTS_NS::load_s_srgb_tail, - (SkOpts::VoidFn)SK_OPTS_NS::load_s_f16_tail, - - (SkOpts::VoidFn)SK_OPTS_NS::load_d_565_tail, - (SkOpts::VoidFn)SK_OPTS_NS::load_d_srgb_tail, - (SkOpts::VoidFn)SK_OPTS_NS::load_d_f16_tail, - - (SkOpts::VoidFn)SK_OPTS_NS::scale_u8_tail, - - (SkOpts::VoidFn)SK_OPTS_NS::lerp_u8_tail, - (SkOpts::VoidFn)SK_OPTS_NS::lerp_565_tail, - (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, ""); - // Each Init_foo() is defined in src/opts/SkOpts_foo.cpp. void Init_ssse3(); void Init_sse41(); |