Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(236)

Issue 2481733003: Make SSE2/Neon convolution functions not to read extra bytes (Closed)

Created:
4 years, 1 month ago by xiangze.zhang
Modified:
4 years, 1 month ago
Reviewers:
mtklein_C
CC:
reviews_skia.org
Target Ref:
refs/heads/master
Project:
skia
Visibility:
Public.

Description

Make SSE2/Neon convolution functions not to read extra bytes This change makes SSE2/Neon horizontal convolution functions do not read extra pixels past the end of the buffer. So we can remove all the SIMD specific logic in SkConvolver to deal with last couple of rows and also avoid applying padding to convolution filters. Performance impact is small. Nanobench time change: SSE2 NEON bitmap_scale_filter_64_256 1% -2% bitmap_scale_filter_256_64 1% 2% bitmap_scale_filter_90_10 1% -1% bitmap_scale_filter_90_30 1% 0% bitmap_scale_filter_90_80 1% 0% bitmap_scale_filter_90_90 1% 1% bitmap_scale_filter_80_90 0% 0% bitmap_scale_filter_30_90 3% 6% bitmap_scale_filter_10_90 0% 2% BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2481733003 CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot Committed: https://skia.googlesource.com/skia/+/3f321351c9a79f3cc797fa2ef6d69db04415cf5b

Patch Set 1 #

Patch Set 2 : Bug fix #

Patch Set 3 : Remove unused parameter #

Patch Set 4 : improve neon performance #

Total comments: 5

Patch Set 5 : Change macros to functions #

Unified diffs Side-by-side diffs Delta from patch set Stats (+56 lines, -180 lines) Patch
M src/core/SkBitmapScaler.cpp View 1 2 8 chunks +8 lines, -16 lines 0 comments Download
M src/core/SkConvolver.h View 1 chunk +0 lines, -6 lines 0 comments Download
M src/core/SkConvolver.cpp View 3 chunks +2 lines, -19 lines 0 comments Download
M src/opts/SkBitmapFilter_opts_SSE2.cpp View 1 2 3 4 6 chunks +24 lines, -74 lines 0 comments Download
M src/opts/SkBitmapProcState_arm_neon.cpp View 1 2 3 4 5 chunks +22 lines, -63 lines 0 comments Download
M src/opts/opts_check_x86.cpp View 1 chunk +0 lines, -2 lines 0 comments Download

Messages

Total messages: 21 (13 generated)
xiangze.zhang
If this patch is ok, next step I'd like to port convolution functions to SkOpts ...
4 years, 1 month ago (2016-11-09 02:53:22 UTC) #3
xiangze.zhang
If this patch is ok, next step I'd like to port convolution functions to SkOpts ...
4 years, 1 month ago (2016-11-09 03:13:55 UTC) #5
mtklein_C
I've marked a few questions but only about superficial matters. The substance of this looks ...
4 years, 1 month ago (2016-11-09 09:25:04 UTC) #10
mtklein_C
I think "Housekeeper-PerCommit-InfraTests" is a new test bot, and it must not be reliable yet. ...
4 years, 1 month ago (2016-11-09 09:26:27 UTC) #11
xiangze.zhang
https://codereview.chromium.org/2481733003/diff/60001/src/opts/SkBitmapFilter_opts_SSE2.cpp File src/opts/SkBitmapFilter_opts_SSE2.cpp (right): https://codereview.chromium.org/2481733003/diff/60001/src/opts/SkBitmapFilter_opts_SSE2.cpp#newcode120 src/opts/SkBitmapFilter_opts_SSE2.cpp:120: #define ACCUM_REMAINDER(src, accum) { \ On 2016/11/09 09:25:04, mtklein_C ...
4 years, 1 month ago (2016-11-10 03:16:56 UTC) #12
mtklein_C
lgtm! Thanks for the updates.
4 years, 1 month ago (2016-11-10 13:20:42 UTC) #15
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2481733003/80001
4 years, 1 month ago (2016-11-10 13:43:39 UTC) #19
commit-bot: I haz the power
4 years, 1 month ago (2016-11-10 13:44:35 UTC) #21
Message was sent while issue was closed.
Committed patchset #5 (id:80001) as
https://skia.googlesource.com/skia/+/3f321351c9a79f3cc797fa2ef6d69db04415cf5b

Powered by Google App Engine
This is Rietveld 408576698