Skip to content

Commit

Permalink
www/qt6-webengine: unbreak build on aarch64 (+)
Browse files Browse the repository at this point in the history
Backport Skia m103 changes to eliminate build error on arm64/aarch64:

In file included from ../../../../../qtwebengine-everywhere-src-6.4.2/src/3rdparty/chromium/third_party/skia/src/core/SkOpts.cpp:46:
../../../../../qtwebengine-everywhere-src-6.4.2/src/3rdparty/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h:1007:5: warning: 'memcpy' will always overflow; destination buffer has size 2, but
 size argument is 8 [-Wfortify-source]
    memcpy(&fp16, &h, sizeof(U16));
    ^
../../../../../qtwebengine-everywhere-src-6.4.2/src/3rdparty/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h:1032:19: error: functional-style cast from 'neon::F' (aka 'V<float>') to '__fp16'
is not allowed
    __fp16 fp16 = __fp16(f);
                  ^~~~~~~~
1 warning and 1 error generated.

Sponsored by:	Serenity Cybersecurity, LLC
  • Loading branch information
fluffykhv committed Feb 9, 2023
1 parent f418929 commit 7ad0eea
Showing 1 changed file with 33 additions and 0 deletions.
@@ -0,0 +1,33 @@
--- src/3rdparty/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h.orig 2022-12-12 18:53:13 UTC
+++ src/3rdparty/chromium/third_party/skia/src/opts/SkRasterPipeline_opts.h
@@ -1000,13 +1000,8 @@ SI F from_half(U16 h) {
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);

@@ -1026,14 +1021,8 @@ SI U16 to_half(F f) {
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);

0 comments on commit 7ad0eea

Please sign in to comment.