New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 618061 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner:
Last visit > 30 days ago
Closed: Aug 2016
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Compile libpng ARM Neon optimizations with GYP

Project Member Reported by msarett@chromium.org, Jun 7 2016

Issue description

With the update of libpng to 1.6.22, we have the opportunity to take advantage of Arm NEON optimizations that improve decode time by ~30%.

These have been disabled on iOS GYP builds due to compile failures.  A bit of discussion on the failures is below.  We should fix these issues to improve png decode performance on iOS GYP.

"""
It appears that are arm/arm_init.c and arm/filter_neon_intrinsics.c are not compiled with the rest of the png sources.

[1/659] CC obj/third_party/libpng/libpng.pngrio.o
[2/659] CC obj/third_party/libpng/libpng.pngmem.o
[3/659] CC obj/third_party/libpng/libpng.pngget.o
[4/659] CC obj/third_party/libpng/libpng.pngwio.o
[5/659] CC obj/third_party/libpng/libpng.pngread.o
[6/659] CC obj/third_party/libpng/libpng.pngerror.o
[7/659] CC obj/third_party/libpng/libpng.pngtrans.o
[8/659] CC obj/third_party/libpng/libpng.pngwtran.o
[9/659] CC obj/third_party/libpng/libpng.pngset.o
[10/659] CC obj/third_party/libpng/libpng.pngpread.o
[11/659] CC obj/third_party/libpng/libpng.pngwrite.o
[12/659] CC obj/third_party/libpng/libpng.pngwutil.o
[13/659] CC obj/third_party/libpng/libpng.png.o
[14/659] CXX obj/third_party/skia/src/fonts/skia_library.SkRemotableFontMgr.o
[15/659] CXX obj/third_party/skia/src/opts/skia_opts_none.SkBlitRow_opts_none.o
[16/659] CXX obj/third_party/skia/src/opts/skia_opts_none.SkBlitMask_opts_none.o
[17/659] CC obj/third_party/libpng/libpng.pngrtran.o
[18/659] CC obj/third_party/libpng/libpng.pngrutil.o
[19/659] CXX obj/third_party/skia/src/ports/skia_library.SkTLS_pthread.o
[20/659] CXX
obj/third_party/skia/src/opts/skia_opts_none.SkBitmapProcState_opts_none.o
....

They are compiled on GN, which works fine.
[132/445] CC obj/third_party/libpng/libpng_sources/filter_neon_intrinsics.o
[135/445] CC obj/third_party/libpng/libpng_sources/arm_init.o

....
I am further confused by the compile output for ios gyp (with ARM disabled).

[9/958] CC obj/third_party/libpng/contrib/intel/libpng.intel_init.o
[10/958] CC obj/third_party/libpng/contrib/intel/libpng.filter_sse2_intrinsics.o

It's actually compiling the x86/64 optimizations (even though IOS is ARM?).
"""
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jun 13 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8c0ac8d882561cca77d5184248708b0ce9c851d4

commit 8c0ac8d882561cca77d5184248708b0ce9c851d4
Author: msarett <msarett@google.com>
Date: Mon Jun 13 16:17:33 2016

Update libpng to 1.6.22

BUG= 599917 
BUG= 618061 

Review-Url: https://codereview.chromium.org/2021403002
Cr-Commit-Position: refs/heads/master@{#399464}

[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/testing/libfuzzer/fuzzers/libpng_read_fuzzer.cc
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoder.cpp
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/BUILD.gn
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/LICENSE
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/README
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/README.chromium
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/arm/arm_init.c
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/arm/filter_neon.S
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/arm/filter_neon_intrinsics.c
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/contrib/intel/INSTALL
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/contrib/intel/filter_sse2_intrinsics.c
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/contrib/intel/intel_init.c
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/contrib/intel/intel_sse.patch
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/libpng.gyp
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/png.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/png.h
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngconf.h
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngdebug.h
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngerror.c
[delete] https://crrev.com/71c71a677ae0a8e0004a561f6d558b33ae9c1af3/third_party/libpng/pnggccrd.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngget.c
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pnginfo.h
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pnglibconf.h
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngmem.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngpread.c
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngprefix.h
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngpriv.h
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngread.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngrio.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngrtran.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngrutil.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngset.c
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngstruct.h
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngtest.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngtrans.c
[delete] https://crrev.com/71c71a677ae0a8e0004a561f6d558b33ae9c1af3/third_party/libpng/pngusr.h
[delete] https://crrev.com/71c71a677ae0a8e0004a561f6d558b33ae9c1af3/third_party/libpng/pngvcrd.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngwio.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngwrite.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngwtran.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngwutil.c

Project Member

Comment 2 by bugdroid1@chromium.org, Jun 15 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8c0ac8d882561cca77d5184248708b0ce9c851d4

commit 8c0ac8d882561cca77d5184248708b0ce9c851d4
Author: msarett <msarett@google.com>
Date: Mon Jun 13 16:17:33 2016

Update libpng to 1.6.22

BUG= 599917 
BUG= 618061 

Review-Url: https://codereview.chromium.org/2021403002
Cr-Commit-Position: refs/heads/master@{#399464}

[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/testing/libfuzzer/fuzzers/libpng_read_fuzzer.cc
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/WebKit/Source/platform/image-decoders/png/PNGImageDecoder.cpp
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/BUILD.gn
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/LICENSE
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/README
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/README.chromium
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/arm/arm_init.c
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/arm/filter_neon.S
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/arm/filter_neon_intrinsics.c
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/contrib/intel/INSTALL
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/contrib/intel/filter_sse2_intrinsics.c
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/contrib/intel/intel_init.c
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/contrib/intel/intel_sse.patch
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/libpng.gyp
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/png.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/png.h
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngconf.h
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngdebug.h
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngerror.c
[delete] https://crrev.com/71c71a677ae0a8e0004a561f6d558b33ae9c1af3/third_party/libpng/pnggccrd.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngget.c
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pnginfo.h
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pnglibconf.h
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngmem.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngpread.c
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngprefix.h
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngpriv.h
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngread.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngrio.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngrtran.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngrutil.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngset.c
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngstruct.h
[add] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngtest.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngtrans.c
[delete] https://crrev.com/71c71a677ae0a8e0004a561f6d558b33ae9c1af3/third_party/libpng/pngusr.h
[delete] https://crrev.com/71c71a677ae0a8e0004a561f6d558b33ae9c1af3/third_party/libpng/pngvcrd.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngwio.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngwrite.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngwtran.c
[modify] https://crrev.com/8c0ac8d882561cca77d5184248708b0ce9c851d4/third_party/libpng/pngwutil.c

Project Member

Comment 3 by bugdroid1@chromium.org, Jun 20 2016

Comment 4 by hcm@chromium.org, Jul 14 2016

Components: Internals>Images>Codecs
Status: WontFix (was: Available)
GYP has been replaced by GN everywhere.

Sign in to add a comment