Enable NEON for arm / aarch64#89
Conversation
|
Sorry, didn't see this in a flood of CI notifications ... |
|
The build failure log is humongous. An agent summary of what went wrong is attached below. I'm not sure if this is caused by your changes, or if this is a CI / platform bug (we've had the latter). I'm tentatively assuming its the former though. The CI build failed when compiling openh264-sys2 v0.9.1 for the ARM64 Windows target (aarch64-pc-windows-msvc). Root Cause The build system tried to compile ARM64 NEON assembly files (.S files) using MSVC's C++ compiler (cl.exe), which doesn't support assembly source files. This caused the linker to fail with: LINK : fatal error LNK1181: cannot open input file Key Issues
Affected Files
The build needs either a proper ARM64 assembler (like armasm64.exe) or the build script should be configured to skip assembly optimizations for this target. |
|
Oops, my bad! Did not consider that cl.exe does not have an assembler. I added the following comment that explains how to proceed from here if someone else wants to add it in the future. openh264-rs/openh264-sys2/build.rs Lines 270 to 272 in 802abea If you rerun the CI, it should work fine now and yield a speed-up of around 200-250% on the respective platforms (tested for 1080p24 on Cortex A76/Linux and Apple M4/MacOS). Best, |
|
Thanks! |
|
Should be in 0.9.3 |
This PR enables the NEON (SIMD) extension for arm / aarch64, which should give us a nice performance boost.
It does so by:
Best,
Thomas