[webkit-reviews] review canceled: [Bug 90949] Optimizing blend filter to ARM-NEON with intrinsics : [Attachment 151874] patch
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Fri Jul 13 06:08:04 PDT 2012
Gabor Rapcsanyi <rgabor at webkit.org> has canceled Gabor Rapcsanyi
<rgabor at webkit.org>'s request for review:
Bug 90949: Optimizing blend filter to ARM-NEON with intrinsics
https://bugs.webkit.org/show_bug.cgi?id=90949
Attachment 151874: patch
https://bugs.webkit.org/attachment.cgi?id=151874&action=review
------- Additional Comments from Gabor Rapcsanyi <rgabor at webkit.org>
(In reply to comment #2)
> (From update of attachment 151874 [details])
> 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.
>
With this NEON optimization the blending is ~4.5 times faster for each mode.
> > 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.
>
Ok I solved that case with platformApplyNEON as well.
> > 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?
I wrapped the div255 and the others into FEBlendUtilitiesNEON class so they are
not global symbols anymore.
More information about the webkit-reviews
mailing list