Bug 241182 - [ARM][NEON] FELightningNEON.cpp fails to build, NEON fast path seems unused
Summary: [ARM][NEON] FELightningNEON.cpp fails to build, NEON fast path seems unused
Status: ASSIGNED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: WebKit Nightly Build
Hardware: Other Linux
: P2 Normal
Assignee: Adrian Perez
URL:
Keywords: InRadar
Depends on:
Blocks: 241183
  Show dependency treegraph
 
Reported: 2022-06-01 07:15 PDT by Adrian Perez
Modified: 2022-06-08 07:16 PDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Adrian Perez 2022-06-01 07:15:50 PDT
In order to reproduce, the easiest is to check out Buildroot
commit eb5e2d2d43c5c0f71ae8243081625261de2cd134, and use the
following snippet as a defconfig:

  % cat > configs/wpewebkit_neon_defconfig <<EOF
  BR2_arm=y
  BR2_cortex_a72=y
  BR2_ARM_FPU_NEON_VFPV4=y
  BR2_PER_PACKAGE_DIRECTORIES=y
  BR2_TOOLCHAIN_EXTERNAL=y
  BR2_SYSTEM_DHCP="eth0"
  BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi4/post-build.sh"
  BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi4/post-image.sh"
  BR2_LINUX_KERNEL=y
  BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
  BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,0b54dbda3cca2beb51e236a25738784e90853b64)/linux-0b54dbda3cca2beb51e236a25738784e90853b64.tar.gz"
  BR2_LINUX_KERNEL_DEFCONFIG="bcm2711"
  BR2_LINUX_KERNEL_DTS_SUPPORT=y
  BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2711-rpi-4-b"
  BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
  BR2_PACKAGE_COG=y
  BR2_PACKAGE_MESA3D=y
  BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D=y
  BR2_PACKAGE_MESA3D_OPENGL_ES=y
  BR2_PACKAGE_RPI_FIRMWARE=y
  BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y
  BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="board/raspberrypi4/config_4.txt"
  BR2_PACKAGE_WPEWEBKIT=y
  BR2_TARGET_ROOTFS_EXT2=y
  BR2_TARGET_ROOTFS_EXT2_4=y
  BR2_TARGET_ROOTFS_EXT2_SIZE="120M"
  BR2_PACKAGE_HOST_DOSFSTOOLS=y
  BR2_PACKAGE_HOST_GENIMAGE=y
  BR2_PACKAGE_HOST_MTOOLS=y
  EOF
  % make O=wpewebkit-neon wpewebkit_neon_defconfig
  % make O=wpewebkit-neon BR2_JLEVEL=$(nproc) wpewebkit

After a while, the build will fail with:

[ 48%] Building CXX object Source/WebCore/CMakeFiles/WebCore.dir/__/__/WebCore/DerivedSources/unified-sources/UnifiedSource-cbdfe323-42.cpp.o
In file included from platform/graphics/filters/FESpecularLighting.h:25,
                 from svg/SVGFESpecularLightingElement.h:25,
                 from ../../WebCore/DerivedSources/JSSVGFESpecularLightingElement.h:26,
                 from ../../WebCore/DerivedSources/JSSVGFESpecularLightingElement.cpp:22,
                 from ../../WebCore/DerivedSources/unified-sources/UnifiedSource-3a52ce78-119.cpp:5:
platform/graphics/filters/FELighting.h:72:41: error: ‘LightingData’ does not name a type
   72 |     inline void platformApplyNeon(const LightingData&, const LightSource::PaintingData&);
      |                                         ^~~~~~~~~~~~
make[4]: *** [Source/WebCore/CMakeFiles/WebCore.dir/build.make:5152: Source/WebCore/CMakeFiles/WebCore.dir/__/__/WebCore/DerivedSources/unified-sources/UnifiedSource-3a52ce78-119.cpp.o] Error 1


Moreover, it seems that nothing calls FELighting::platformApplyNeon()
anymore, which means even the code got built it would not be used.
Comment 1 Adrian Perez 2022-06-02 01:50:03 PDT
Pull request: https://github.com/WebKit/WebKit/pull/1233
Comment 2 Radar WebKit Bug Importer 2022-06-08 07:16:13 PDT
<rdar://problem/94631062>