Open Bug 1515602 Opened 3 years ago Updated 3 years ago

Ensure we are enabling ARM, ARM64, and NEON assembly optimizations in third-party C/C++/Rust libraries

Categories

(GeckoView :: General, enhancement, P3)

Unspecified
Android
enhancement

Tracking

(Not tracked)

People

(Reporter: cpeterson, Unassigned)

References

(Depends on 2 open bugs)

Details

(Keywords: meta)

Ensure we are enabling ARM, ARM64, and NEON assembly optimizations in third-party C/C++/Rust libraries like:

libvpx
ffvpx
libjpeg
skia
libyuv
nss
libpng
libopus
libaom / dav1d
ycbcr
webaudio
cairo
webp
Other NEON code paths?
Rust libraries?

Here are some notes from froydnj's investigation of these libraries when standing up Firefox for Windows ARM64:

https://docs.google.com/spreadsheets/d/1MAku4sI26HFplf2pcBmnxBDnHXrkWu1AcLKkuNkerMY/edit#gid=0&range=22:35
Product: Firefox for Android → GeckoView
(In reply to Chris Peterson [:cpeterson] (Away from bugmail until December 30) from comment #0)
> Ensure we are enabling ARM, ARM64, and NEON assembly optimizations in
> third-party C/C++/Rust libraries like:
> 
> libvpx
done

> ffvpx
Necessary? (it is available from upstream)

> libjpeg
done

> skia
done

> libyuv
done? (GYP has NEON build script)

> nss
bug 1501542 etc, And I have a local patch for ARM's AES/SHA-2

> libpng
Necessary 

> libopus
> libaom / dav1d
> ycbcr

> webaudio
necessary.  OpenMAX DL?

> cairo
Necessary from upstream?  (at least, it is posted in cairo-dev ml)

> webp


> Other NEON code paths?
zlib (from chromium, bug 1503150), moz2d (I have a local patch, I will file it) and brotli (the latest version has NEON path)

> Rust libraries?
I think that NEON feature is already added.

> 
> Here are some notes from froydnj's investigation of these libraries when
> standing up Firefox for Windows ARM64:

Windows/arm64 doesn't arm_neon.h header (MS uses arm64_neon.h in MSVC instead), so situation is different.

> 
> https://docs.google.com/spreadsheets/d/
> 1MAku4sI26HFplf2pcBmnxBDnHXrkWu1AcLKkuNkerMY/edit#gid=0&range=22:35
Depends on: 1519004
Keywords: meta

ffvpx
FLAC doesn't has aarch64 optimization on upstream code. And it is unnecessary for video decoder since Android uses OS's decoder. But we will turn on aarch64 code by 1519004

webaudio
We will use ffvpx on aarch64 via bug 1519004 (arm uses OpenMAX DL)

Depends on: 1503150
Priority: -- → P3
Depends on: 1513236
Depends on: 1522016
You need to log in before you can comment on or make changes to this bug.