new file mode 100644
@@ -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
+
new file mode 100644
@@ -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
+
@@ -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"