webkitgtk: fix do_compile errors on beaglebone-yocto

Backport 2 patches to fix following compile errors:
webkitgtk-2.44.1/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNeonParallelApplier.cpp:545:37: error: 'LS_POINT' was not declared in this scope; did you mean 'WebCore::LightType::LS_POINT'?
  545 |     if (data.lightSource->type() == LS_POINT) {
      |                                     ^~~~~~~~
      |                                     WebCore::LightType::LS_POINT

webkitgtk-2.44.1/Source/WebCore/platform/graphics/filters/FELighting.h:73:41: error: 'LightingData' does not name a type
   73 |     inline void platformApplyNeon(const LightingData&, const LightSource::PaintingData&);

(From OE-Core rev: bf3fe8c01c5cc00ada22049f4f0abb485e2a626f)

Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
Changqing Li
2024-07-12 14:04:33 +08:00
committed by Steve Sakoman
parent f6f743c0c7
commit a099b484c5
3 changed files with 111 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
From dbd1a59b239b3902e717fdeb063883dbb0b06ee9 Mon Sep 17 00:00:00 2001
From: Adrian Perez de Castro <aperez@igalia.com>
Date: Sun, 26 May 2024 14:24:35 -0700
Subject: [PATCH 1/2] Remove ARM-specific declarations in FELighting.h unneeded
after 272873@main
Unreviewed build fix.
* Source/WebCore/platform/graphics/filters/FELighting.h: Remove unneeded
declarations for the getPowerCoefficients() and platformApplyNeon()
functions, which are now defined elsewhere; and were causing a build
failure due to usage of the protected LightingData type.
Canonical link: https://commits.webkit.org/279334@main
Backport this patch for fixing following compile error:
webkitgtk-2.44.1/Source/WebCore/platform/graphics/filters/FELighting.h:73:41: error: 'LightingData' does not name a type
73 | inline void platformApplyNeon(const LightingData&, const LightSource::PaintingData&);
Upstream-Status: Backport [https://github.com/WebKit/WebKit/commit/36d1b5d7c0ef9a733ee8055b1f35b1d24435d538]
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
Source/WebCore/platform/graphics/filters/FELighting.h | 5 -----
1 file changed, 5 deletions(-)
diff --git a/Source/WebCore/platform/graphics/filters/FELighting.h b/Source/WebCore/platform/graphics/filters/FELighting.h
index 4efab920..dcd80b6f 100644
--- a/Source/WebCore/platform/graphics/filters/FELighting.h
+++ b/Source/WebCore/platform/graphics/filters/FELighting.h
@@ -68,11 +68,6 @@ protected:
std::unique_ptr<FilterEffectApplier> createSoftwareApplier() const override;
-#if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_COMPATIBLE)
- static int getPowerCoefficients(float exponent);
- inline void platformApplyNeon(const LightingData&, const LightSource::PaintingData&);
-#endif
-
Color m_lightingColor;
float m_surfaceScale;
float m_diffuseConstant;
--
2.25.1

View File

@@ -0,0 +1,65 @@
From 88fa4b49a10ecfb74c36c678c1e2b76136357153 Mon Sep 17 00:00:00 2001
From: Changqing Li <changqing.li@windriver.com>
Date: Fri, 12 Jul 2024 10:16:05 +0800
Subject: [PATCH 2/2] More dynamicDowncast<> adoption in platform code
Backport part of commit [90d13e7 More dynamicDowncast<> adoption in
platform code] to fix following compile error for ARM_NEON:
webkitgtk-2.44.1/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNeonParallelApplier.cpp:545:37: error: 'LS_POINT' was not declared in this scope; did you mean 'WebCore::LightType::LS_POINT'?
545 | if (data.lightSource->type() == LS_POINT) {
| ^~~~~~~~
| WebCore::LightType::LS_POINT
Upstream-Status: Backport [https://github.com/WebKit/WebKit/commit/90d13e77ab2192b7efa8e763eeb8b08dbbb6d5c3]
Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
.../filters/FELightingNeonParallelApplier.cpp | 22 +++++++++----------
1 file changed, 10 insertions(+), 12 deletions(-)
diff --git a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNeonParallelApplier.cpp b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNeonParallelApplier.cpp
index 04d855fa..dccc003d 100644
--- a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNeonParallelApplier.cpp
+++ b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNeonParallelApplier.cpp
@@ -542,19 +542,17 @@ void FELightingNeonParallelApplier::applyPlatformParallel(const LightingData& da
floatArguments.colorBlue = color.blue;
floatArguments.padding4 = 0;
- if (data.lightSource->type() == LS_POINT) {
+ if (auto* pointLightSource = dynamicDowncast<PointLightSource>(*data.lightSource)) {
neonData.flags |= FLAG_POINT_LIGHT;
- auto& pointLightSource = downcast<PointLightSource>(*data.lightSource);
- floatArguments.lightX = pointLightSource.position().x();
- floatArguments.lightY = pointLightSource.position().y();
- floatArguments.lightZ = pointLightSource.position().z();
+ floatArguments.lightX = pointLightSource->position().x();
+ floatArguments.lightY = pointLightSource->position().y();
+ floatArguments.lightZ = pointLightSource->position().z();
floatArguments.padding2 = 0;
- } else if (data.lightSource->type() == LS_SPOT) {
+ } else if (auto* spotLightSource = dynamicDowncast<SpotLightSource>(*data.lightSource)) {
neonData.flags |= FLAG_SPOT_LIGHT;
- auto& spotLightSource = downcast<SpotLightSource>(*data.lightSource);
- floatArguments.lightX = spotLightSource.position().x();
- floatArguments.lightY = spotLightSource.position().y();
- floatArguments.lightZ = spotLightSource.position().z();
+ floatArguments.lightX = spotLightSource->position().x();
+ floatArguments.lightY = spotLightSource->position().y();
+ floatArguments.lightZ = spotLightSource->position().z();
floatArguments.padding2 = 0;
floatArguments.directionX = paintingData.directionVector.x();
@@ -565,8 +563,8 @@ void FELightingNeonParallelApplier::applyPlatformParallel(const LightingData& da
floatArguments.coneCutOffLimit = paintingData.coneCutOffLimit;
floatArguments.coneFullLight = paintingData.coneFullLight;
floatArguments.coneCutOffRange = paintingData.coneCutOffLimit - paintingData.coneFullLight;
- neonData.coneExponent = getPowerCoefficients(spotLightSource.specularExponent());
- if (spotLightSource.specularExponent() == 1)
+ neonData.coneExponent = getPowerCoefficients(spotLightSource->specularExponent());
+ if (spotLightSource->specularExponent() == 1)
neonData.flags |= FLAG_CONE_EXPONENT_IS_1;
} else {
ASSERT(data.lightSource->type() == LS_DISTANT);
--
2.25.1

View File

@@ -16,6 +16,8 @@ SRC_URI = "https://www.webkitgtk.org/releases/${BPN}-${PV}.tar.xz \
file://no-musttail-arm.patch \
file://t6-not-declared.patch \
file://30e1d5e22213fdaca2a29ec3400c927d710a37a8.patch \
file://0001-Remove-ARM-specific-declarations-in-FELighting.h-unn.patch \
file://0002-More-dynamicDowncast-adoption-in-platform-code.patch \
"
SRC_URI[sha256sum] = "425b1459b0f04d0600c78d1abb5e7edfa3c060a420f8b231e9a6a2d5d29c5561"