diff options
author | Mike Klein <mtklein@chromium.org> | 2017-01-06 10:21:56 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-01-06 16:14:00 +0000 |
commit | 8c8cb5bfc547229422a33db5c344fe1542bf00a7 (patch) | |
tree | 55c4405c03f8e99b91822b3ae8b3dd7b15c3307e | |
parent | a3fa2efcfc376b4823fe75d2027a74a54a639880 (diff) |
simplify by removing _d stages
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD
Change-Id: I75e232faee6ad48f65bac5b119a461280b27bbc8
Reviewed-on: https://skia-review.googlesource.com/6661
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
-rw-r--r-- | bench/SkRasterPipelineBench.cpp | 9 | ||||
-rw-r--r-- | src/core/SkRasterPipeline.cpp | 18 | ||||
-rw-r--r-- | src/core/SkRasterPipeline.h | 17 | ||||
-rw-r--r-- | src/core/SkRasterPipelineBlitter.cpp | 12 | ||||
-rw-r--r-- | src/opts/SkRasterPipeline_opts.h | 26 | ||||
-rw-r--r-- | tests/SkRasterPipelineTest.cpp | 4 |
6 files changed, 34 insertions, 52 deletions
diff --git a/bench/SkRasterPipelineBench.cpp b/bench/SkRasterPipelineBench.cpp index 376efdeb84..6d9bb49f50 100644 --- a/bench/SkRasterPipelineBench.cpp +++ b/bench/SkRasterPipelineBench.cpp @@ -45,13 +45,14 @@ public: p.append(SkRasterPipeline::load_8888, &src_ctx); p.append_from_srgb(kUnpremul_SkAlphaType); p.append(SkRasterPipeline::scale_u8, &mask_ctx); + p.append(SkRasterPipeline::move_src_dst); if (kF16) { - p.append(SkRasterPipeline::load_f16_d, &dst_ctx); + p.append(SkRasterPipeline::load_f16, &dst_ctx); } else { - p.append(SkRasterPipeline::load_8888_d, &dst_ctx); - p.append_from_srgb_d(kPremul_SkAlphaType); + p.append(SkRasterPipeline::load_8888, &dst_ctx); + p.append_from_srgb(kPremul_SkAlphaType); } - p.append(SkRasterPipeline::srcover); + p.append(SkRasterPipeline::dstover); if (kF16) { p.append(SkRasterPipeline::store_f16, &dst_ctx); } else { diff --git a/src/core/SkRasterPipeline.cpp b/src/core/SkRasterPipeline.cpp index 00ba81e6f3..7b3d49d413 100644 --- a/src/core/SkRasterPipeline.cpp +++ b/src/core/SkRasterPipeline.cpp @@ -11,14 +11,7 @@ SkRasterPipeline::SkRasterPipeline() {} void SkRasterPipeline::append(StockStage stage, void* ctx) { -#ifdef SK_DEBUG - switch (stage) { - case from_srgb: - case from_srgb_d: - SkDEBUGFAIL("Please use append_srgb[_d]() instead."); - default: break; - } -#endif + SkASSERT(stage != from_srgb); fStages.push_back({stage, ctx}); } @@ -67,12 +60,3 @@ void SkRasterPipeline::append_from_srgb(SkAlphaType at) { this->append(SkRasterPipeline::clamp_a); } } - -void SkRasterPipeline::append_from_srgb_d(SkAlphaType at) { - //this->append(from_srgb_d); - fStages.push_back({from_srgb_d, nullptr}); - - if (at == kPremul_SkAlphaType) { - this->append(SkRasterPipeline::clamp_a_d); - } -} diff --git a/src/core/SkRasterPipeline.h b/src/core/SkRasterPipeline.h index 3b18b73470..61a44eb1db 100644 --- a/src/core/SkRasterPipeline.h +++ b/src/core/SkRasterPipeline.h @@ -58,16 +58,16 @@ #define SK_RASTER_PIPELINE_STAGES(M) \ M(trace) M(registers) \ - M(move_src_dst) M(move_dst_src) M(swap_rb) M(swap_rb_d) \ - M(clamp_0) M(clamp_1) M(clamp_a) M(clamp_a_d) \ + M(move_src_dst) M(move_dst_src) M(swap) \ + M(clamp_0) M(clamp_1) M(clamp_a) \ M(unpremul) M(premul) \ - M(set_rgb) \ - M(from_srgb) M(from_srgb_d) M(to_srgb) \ + M(set_rgb) M(swap_rb) \ + M(from_srgb) M(to_srgb) \ M(from_2dot2) M(to_2dot2) \ M(constant_color) M(store_f32) \ - M(load_565) M(load_565_d) M(store_565) \ - M(load_f16) M(load_f16_d) M(store_f16) \ - M(load_8888) M(load_8888_d) M(store_8888) \ + M(load_565) M(store_565) \ + M(load_f16) M(store_f16) \ + M(load_8888) M(store_8888) \ M(load_tables) M(store_tables) \ M(scale_u8) M(scale_1_float) \ M(lerp_u8) M(lerp_565) M(lerp_1_float) \ @@ -122,8 +122,7 @@ public: // Conversion from sRGB can be subtly tricky when premultiplication is involved. // Use these helpers to keep things sane. - void append_from_srgb (SkAlphaType); - void append_from_srgb_d(SkAlphaType); + void append_from_srgb(SkAlphaType); private: std::vector<Stage> fStages; diff --git a/src/core/SkRasterPipelineBlitter.cpp b/src/core/SkRasterPipelineBlitter.cpp index cbdb09faa4..9fad0b4752 100644 --- a/src/core/SkRasterPipelineBlitter.cpp +++ b/src/core/SkRasterPipelineBlitter.cpp @@ -186,19 +186,21 @@ SkBlitter* SkRasterPipelineBlitter::Create(const SkPixmap& dst, void SkRasterPipelineBlitter::append_load_d(SkRasterPipeline* p) const { SkASSERT(supported(fDst.info())); + p->append(SkRasterPipeline::move_src_dst); switch (fDst.info().colorType()) { - case kRGB_565_SkColorType: p->append(SkRasterPipeline::load_565_d, &fDstPtr); break; + case kRGB_565_SkColorType: p->append(SkRasterPipeline::load_565, &fDstPtr); break; case kBGRA_8888_SkColorType: - case kRGBA_8888_SkColorType: p->append(SkRasterPipeline::load_8888_d, &fDstPtr); break; - case kRGBA_F16_SkColorType: p->append(SkRasterPipeline::load_f16_d, &fDstPtr); break; + case kRGBA_8888_SkColorType: p->append(SkRasterPipeline::load_8888, &fDstPtr); break; + case kRGBA_F16_SkColorType: p->append(SkRasterPipeline::load_f16, &fDstPtr); break; default: break; } if (fDst.info().colorType() == kBGRA_8888_SkColorType) { - p->append(SkRasterPipeline::swap_rb_d); + p->append(SkRasterPipeline::swap_rb); } if (fDst.info().gammaCloseToSRGB()) { - p->append_from_srgb_d(fDst.info().alphaType()); + p->append_from_srgb(fDst.info().alphaType()); } + p->append(SkRasterPipeline::swap); } void SkRasterPipelineBlitter::append_store(SkRasterPipeline* p) const { diff --git a/src/opts/SkRasterPipeline_opts.h b/src/opts/SkRasterPipeline_opts.h index 9721e2abef..143a9ece79 100644 --- a/src/opts/SkRasterPipeline_opts.h +++ b/src/opts/SkRasterPipeline_opts.h @@ -44,8 +44,10 @@ namespace { // &load_8888 // (src ptr) // &from_srgb - // &load_f16_d + // &move_src_dst + // &load_f16 // (dst ptr) + // &swap // &srcover // &store_f16 // (dst ptr) @@ -92,12 +94,6 @@ SI void SK_VECTORCALL just_return(size_t, void**, SkNf, SkNf, SkNf, SkNf, name##_kernel(x_tail/N, x_tail%N, r,g,b,a, dr,dg,db,da); \ next(x_tail,p, r,g,b,a, dr,dg,db,da); \ } \ - SI void SK_VECTORCALL name##_d(size_t x_tail, void** p, \ - SkNf r, SkNf g, SkNf b, SkNf a, \ - SkNf dr, SkNf dg, SkNf db, SkNf da) { \ - name##_kernel(x_tail/N, x_tail%N, dr,dg,db,da, r,g,b,a); \ - next(x_tail,p, r,g,b,a, dr,dg,db,da); \ - } \ static SK_ALWAYS_INLINE void name##_kernel(size_t x, size_t tail, \ SkNf& r, SkNf& g, SkNf& b, SkNf& a, \ SkNf& dr, SkNf& dg, SkNf& db, SkNf& da) @@ -113,13 +109,6 @@ SI void SK_VECTORCALL just_return(size_t, void**, SkNf, SkNf, SkNf, SkNf, name##_kernel(ctx, x_tail/N, x_tail%N, r,g,b,a, dr,dg,db,da); \ next(x_tail,p, r,g,b,a, dr,dg,db,da); \ } \ - SI void SK_VECTORCALL name##_d(size_t x_tail, void** p, \ - SkNf r, SkNf g, SkNf b, SkNf a, \ - SkNf dr, SkNf dg, SkNf db, SkNf da) { \ - auto ctx = (Ctx)load_and_increment(&p); \ - name##_kernel(ctx, x_tail/N, x_tail%N, dr,dg,db,da, r,g,b,a); \ - next(x_tail,p, r,g,b,a, dr,dg,db,da); \ - } \ static SK_ALWAYS_INLINE void name##_kernel(Ctx ctx, size_t x, size_t tail, \ SkNf& r, SkNf& g, SkNf& b, SkNf& a, \ SkNf& dr, SkNf& dg, SkNf& db, SkNf& da) @@ -380,6 +369,7 @@ STAGE_CTX(set_rgb, const float*) { g = ctx[1]; b = ctx[2]; } +STAGE(swap_rb) { SkTSwap(r,b); } STAGE(move_src_dst) { dr = r; @@ -393,8 +383,12 @@ STAGE(move_dst_src) { b = db; a = da; } - -STAGE(swap_rb) { SkTSwap(r, b); } +STAGE(swap) { + SkTSwap(r,dr); + SkTSwap(g,dg); + SkTSwap(b,db); + SkTSwap(a,da); +} STAGE(from_srgb) { r = sk_linear_from_srgb_math(r); diff --git a/tests/SkRasterPipelineTest.cpp b/tests/SkRasterPipelineTest.cpp index 50c417f5f0..ddd84e7cce 100644 --- a/tests/SkRasterPipelineTest.cpp +++ b/tests/SkRasterPipelineTest.cpp @@ -22,7 +22,9 @@ DEF_TEST(SkRasterPipeline, r) { SkRasterPipeline p; p.append(SkRasterPipeline::load_f16, &load_s_ctx); - p.append(SkRasterPipeline::load_f16_d, &load_d_ctx); + p.append(SkRasterPipeline::move_src_dst); + p.append(SkRasterPipeline::load_f16, &load_d_ctx); + p.append(SkRasterPipeline::swap); p.append(SkRasterPipeline::srcover); p.append(SkRasterPipeline::store_f16, &store_ctx); p.run(0,0, 1); |