I was profiling and remembered GN hasn't turned on much CPU-specific code. I looked at zlib, then libpng, then libjpeg-turbo:
- zlib was easy but not useful. No routine we use in decoding changes significantly.
- libpng was easy and useful, and we were already using NEON filters on ARM.
- libjpeg-turbo requires yasm and is annoying.
BUG=skia:5875
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4531
Change-Id: Ie072a457da41ee6538eebacb5eb5dbe5a6eb585e
Reviewed-on: https://skia-review.googlesource.com/4531
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Matt Sarett <msarett@google.com>
third_party("libpng") {
public_include_dirs = [ "." ]
+ defines = []
deps = [
"//third_party/zlib",
]
"arm/filter_neon_intrinsics.c",
]
}
+
+ if (current_cpu == "x86" || current_cpu == "x64") {
+ defines += [ "PNG_INTEL_SSE" ]
+ sources += [
+ "contrib/intel/filter_sse2_intrinsics.c",
+ "contrib/intel/intel_init.c",
+ ]
+ }
}
}