diff options
author | 2016-07-12 15:00:46 -0700 | |
---|---|---|
committer | 2016-07-12 15:00:46 -0700 | |
commit | 2edf0c6a719b8dff4365628cf3b4481c5035f07a (patch) | |
tree | 63fa587c2ed531dac43652d94bb098bdedf1afb4 /tests/SkBlend_optsTest.cpp | |
parent | 7d3ff7142360f456be4e21e64c6c014cc919785e (diff) |
Remove bloat from SkBlend_opts.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2130183003
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
Review-Url: https://codereview.chromium.org/2130183003
Diffstat (limited to 'tests/SkBlend_optsTest.cpp')
-rw-r--r-- | tests/SkBlend_optsTest.cpp | 31 |
1 files changed, 14 insertions, 17 deletions
diff --git a/tests/SkBlend_optsTest.cpp b/tests/SkBlend_optsTest.cpp index 9142f9d7a1..caabc60445 100644 --- a/tests/SkBlend_optsTest.cpp +++ b/tests/SkBlend_optsTest.cpp @@ -13,24 +13,25 @@ #include "SkImage.h" #include "SkImage_Base.h" #include "SkOpts.h" +#include "SkPM4fPriv.h" #include "SkNx.h" #include "Test.h" -#include "../include/core/SkImageInfo.h" typedef void (*Blender)(uint32_t* dst, const uint32_t* const srcStart, int ndst, const int nsrc); -namespace sk_default { -extern void brute_force_srcover_srgb_srgb( - uint32_t* dst, const uint32_t* const srcStart, int ndst, const int nsrc); +static void brute_force_srcover_srgb_srgb( + uint32_t* dst, const uint32_t* const src, int ndst, const int nsrc) { + while (ndst > 0) { + int n = SkTMin(ndst, nsrc); + + for (int i = 0; i < n; i++) { + srcover_blend_srgb8888_srgb_1(dst++, srgb_to_linear(to_4f(src[i]))); + } + ndst -= n; + } } namespace sk_default { -extern void trivial_srcover_srgb_srgb( - uint32_t* dst, const uint32_t* const srcStart, int ndst, const int nsrc); - -extern void best_non_simd_srcover_srgb_srgb( - uint32_t* dst, const uint32_t* const srcStart, int ndst, const int nsrc); - extern void srcover_srgb_srgb( uint32_t* dst, const uint32_t* const srcStart, int ndst, const int nsrc); } @@ -84,9 +85,9 @@ static void test_blender( SkAutoTArray<uint32_t> testDst(width); for (int y = 0; y < pixmap.height(); y++) { - memset(correctDst.get(), 0, width * sizeof(uint32_t)); - memset(testDst.get(), 0, width * sizeof(uint32_t)); - sk_default::brute_force_srcover_srgb_srgb(correctDst.get(), src, width, width); + sk_bzero(correctDst.get(), width * sizeof(uint32_t)); + sk_bzero(testDst.get(), width * sizeof(uint32_t)); + brute_force_srcover_srgb_srgb(correctDst.get(), src, width, width); blender(testDst.get(), src, width, width); for (int x = 0; x < width; x++) { REPORTER_ASSERT_MESSAGE( @@ -100,8 +101,6 @@ static void test_blender( DEF_TEST(SkBlend_optsCheck, reporter) { std::vector<Spec> specs = { - Spec{sk_default::trivial_srcover_srgb_srgb, "trivial"}, - Spec{sk_default::best_non_simd_srcover_srgb_srgb, "best_non_simd"}, Spec{sk_default::srcover_srgb_srgb, "default"}, }; #if defined(SK_CPU_X86) && !defined(SK_BUILD_NO_OPTS) @@ -121,8 +120,6 @@ DEF_TEST(SkBlend_optsCheck, reporter) { } } - - DEF_TEST(SkBlend_optsSqrtCheck, reporter) { for (int c = 0; c < 256; c++) { Sk4f i{(float)c}; |