summaryrefslogtreecommitdiffstats
path: root/recipes-qt/qt5/qtwebengine/chromium/0006-chromium-aarch64-skia-build-fix.patch
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2019-07-16 12:44:19 -0700
committerMartin Jansa <Martin.Jansa@gmail.com>2019-07-17 10:32:59 +0000
commit8f0e74102237fc3d2eeb5012e8fd4ed28ff33503 (patch)
tree8b0ac31c08a2248811ba5e77ada93ca933e1e686 /recipes-qt/qt5/qtwebengine/chromium/0006-chromium-aarch64-skia-build-fix.patch
parentc8b3085aa4b0030d6ef07b4703763692c2c58ec0 (diff)
downloadmeta-qt5-8f0e74102237fc3d2eeb5012e8fd4ed28ff33503.tar.gz
qtwebengine: Fix build on aarch64
adapt a patch from meta-browser to get aarch64 going Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Diffstat (limited to 'recipes-qt/qt5/qtwebengine/chromium/0006-chromium-aarch64-skia-build-fix.patch')
-rw-r--r--recipes-qt/qt5/qtwebengine/chromium/0006-chromium-aarch64-skia-build-fix.patch62
1 files changed, 62 insertions, 0 deletions
diff --git a/recipes-qt/qt5/qtwebengine/chromium/0006-chromium-aarch64-skia-build-fix.patch b/recipes-qt/qt5/qtwebengine/chromium/0006-chromium-aarch64-skia-build-fix.patch
new file mode 100644
index 00000000..b97b2dca
--- /dev/null
+++ b/recipes-qt/qt5/qtwebengine/chromium/0006-chromium-aarch64-skia-build-fix.patch
@@ -0,0 +1,62 @@
1From 564eb25c70160f6b3f20a6eb5727427efc78b695 Mon Sep 17 00:00:00 2001
2From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
3Date: Thu, 8 Mar 2018 15:39:55 +0100
4Subject: [PATCH] chromium: aarch64 skia build fix
5
6Upstream-Status: Inappropriate
7
8GCC (tested rocko's 7.3.0) cannot find these intrinsics and the build fails:
9
10../../third_party/skia/src/opts/SkRasterPipeline_opts.h: In function 'neon::F neon::from_half(neon::U16)':
11../../third_party/skia/src/opts/SkRasterPipeline_opts.h:657:26: error: cannot convert 'neon::U16 {aka short unsigned int}' to 'float16x4_ t {aka __vector(4) __ fp16}' for argument '1' to '
12float32x4_t vcvt_f32_f16(float16x4_t)'
13 return vcvt_f32_f16(h);
14 ^
15../../third_party/skia/src/opts/SkRasterPipeline_opts.h: In function 'neon::U16 neon::to_half(neon::F)':
16../../third_party/skia/src/opts/SkRasterPipeline_opts.h:677:26: error: cannot convert 'neon::F {aka float}' to 'float32x4_t {aka __vector (4) float}' for argum ent '1' to 'float16x4_t vcvt
17_f16_f32(float32x4_t)'
18 return vcvt_f16_f32(f);
19 ^
20
21Upstream seems to have had similar issues according to
22https://skia-review.googlesource.com/c/skia/+/84222, but there is no fix at the
23moment.
24
25Signed-off-by: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
26---
27 .../skia/src/opts/SkRasterPipeline_opts.h | 15 ++-------------
28 1 file changed, 2 insertions(+), 13 deletions(-)
29
30diff --git a/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h b/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h
31index de14e65b94e..b8be7852086 100644
32--- a/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h
33+++ b/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h
34@@ -729,12 +729,7 @@ SI F approx_powf(F x, F y) {
35 }
36
37 SI F from_half(U16 h) {
38-#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
39- __fp16 fp16;
40- memcpy(&fp16, &h, sizeof(U16));
41- return float(fp16);
42-
43-#elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
44+#if defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
45 return _mm256_cvtph_ps(h);
46
47 #else
48@@ -751,13 +746,7 @@ SI F from_half(U16 h) {
49 }
50
51 SI U16 to_half(F f) {
52-#if defined(SK_CPU_ARM64) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
53- __fp16 fp16 = __fp16(f);
54- U16 u16;
55- memcpy(&u16, &fp16, sizeof(U16));
56- return u16;
57-
58-#elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
59+#if defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512)
60 return _mm256_cvtps_ph(f, _MM_FROUND_CUR_DIRECTION);
61
62 #else