21706f1d14
Bug: chromium:922430 Bug: b/135180511 Chromium has diverged from upstream libjpeg-turbo in order to take advantage of SIMD optimizations that have not yet been merged into upstream. Android is also interested in using these. Switch to the version with the optimizations in order to test them. Chromium has its own jconfig.h and jconfigint.h, so ours are never used after the switch. Remove them. The only Skia-specific modification to these files was to define flags to enable arithmetic encoding. Move them to BUILD.gn, so they're still applied. Also remove jsimdcfg.inc, which is currently unused. (It appears to be only for x86/x64, where we are not building SIMD anyway.) Update BUILD.gn to build SIMD files on arm. The existing ones have moved, and there are new ones to build, too. Change-Id: I47606609c23be43b319150ffb5a4fe55d8869755 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/311105 Commit-Queue: Leon Scroggins <scroggo@google.com> Reviewed-by: Mike Klein <mtklein@google.com> Reviewed-by: Eric Boren <borenet@google.com>
115 lines
4.4 KiB
Plaintext
115 lines
4.4 KiB
Plaintext
# Copyright 2016 Google Inc.
|
|
#
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
declare_args() {
|
|
skia_use_system_libjpeg_turbo = is_official_build
|
|
}
|
|
|
|
import("../third_party.gni")
|
|
|
|
if (skia_use_system_libjpeg_turbo) {
|
|
system("libjpeg") {
|
|
libs = [ "jpeg" ]
|
|
}
|
|
} else {
|
|
third_party("libjpeg") {
|
|
public_include_dirs = [
|
|
".",
|
|
"../externals/libjpeg-turbo",
|
|
]
|
|
|
|
defines = [
|
|
"TURBO_FOR_WINDOWS",
|
|
|
|
# Add support for arithmetic encoding (C_) and decoding (D_).
|
|
# This matches Android. Note that such JPEGs are likely rare, given lack of
|
|
# support by major browsers.
|
|
"C_ARITH_CODING_SUPPORTED=1",
|
|
"D_ARITH_CODING_SUPPORTED=1",
|
|
]
|
|
|
|
if (!is_win || is_clang) {
|
|
defines += [ "USE_CLZ_INTRINSIC" ] # Cuts a 64K table.
|
|
}
|
|
|
|
sources = [
|
|
"../externals/libjpeg-turbo/jaricom.c",
|
|
"../externals/libjpeg-turbo/jcapimin.c",
|
|
"../externals/libjpeg-turbo/jcapistd.c",
|
|
"../externals/libjpeg-turbo/jcarith.c",
|
|
"../externals/libjpeg-turbo/jccoefct.c",
|
|
"../externals/libjpeg-turbo/jccolor.c",
|
|
"../externals/libjpeg-turbo/jcdctmgr.c",
|
|
"../externals/libjpeg-turbo/jchuff.c",
|
|
"../externals/libjpeg-turbo/jcinit.c",
|
|
"../externals/libjpeg-turbo/jcmainct.c",
|
|
"../externals/libjpeg-turbo/jcmarker.c",
|
|
"../externals/libjpeg-turbo/jcmaster.c",
|
|
"../externals/libjpeg-turbo/jcomapi.c",
|
|
"../externals/libjpeg-turbo/jcparam.c",
|
|
"../externals/libjpeg-turbo/jcphuff.c",
|
|
"../externals/libjpeg-turbo/jcprepct.c",
|
|
"../externals/libjpeg-turbo/jcsample.c",
|
|
"../externals/libjpeg-turbo/jdapimin.c",
|
|
"../externals/libjpeg-turbo/jdapistd.c",
|
|
"../externals/libjpeg-turbo/jdarith.c",
|
|
"../externals/libjpeg-turbo/jdcoefct.c",
|
|
"../externals/libjpeg-turbo/jdcolor.c",
|
|
"../externals/libjpeg-turbo/jddctmgr.c",
|
|
"../externals/libjpeg-turbo/jdhuff.c",
|
|
"../externals/libjpeg-turbo/jdinput.c",
|
|
"../externals/libjpeg-turbo/jdmainct.c",
|
|
"../externals/libjpeg-turbo/jdmarker.c",
|
|
"../externals/libjpeg-turbo/jdmaster.c",
|
|
"../externals/libjpeg-turbo/jdmerge.c",
|
|
"../externals/libjpeg-turbo/jdphuff.c",
|
|
"../externals/libjpeg-turbo/jdpostct.c",
|
|
"../externals/libjpeg-turbo/jdsample.c",
|
|
"../externals/libjpeg-turbo/jerror.c",
|
|
"../externals/libjpeg-turbo/jfdctflt.c",
|
|
"../externals/libjpeg-turbo/jfdctfst.c",
|
|
"../externals/libjpeg-turbo/jfdctint.c",
|
|
"../externals/libjpeg-turbo/jidctflt.c",
|
|
"../externals/libjpeg-turbo/jidctfst.c",
|
|
"../externals/libjpeg-turbo/jidctint.c",
|
|
"../externals/libjpeg-turbo/jidctred.c",
|
|
"../externals/libjpeg-turbo/jmemmgr.c",
|
|
"../externals/libjpeg-turbo/jmemnobs.c",
|
|
"../externals/libjpeg-turbo/jpeg_nbits_table.c",
|
|
"../externals/libjpeg-turbo/jquant1.c",
|
|
"../externals/libjpeg-turbo/jquant2.c",
|
|
"../externals/libjpeg-turbo/jutils.c",
|
|
]
|
|
|
|
if (current_cpu == "arm" && !is_ios && !is_win) {
|
|
sources += [
|
|
"../externals/libjpeg-turbo/simd/arm/arm/jsimd.c",
|
|
"../externals/libjpeg-turbo/simd/arm/arm/jsimd_neon.S",
|
|
"../externals/libjpeg-turbo/simd/arm/common/jcsample-neon.c",
|
|
"../externals/libjpeg-turbo/simd/arm/common/jdcolor-neon.c",
|
|
"../externals/libjpeg-turbo/simd/arm/common/jdmerge-neon.c",
|
|
"../externals/libjpeg-turbo/simd/arm/common/jdsample-neon.c",
|
|
"../externals/libjpeg-turbo/simd/arm/common/jidctfst-neon.c",
|
|
"../externals/libjpeg-turbo/simd/arm/common/jidctint-neon.c",
|
|
"../externals/libjpeg-turbo/simd/arm/common/jidctred-neon.c",
|
|
]
|
|
} else if (current_cpu == "arm64" && !is_ios && !is_win) {
|
|
sources += [
|
|
"../externals/libjpeg-turbo/simd/arm/arm64/jsimd.c",
|
|
"../externals/libjpeg-turbo/simd/arm/arm64/jsimd_neon.S",
|
|
"../externals/libjpeg-turbo/simd/arm/common/jcsample-neon.c",
|
|
"../externals/libjpeg-turbo/simd/arm/common/jdcolor-neon.c",
|
|
"../externals/libjpeg-turbo/simd/arm/common/jdmerge-neon.c",
|
|
"../externals/libjpeg-turbo/simd/arm/common/jdsample-neon.c",
|
|
"../externals/libjpeg-turbo/simd/arm/common/jidctfst-neon.c",
|
|
"../externals/libjpeg-turbo/simd/arm/common/jidctint-neon.c",
|
|
"../externals/libjpeg-turbo/simd/arm/common/jidctred-neon.c",
|
|
]
|
|
} else {
|
|
sources += [ "../externals/libjpeg-turbo/jsimd_none.c" ]
|
|
}
|
|
}
|
|
}
|