[Webkit-unassigned] [Bug 90949] Optimizing blend filter to ARM-NEON with intrinsics
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Jul 12 02:10:38 PDT 2012
https://bugs.webkit.org/show_bug.cgi?id=90949
--- Comment #2 from Zoltan Herczeg <zherczeg at webkit.org> 2012-07-12 02:10:38 PST ---
(From update of attachment 151874)
Nice patch! Few comments:
View in context: https://bugs.webkit.org/attachment.cgi?id=151874&action=review
> Source/WebCore/ChangeLog:11
> + The feBlend SVG filter modes can be greatly fasten up with ARM-NEON since
> + we are able to calculate with 2 pixels (8 channels) at the same time.
> + The code is written with NEON intrinsics and it doesn't affect the
> + general - it has the same behaviour as the original algorithm.
Please mention the speedup of this patch somewhere.
> Source/WebCore/platform/graphics/filters/FEBlend.cpp:159
> + if (pixelArrayLength > 4)
> + platformApplyNEON(srcPixelArrayA, srcPixelArrayB, dstPixelArray, pixelArrayLength);
> + else
> + platformApplyGeneric(srcPixelArrayA, srcPixelArrayB, dstPixelArray, pixelArrayLength);
I think a single pixel case is rare, and would not worth to include the object code of the generic just because of this. It would be better to create an array with 2 pixels, copy there the one pixel, perform the algorithm and copy back the result.
> Source/WebCore/platform/graphics/filters/arm/FEBlendNEON.h:39
> +static inline uint16x8_t div255(uint16x8_t num, uint16x8_t sixteenConst255, uint16x8_t sixteenConstOne)
I don't like introducing global symbols like these. Can\t we simply move them inside the body of the function or define them as part of FEBlend?
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list