History log of /external/skia/src/opts/SkBlurImage_opts_neon.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
2e9a7157ee8ce47dae6e692162440c4f94a05574 14-Jan-2014 skia.committer@gmail.com <skia.committer@gmail.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Sanitizing source files in Housekeeper-Nightly

git-svn-id: http://skia.googlecode.com/svn/trunk@13061 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/opts/SkBlurImage_opts_neon.cpp
c45ece5f7f53e2d1dacfe71d407ff495dfdc0f58 13-Jan-2014 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> NEON fast path for box blur

Calculate 8 channels in parallel by using 16-bits to store each channel. Due to the limitation of VQRDMULH, (int16 * int16 * 2 + 0x8000) >> 16, the fast path can only support kernelSize < 128.
8 significant bits are kept at least in each stage, the final error should less-equal than 1.

Pre-fetching memory for X-direction read. In fact pre-fetching memory doesn't help much for Y direction read, since it is a waste to load a cache line for only read 8 bytes.(I left it there to keep the symmetry. pre-fetch is cheap :) )

bench data on Nexus 10
before:
running bench [640 480] blur_image_filter_large_10.00_10.00 8888: cmsecs = 25081.48
running bench [640 480] blur_image_filter_small_10.00_10.00 8888: cmsecs = 25038.04
running bench [640 480] blur_image_filter_large_1.00_1.00 8888: cmsecs = 25209.04
running bench [640 480] blur_image_filter_small_1.00_1.00 8888: cmsecs = 24928.01
running bench [640 480] blur_image_filter_large_0.00_1.00 8888: cmsecs = 17160.98
running bench [640 480] blur_image_filter_large_0.00_10.00 8888: cmsecs = 17924.11
running bench [640 480] blur_image_filter_large_1.00_0.00 8888: cmsecs = 14609.19
running bench [640 480] blur_image_filter_large_10.00_0.00 8888: cmsecs = 14625.91

after:
running bench [640 480] blur_image_filter_large_10.00_10.00 8888: cmsecs = 14848.42
running bench [640 480] blur_image_filter_small_10.00_10.00 8888: cmsecs = 16037.29
running bench [640 480] blur_image_filter_large_1.00_1.00 8888: cmsecs = 14819.55
running bench [640 480] blur_image_filter_small_1.00_1.00 8888: cmsecs = 14563.69
running bench [640 480] blur_image_filter_large_0.00_1.00 8888: cmsecs = 11905.34
running bench [640 480] blur_image_filter_large_0.00_10.00 8888: cmsecs = 11883.85
running bench [640 480] blur_image_filter_large_1.00_0.00 8888: cmsecs = 9576.51
running bench [640 480] blur_image_filter_large_10.00_0.00 8888: cmsecs = 9793.84

BUG=
R=senorblanco@chromium.org, mtklein@google.com, reed@google.com, kevin.petit@arm.com, kevin.petit.arm@gmail.com

Author: zheng.xu@arm.com

Review URL: https://codereview.chromium.org/105893003

git-svn-id: http://skia.googlecode.com/svn/trunk@13036 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/opts/SkBlurImage_opts_neon.cpp
871840d60608dd9d55577a18293f545165eebe05 09-Dec-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Revert the revert of (ARM Skia NEON patches - 34 - Blur Filter - https://codereview.chromium.org/109403004/)



git-svn-id: http://skia.googlecode.com/svn/trunk@12581 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/opts/SkBlurImage_opts_neon.cpp
8bbf6b92eec7f5e862b0544e313611ffccdd3927 09-Dec-2013 robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> Reverting r12568 (ARM Skia NEON patches - 34 - Blur Filter - https://codereview.chromium.org/109403004) due to image quality regressions on the N4.



git-svn-id: http://skia.googlecode.com/svn/trunk@12578 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/opts/SkBlurImage_opts_neon.cpp
2a7d4ddb17e496de6425267fe56653806da07878 09-Dec-2013 commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> ARM Skia NEON patches - 34 - Blur Filter
Improve a little on Blur

Grouping operations gives a 5-15% speed improvement on a Cortex-A15 based Chromebook.

before:
running bench [640 480] blur_image_filter_large_10.00_10.00 8888: cmsecs = 30887.69
running bench [640 480] blur_image_filter_small_10.00_10.00 8888: cmsecs = 30751.35
running bench [640 480] blur_image_filter_large_1.00_1.00 8888: cmsecs = 30757.92
running bench [640 480] blur_image_filter_small_1.00_1.00 8888: cmsecs = 30673.88
running bench [640 480] blur_image_filter_large_0.00_1.00 8888: cmsecs = 19602.17
running bench [640 480] blur_image_filter_large_0.00_10.00 8888: cmsecs = 20613.81
running bench [640 480] blur_image_filter_large_1.00_0.00 8888: cmsecs = 17855.46
running bench [640 480] blur_image_filter_large_10.00_0.00 8888: cmsecs = 17957.79

after:
running bench [640 480] blur_image_filter_large_10.00_10.00 8888: cmsecs = 27015.75
running bench [640 480] blur_image_filter_small_10.00_10.00 8888: cmsecs = 27148.02
running bench [640 480] blur_image_filter_large_1.00_1.00 8888: cmsecs = 27241.60
running bench [640 480] blur_image_filter_small_1.00_1.00 8888: cmsecs = 27077.44
running bench [640 480] blur_image_filter_large_0.00_1.00 8888: cmsecs = 18458.10
running bench [640 480] blur_image_filter_large_0.00_10.00 8888: cmsecs = 19643.42
running bench [640 480] blur_image_filter_large_1.00_0.00 8888: cmsecs = 16176.73
running bench [640 480] blur_image_filter_large_10.00_0.00 8888: cmsecs = 16450.50

Signed-off-by: Kévin PETIT <kevin.petit@arm.com>

BUG=
R=senorblanco@chromium.org, mtklein@google.com, luisjoseromeroesclusa@hotmail.com

Author: kevin.petit.arm@gmail.com

Review URL: https://codereview.chromium.org/109403004

git-svn-id: http://skia.googlecode.com/svn/trunk@12568 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/opts/SkBlurImage_opts_neon.cpp
bdb677a277e0285da5293adc0f1d40101fad4a69 04-Dec-2013 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Do proper NEON checking for SkBoxBlur procs.

TBR=mtklein
BUG=

Review URL: https://codereview.chromium.org/98373003

git-svn-id: http://skia.googlecode.com/svn/trunk@12490 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/opts/SkBlurImage_opts_neon.cpp
1d62f42e2169740f641ebd3c90055a947e636a98 04-Dec-2013 senorblanco@chromium.org <senorblanco@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> Implement a NEON version of the RGBA gaussian blur. This shows a 9-15% speedup on Nexus-10.

R=mtklein@google.com, mtklein

before:
running bench [640 480] blur_image_filter_large_10.00_10.00 8888: cmsecs = 33063.23
running bench [640 480] blur_image_filter_small_10.00_10.00 8888: cmsecs = 32800.25
running bench [640 480] blur_image_filter_large_1.00_1.00 8888: cmsecs = 33017.88
running bench [640 480] blur_image_filter_small_1.00_1.00 8888: cmsecs = 32743.35
running bench [640 480] blur_image_filter_large_0.00_1.00 8888: cmsecs = 21024.04
running bench [640 480] blur_image_filter_large_0.00_10.00 8888: cmsecs = 22904.15
running bench [640 480] blur_image_filter_large_1.00_0.00 8888: cmsecs = 18738.08
running bench [640 480] blur_image_filter_large_10.00_0.00 8888: cmsecs = 18798.98

after:
running bench [640 480] blur_image_filter_large_10.00_10.00 8888: cmsecs = 30180.96
running bench [640 480] blur_image_filter_small_10.00_10.00 8888: cmsecs = 29861.90
running bench [640 480] blur_image_filter_large_1.00_1.00 8888: cmsecs = 30178.98
running bench [640 480] blur_image_filter_small_1.00_1.00 8888: cmsecs = 29911.25
running bench [640 480] blur_image_filter_large_0.00_1.00 8888: cmsecs = 19344.35
running bench [640 480] blur_image_filter_large_0.00_10.00 8888: cmsecs = 19957.07
running bench [640 480] blur_image_filter_large_1.00_0.00 8888: cmsecs = 17158.84
running bench [640 480] blur_image_filter_large_10.00_0.00 8888: cmsecs = 17330.73

Review URL: https://codereview.chromium.org/99933004

git-svn-id: http://skia.googlecode.com/svn/trunk@12486 2bbb7eff-a529-9590-31e7-b0007b416f81
/external/skia/src/opts/SkBlurImage_opts_neon.cpp