Disable neon in qcms (patch brought over from firefox-esr)
authorPeter Michael Green <plugwash@raspbian.org>
Tue, 27 Oct 2020 20:24:05 +0000 (20:24 +0000)
committerPeter Michael Green <plugwash@raspbian.org>
Tue, 27 Oct 2020 20:24:05 +0000 (20:24 +0000)
debian/changelog
debian/patches/disable-neon-in-qcms.patch [new file with mode: 0644]
debian/patches/series
gfx/qcms/qcmsint.h
gfx/qcms/transform.cpp
gfx/tests/gtest/TestQcms.cpp

index 0f18d77ad68465adb8c0bd38edba289571487629..21527d0902ec5f8edab5e8f914c1e73e00c42dc3 100644 (file)
@@ -18,6 +18,7 @@ thunderbird (1:78.4.0-1~deb10u1+rpi1) buster-staging; urgency=medium
 
   [changes brought over from firefox-esr 78.3.0esr-2+rpi1 by Peter Michael Green]
   * Clean up pycache directories.
+  * Disable neon in qcms.
 
  -- Raspbian forward porter <root@raspbian.org>  Mon, 26 Oct 2020 12:12:48 +0000
 
diff --git a/debian/patches/disable-neon-in-qcms.patch b/debian/patches/disable-neon-in-qcms.patch
new file mode 100644 (file)
index 0000000..1f9888d
--- /dev/null
@@ -0,0 +1,105 @@
+From: Peter Michael Green <plugwash@raspbian.org>
+Date: Wed, 7 Oct 2020 19:41:49 +0000
+X-Dgit-Generated: 78.3.0esr-2+rpi1 b1f30fd7ea0b729a7bbc7dc1e804e2a0cc0c573a
+Subject: Disable neon in qcms.
+
+
+---
+
+--- firefox-esr-78.3.0esr.orig/gfx/qcms/qcmsint.h
++++ firefox-esr-78.3.0esr/gfx/qcms/qcmsint.h
+@@ -344,18 +344,18 @@ void qcms_transform_data_bgra_out_lut_al
+                                               unsigned char *dest,
+                                               size_t length);
+-void qcms_transform_data_rgb_out_lut_neon(const qcms_transform *transform,
+-                                          const unsigned char *src,
+-                                          unsigned char *dest,
+-                                          size_t length);
+-void qcms_transform_data_rgba_out_lut_neon(const qcms_transform *transform,
+-                                           const unsigned char *src,
+-                                           unsigned char *dest,
+-                                           size_t length);
+-void qcms_transform_data_bgra_out_lut_neon(const qcms_transform *transform,
+-                                           const unsigned char *src,
+-                                           unsigned char *dest,
+-                                           size_t length);
++//void qcms_transform_data_rgb_out_lut_neon(const qcms_transform *transform,
++//                                          const unsigned char *src,
++//                                          unsigned char *dest,
++//                                          size_t length);
++//void qcms_transform_data_rgba_out_lut_neon(const qcms_transform *transform,
++//                                           const unsigned char *src,
++//                                           unsigned char *dest,
++//                                           size_t length);
++//void qcms_transform_data_bgra_out_lut_neon(const qcms_transform *transform,
++//                                           const unsigned char *src,
++//                                           unsigned char *dest,
++//                                           size_t length);
+ extern bool qcms_supports_iccv4;
+ extern bool qcms_supports_neon;
+--- firefox-esr-78.3.0esr.orig/gfx/qcms/transform.cpp
++++ firefox-esr-78.3.0esr/gfx/qcms/transform.cpp
+@@ -1240,7 +1240,7 @@ qcms_transform* qcms_transform_create(
+ #endif
+                   } else
+ #endif
+-#if defined(__arm__) || defined(__aarch64__)
++#if 0 // defined(__arm__) || defined(__aarch64__)
+                     if (qcms_supports_neon) {
+                           if (in_type == QCMS_DATA_RGB_8) {
+                                   transform->transform_fn = qcms_transform_data_rgb_out_lut_neon;
+--- firefox-esr-78.3.0esr.orig/gfx/tests/gtest/TestQcms.cpp
++++ firefox-esr-78.3.0esr/gfx/tests/gtest/TestQcms.cpp
+@@ -493,11 +493,11 @@ void GfxQcms_ProfilePairBase::TransformP
+     EXPECT_TRUE(ProduceVerifyOutput(qcms_transform_data_rgb_out_lut_avx));
+   }
+ #endif
+-#ifdef MOZILLA_MAY_SUPPORT_NEON
+-  if (mozilla::supports_neon()) {
+-    EXPECT_TRUE(ProduceVerifyOutput(qcms_transform_data_rgb_out_lut_neon));
+-  }
+-#endif
++//#ifdef MOZILLA_MAY_SUPPORT_NEON
++//  if (mozilla::supports_neon()) {
++//    EXPECT_TRUE(ProduceVerifyOutput(qcms_transform_data_rgb_out_lut_neon));
++//  }
++//#endif
+   // Verify RGBA transforms.
+   ASSERT_TRUE(SetBuffers(QCMS_DATA_RGBA_8));
+@@ -518,11 +518,11 @@ void GfxQcms_ProfilePairBase::TransformP
+     EXPECT_TRUE(ProduceVerifyOutput(qcms_transform_data_rgba_out_lut_avx));
+   }
+ #endif
+-#ifdef MOZILLA_MAY_SUPPORT_NEON
+-  if (mozilla::supports_neon()) {
+-    EXPECT_TRUE(ProduceVerifyOutput(qcms_transform_data_rgba_out_lut_neon));
+-  }
+-#endif
++//#ifdef MOZILLA_MAY_SUPPORT_NEON
++//  if (mozilla::supports_neon()) {
++//    EXPECT_TRUE(ProduceVerifyOutput(qcms_transform_data_rgba_out_lut_neon));
++//  }
++//#endif
+   // Verify BGRA transforms.
+   ASSERT_TRUE(SetBuffers(QCMS_DATA_BGRA_8));
+@@ -543,11 +543,11 @@ void GfxQcms_ProfilePairBase::TransformP
+     EXPECT_TRUE(ProduceVerifyOutput(qcms_transform_data_bgra_out_lut_avx));
+   }
+ #endif
+-#ifdef MOZILLA_MAY_SUPPORT_NEON
+-  if (mozilla::supports_neon()) {
+-    EXPECT_TRUE(ProduceVerifyOutput(qcms_transform_data_bgra_out_lut_neon));
+-  }
+-#endif
++//#ifdef MOZILLA_MAY_SUPPORT_NEON
++//  if (mozilla::supports_neon()) {
++//    EXPECT_TRUE(ProduceVerifyOutput(qcms_transform_data_bgra_out_lut_neon));
++//  }
++//#endif
+ }
+ class GfxQcms_sRGB_To_sRGB : public GfxQcms_ProfilePairBase {
index ad08ef41a145d9910177ce7a8f04f984402852f3..2197fb1b662fbbeedc5486bc8abafab1faffe89b 100644 (file)
@@ -41,3 +41,4 @@ porting-s390x/Explicitly-instantiate-TIntermTraverser-traverse-TIntermN.patch
 raspbian-rust-triplet-hack.patch
 try-to-disable-neon.patch
 try-harder-to-disable-neon.patch
+disable-neon-in-qcms.patch
index 0daeda9614eafb303443a34898cfac162d01af32..71fc31bc038b087b0425a95b2a5e94442c02ce0f 100644 (file)
@@ -344,18 +344,18 @@ void qcms_transform_data_bgra_out_lut_altivec(const qcms_transform *transform,
                                               unsigned char *dest,
                                               size_t length);
 
-void qcms_transform_data_rgb_out_lut_neon(const qcms_transform *transform,
-                                          const unsigned char *src,
-                                          unsigned char *dest,
-                                          size_t length);
-void qcms_transform_data_rgba_out_lut_neon(const qcms_transform *transform,
-                                           const unsigned char *src,
-                                           unsigned char *dest,
-                                           size_t length);
-void qcms_transform_data_bgra_out_lut_neon(const qcms_transform *transform,
-                                           const unsigned char *src,
-                                           unsigned char *dest,
-                                           size_t length);
+//void qcms_transform_data_rgb_out_lut_neon(const qcms_transform *transform,
+//                                          const unsigned char *src,
+//                                          unsigned char *dest,
+//                                          size_t length);
+//void qcms_transform_data_rgba_out_lut_neon(const qcms_transform *transform,
+//                                           const unsigned char *src,
+//                                           unsigned char *dest,
+//                                           size_t length);
+//void qcms_transform_data_bgra_out_lut_neon(const qcms_transform *transform,
+//                                           const unsigned char *src,
+//                                           unsigned char *dest,
+//                                           size_t length);
 
 extern bool qcms_supports_iccv4;
 extern bool qcms_supports_neon;
index 21bc5a55eaeb47b3e3308ff6cfabb354f5b3ae77..5c8ab6226403113e4dbe7baba785192a53c8743b 100644 (file)
@@ -1240,7 +1240,7 @@ qcms_transform* qcms_transform_create(
 #endif
                    } else
 #endif
-#if defined(__arm__) || defined(__aarch64__)
+#if 0 // defined(__arm__) || defined(__aarch64__)
                     if (qcms_supports_neon) {
                            if (in_type == QCMS_DATA_RGB_8) {
                                    transform->transform_fn = qcms_transform_data_rgb_out_lut_neon;
index 83d361e17df28b57fe112bae8ce8b006b0f09741..a5f2c6414d24e5f4258333d0c179e11691153276 100644 (file)
@@ -493,11 +493,11 @@ void GfxQcms_ProfilePairBase::TransformPrecachePlatformExt() {
     EXPECT_TRUE(ProduceVerifyOutput(qcms_transform_data_rgb_out_lut_avx));
   }
 #endif
-#ifdef MOZILLA_MAY_SUPPORT_NEON
-  if (mozilla::supports_neon()) {
-    EXPECT_TRUE(ProduceVerifyOutput(qcms_transform_data_rgb_out_lut_neon));
-  }
-#endif
+//#ifdef MOZILLA_MAY_SUPPORT_NEON
+//  if (mozilla::supports_neon()) {
+//    EXPECT_TRUE(ProduceVerifyOutput(qcms_transform_data_rgb_out_lut_neon));
+//  }
+//#endif
 
   // Verify RGBA transforms.
   ASSERT_TRUE(SetBuffers(QCMS_DATA_RGBA_8));
@@ -518,11 +518,11 @@ void GfxQcms_ProfilePairBase::TransformPrecachePlatformExt() {
     EXPECT_TRUE(ProduceVerifyOutput(qcms_transform_data_rgba_out_lut_avx));
   }
 #endif
-#ifdef MOZILLA_MAY_SUPPORT_NEON
-  if (mozilla::supports_neon()) {
-    EXPECT_TRUE(ProduceVerifyOutput(qcms_transform_data_rgba_out_lut_neon));
-  }
-#endif
+//#ifdef MOZILLA_MAY_SUPPORT_NEON
+//  if (mozilla::supports_neon()) {
+//    EXPECT_TRUE(ProduceVerifyOutput(qcms_transform_data_rgba_out_lut_neon));
+//  }
+//#endif
 
   // Verify BGRA transforms.
   ASSERT_TRUE(SetBuffers(QCMS_DATA_BGRA_8));
@@ -543,11 +543,11 @@ void GfxQcms_ProfilePairBase::TransformPrecachePlatformExt() {
     EXPECT_TRUE(ProduceVerifyOutput(qcms_transform_data_bgra_out_lut_avx));
   }
 #endif
-#ifdef MOZILLA_MAY_SUPPORT_NEON
-  if (mozilla::supports_neon()) {
-    EXPECT_TRUE(ProduceVerifyOutput(qcms_transform_data_bgra_out_lut_neon));
-  }
-#endif
+//#ifdef MOZILLA_MAY_SUPPORT_NEON
+//  if (mozilla::supports_neon()) {
+//    EXPECT_TRUE(ProduceVerifyOutput(qcms_transform_data_bgra_out_lut_neon));
+//  }
+//#endif
 }
 
 class GfxQcms_sRGB_To_sRGB : public GfxQcms_ProfilePairBase {