skia2/gyp/skia_lib.gyp
henrik.smiding 3bb195ef0d Add SSE4 optimization of S32A_Opaque_Blitrow
Adds optimization of Skia S32A_Opaque_Blitrow blitter using SSE4.2 SIMD
instruction set. Special case for when alpha is zero or opaque.

Performance increase of 10%-400% compared to the existing SSE2
optimization (measured on Silvermont architecture).
Noticeable in ~25 different skia bench subtests, especially in
bitmap_8888_*, repeatTile_*, and morph_*.

bitmap_8888_A - 100% faster
bitmap_8888_A_source_transparent - 250% faster
bitmap_8888_A_source_opaque - 25% faster
bitmap_8888_A_scale_bicubic - 75% faster

Signed-off-by: Henrik Smiding <henrik.smiding@intel.com>

Committed: https://skia.googlesource.com/skia/+/e2527b147679b0c43019fae7d59cc3777d2d097e

Committed: https://skia.googlesource.com/skia/+/b5c281e1e06af3be804309877de1dac6145686b9

R=reed@google.com, mtklein@google.com, tomhudson@google.com, djsollen@google.com, joakim.landberg@intel.com

Author: henrik.smiding@intel.com

Review URL: https://codereview.chromium.org/289473009
2014-06-27 08:03:17 -07:00

62 lines
1.4 KiB
Python

# The minimal set of static libraries for basic Skia functionality.
{
'variables': {
'component_libs': [
'core.gyp:core',
'effects.gyp:effects',
'images.gyp:images',
'opts.gyp:opts',
'ports.gyp:ports',
'sfnt.gyp:sfnt',
'utils.gyp:utils',
],
'conditions': [
[ 'skia_arch_type == "x86" and skia_os != "android"', {
'component_libs': [
'opts.gyp:opts_ssse3',
'opts.gyp:opts_sse4',
],
}],
[ 'arm_neon == 1', {
'component_libs': [
'opts.gyp:opts_neon',
],
}],
[ 'skia_gpu', {
'component_libs': [
'gpu.gyp:skgpu',
],
}],
],
},
'targets': [
{
'target_name': 'skia_lib',
'conditions': [
[ 'skia_shared_lib', {
'conditions': [
[ 'skia_os == "android"', {
# The name skia will confuse the linker on android into using the system's libskia.so
# instead of the one packaged with the apk. We simply choose a different name to fix
# this.
'product_name': 'skia_android',
}, {
'product_name': 'skia',
}],
],
'type': 'shared_library',
}, {
'type': 'none',
}],
],
'dependencies': [
'<@(component_libs)',
],
'export_dependent_settings': [
'<@(component_libs)',
],
},
],
}