aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/opts/SkBlurImage_opts_neon.cpp
Commit message (Collapse)AuthorAge
* Fix skia bug 2845Gravatar kui.zheng2015-02-17
| | | | | | | | | | Shouldn't call Fast Blur path(DoubleRowBoxBlur_NEON) when kernelsize is 1. Or, uint16x8_t resultPixels will be overflow. BUG=skia:2845 R=senorblanco@chromium.org Review URL: https://codereview.chromium.org/587543003
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2014-01-14
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@13061 2bbb7eff-a529-9590-31e7-b0007b416f81
* NEON fast path for box blurGravatar commit-bot@chromium.org2014-01-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Revert the revert of (ARM Skia NEON patches - 34 - Blur Filter - ↵Gravatar robertphillips@google.com2013-12-09
| | | | | | https://codereview.chromium.org/109403004/) git-svn-id: http://skia.googlecode.com/svn/trunk@12581 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reverting r12568 (ARM Skia NEON patches - 34 - Blur Filter - ↵Gravatar robertphillips@google.com2013-12-09
| | | | | | 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
* ARM Skia NEON patches - 34 - Blur FilterGravatar commit-bot@chromium.org2013-12-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Do proper NEON checking for SkBoxBlur procs.Gravatar senorblanco@chromium.org2013-12-04
| | | | | | | | | 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
* Implement a NEON version of the RGBA gaussian blur. This shows a 9-15% ↵Gravatar senorblanco@chromium.org2013-12-04
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