I have no access to aarch64. This is my first try to unbreak qtwebengine on arm64.
http://build-failures.rhaalovely.net/aarch64/2021-01-24/x11/qt5/qtwebengine.log A built test to confirm this would be excellent. Rafael Index: patches/patch-src_3rdparty_chromium_third_party_skia_src_opts_SkRasterPipeline_opts_h =================================================================== RCS file: patches/patch-src_3rdparty_chromium_third_party_skia_src_opts_SkRasterPipeline_opts_h diff -N patches/patch-src_3rdparty_chromium_third_party_skia_src_opts_SkRasterPipeline_opts_h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_3rdparty_chromium_third_party_skia_src_opts_SkRasterPipeline_opts_h 29 Jan 2021 19:42:26 -0000 @@ -0,0 +1,30 @@ +$OpenBSD$ + +Revert b2de8e8046dc1c558465f74b4afe11d57cbc6cf3 + +Index: src/3rdparty/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h +--- src/3rdparty/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h.orig ++++ src/3rdparty/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h +@@ -988,9 +988,7 @@ 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. +- __fp16 fp16; +- memcpy(&fp16, &h, sizeof(U16)); +- return float(fp16); ++ return vcvt_f32_f16(h); + + #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512) + return _mm256_cvtph_ps(h); +@@ -1011,10 +1009,7 @@ 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. +- __fp16 fp16 = __fp16(f); +- U16 u16; +- memcpy(&u16, &fp16, sizeof(U16)); +- return u16; ++ return vcvt_f16_f32(f); + + #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512) + return _mm256_cvtps_ph(f, _MM_FROUND_CUR_DIRECTION);
