Title: [164058] trunk/Source/WebCore
Revision
164058
Author
[email protected]
Date
2014-02-13 14:45:42 -0800 (Thu, 13 Feb 2014)

Log Message

Write FEComposite::computeArithmeticPixelsNeon() in terms of loadRGBA8AsFloat()
https://bugs.webkit.org/show_bug.cgi?id=128767

Reviewed by Dean Jackson.

This patch was inspired by Gabor Rapcsanyi's work in <https://bugs.webkit.org/show_bug.cgi?id=90669>.

Currently we duplicate code in FEComposite::computeArithmeticPixelsNeon() to read pixel data.
Instead we should use the convenience function WebCore::loadRGBA8AsFloat. This also resolves
an uninitialized variable compiler warning in the existing code.

* platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h:
(WebCore::FEComposite::computeArithmeticPixelsNeon):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (164057 => 164058)


--- trunk/Source/WebCore/ChangeLog	2014-02-13 22:34:18 UTC (rev 164057)
+++ trunk/Source/WebCore/ChangeLog	2014-02-13 22:45:42 UTC (rev 164058)
@@ -1,3 +1,19 @@
+2014-02-13  Daniel Bates  <[email protected]>
+
+        Write FEComposite::computeArithmeticPixelsNeon() in terms of loadRGBA8AsFloat()
+        https://bugs.webkit.org/show_bug.cgi?id=128767
+
+        Reviewed by Dean Jackson.
+
+        This patch was inspired by Gabor Rapcsanyi's work in <https://bugs.webkit.org/show_bug.cgi?id=90669>.
+
+        Currently we duplicate code in FEComposite::computeArithmeticPixelsNeon() to read pixel data.
+        Instead we should use the convenience function WebCore::loadRGBA8AsFloat. This also resolves
+        an uninitialized variable compiler warning in the existing code.
+
+        * platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h:
+        (WebCore::FEComposite::computeArithmeticPixelsNeon):
+
 2014-02-13  Myles C. Maxfield  <[email protected]>
 
         During a copy, position:fixed gets converted to position:absolute even if only part of the document is selected

Modified: trunk/Source/WebCore/platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h (164057 => 164058)


--- trunk/Source/WebCore/platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h	2014-02-13 22:34:18 UTC (rev 164057)
+++ trunk/Source/WebCore/platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h	2014-02-13 22:45:42 UTC (rev 164058)
@@ -49,14 +49,9 @@
     uint32_t* destinationEndPixel = destinationPixel + (pixelArrayLength >> 2);
 
     while (destinationPixel < destinationEndPixel) {
-        uint32x2_t temporary1 = vset_lane_u32(*sourcePixel, temporary1, 0);
-        uint16x4_t temporary2 = vget_low_u16(vmovl_u8(vreinterpret_u8_u32(temporary1)));
-        float32x4_t sourcePixelAsFloat = vcvtq_f32_u32(vmovl_u16(temporary2));
+        float32x4_t sourcePixelAsFloat = loadRGBA8AsFloat(sourcePixel);
+        float32x4_t destinationPixelAsFloat = loadRGBA8AsFloat(destinationPixel);
 
-        temporary1 = vset_lane_u32(*destinationPixel, temporary1, 0);
-        temporary2 = vget_low_u16(vmovl_u8(vreinterpret_u8_u32(temporary1)));
-        float32x4_t destinationPixelAsFloat = vcvtq_f32_u32(vmovl_u16(temporary2));
-
         float32x4_t result = vmulq_f32(sourcePixelAsFloat, k2x4);
         result = vmlaq_f32(result, destinationPixelAsFloat, k3x4);
         if (b1)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to