summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael BrĂ¼ning <michael.bruning@qt.io>2021-06-01 23:28:14 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2021-10-04 10:20:29 +0200
commit447c56bfa8bdbb75a89551bfb537d8a80ae10094 (patch)
tree33f4afe48f20158cdf0a81c79436e441c612cebb
parentf13bcdb98afe23bffe358e436672acb70b2652c5 (diff)
downloadqtwebengine-chromium-447c56bfa8bdbb75a89551bfb537d8a80ae10094.tar.gz
Fix arm64 Skia build for macOS
The cast that we use to compile on aarch64 without fp16 caused a compilation error for macOS arm64. Re-establish the upstream version for this case. Change-Id: Ic4c4c20f9502bf5ae716956efaa87a15026f8a29 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r--chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h b/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h
index 639a288cd8d..112a4442216 100644
--- a/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h
+++ b/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h
@@ -978,10 +978,13 @@ SI F approx_powf(F x, F y) {
SI F from_half(U16 h) {
#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \
&& !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
+#if defined(SK_BUILD_FOR_MAC)
+ return vcvt_f32_f16(h);
+#else
__fp16 fp16;
memcpy(&fp16, &h, sizeof(U16));
return float(fp16);
-
+#endif
#elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_SKX)
return _mm256_cvtph_ps(h);
@@ -1001,11 +1004,14 @@ SI F from_half(U16 h) {
SI U16 to_half(F f) {
#if defined(JUMPER_IS_NEON) && defined(SK_CPU_ARM64) \
&& !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds.
+#if defined(SK_BUILD_FOR_MAC)
+ return vcvt_f16_f32(f);
+#else
__fp16 fp16 = __fp16(f);
U16 u16;
memcpy(&u16, &fp16, sizeof(U16));
return u16;
-
+#endif
#elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_SKX)
return _mm256_cvtps_ph(f, _MM_FROUND_CUR_DIRECTION);