skia2/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
..
android_deps.gyp Reland "Gyp file changes for the android framework." 2014-02-05 16:35:12 +00:00
android_framework_lib.gyp Updates to gyp files for building Android.mk 2014-02-28 16:07:39 +00:00
android_system.gyp Update DEPS and GYP to use the copy of Android in platform_tools. 2013-05-02 12:27:21 +00:00
angle.gyp Try to roll angle again. 2014-06-17 17:28:17 -04:00
animator.gyp rename SkPaintParts.* to SkPaintPart.* 2014-04-18 15:14:25 +00:00
apptype_console.gypi Move BenchTimer to tools as Timer 2014-06-20 11:29:21 -07:00
bench.gyp Add nanobench, a fresh look at our microbenchmark harness. 2014-06-25 14:08:00 -07:00
bench.gypi Remove SkBicubicImageFilter, and all related tests. 2014-06-25 14:39:06 -07:00
chromeos_deps.gyp GYP Changes and Scripts for Compiling Skia for ChromeOS 2013-06-11 15:52:19 +00:00
common_conditions.gypi Make LTCG optional on windows builds. 2014-06-26 12:56:28 -07:00
common_variables.gypi Make LTCG optional on windows builds. 2014-06-26 12:56:28 -07:00
common.gypi Deprecate SaveFlags use in the public SkCanvas API. 2014-04-24 21:51:58 +00:00
core.gyp Focus disabled optimizations on just BGRAConvolve2D, and only 32-bit. 2014-06-25 09:14:28 -07:00
core.gypi add pathops tight bounds; conform path ops' gyp to unit tests 2014-06-24 07:55:12 -07:00
debugger.gyp Move BenchTimer to tools as Timer 2014-06-20 11:29:21 -07:00
dm.gyp Support serialization in SkRecord-backed SkPictures. 2014-06-24 12:28:34 -07:00
effects.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
effects.gypi Remove SkBicubicImageFilter, and all related tests. 2014-06-25 14:39:06 -07:00
etc1.gyp Simple PKM image decoder. 2014-05-22 18:40:29 +00:00
everything.gyp No need to include ../tools/flags in include_dirs when depending on flags target. 2014-06-22 16:13:00 -07:00
experimental.gyp No need to include ../tools/flags in include_dirs when depending on flags target. 2014-06-22 16:13:00 -07:00
FileReaderApp.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
flags.gyp No need to include ../tools/flags in include_dirs when depending on flags target. 2014-06-22 16:13:00 -07:00
freetype.gyp Build Skia for a bare-bones embedded Linux system. 2014-02-24 20:22:34 +00:00
freetype.gypi Sanitizing source files in Housekeeper-Nightly 2013-08-21 07:01:29 +00:00
giflib.gyp Sanitizing source files in Housekeeper-Nightly 2014-02-25 03:05:18 +00:00
gm.gyp use platform-independent font for gm 2014-06-23 11:25:00 -07:00
gmslides.gypi Remove SkBicubicImageFilter, and all related tests. 2014-06-25 14:39:06 -07:00
gpu.gyp Add an LATC compressor to the A8 masks, and hide it behind an ifdef. 2014-06-10 17:25:28 -07:00
gpu.gypi Implement text rendering with NVPR 2014-06-24 00:12:27 -07:00
gputest.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
images.gyp remove ashmem from skia 2014-06-05 08:16:34 -07:00
jsoncpp.gyp In Android framework, make tools depend on jsoncpp 2014-06-18 10:31:40 -07:00
ktx.gyp Initial KTX encoder 2014-06-06 06:16:28 -07:00
libjpeg.gyp Build Skia for a bare-bones embedded Linux system. 2014-02-24 20:22:34 +00:00
libpng.gyp Build Skia for a bare-bones embedded Linux system. 2014-02-24 20:22:34 +00:00
libwebp.gyp Fix warnings on Ubuntu13 2014-02-21 20:11:42 +00:00
lua.gyp Build Skia for a bare-bones embedded Linux system. 2014-02-24 20:22:34 +00:00
most.gyp Add nanobench, a fresh look at our microbenchmark harness. 2014-06-25 14:08:00 -07:00
nacl.gyp Prepare skia for shared library build on android 2013-06-03 12:10:19 +00:00
nanomsg.gyp Add nanomsg to third_party, with some demos. 2014-06-16 20:21:06 -07:00
opts.gyp Add SSE4 optimization of S32A_Opaque_Blitrow 2014-06-27 08:03:17 -07:00
pathops_unittest.gyp add pathops tight bounds; conform path ops' gyp to unit tests 2014-06-24 07:55:12 -07:00
pathops_unittest.gypi add pathops tight bounds; conform path ops' gyp to unit tests 2014-06-24 07:55:12 -07:00
pathops.gypi path ops work in progress 2013-09-16 15:55:01 +00:00
pdf.gyp Revert of Switch SkPDFStream's internal storage from SkStream to SkData (https://codereview.chromium.org/340783013/) 2014-06-26 14:31:06 -07:00
pdf.gypi Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
pdfviewer_lib.gyp move some headers out of public 2014-06-17 09:04:45 -07:00
pdfviewer.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
pixman_test.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
poppler.gyp Since we're only using it on Linux now, just require poppler as a system dependency. 2014-05-20 15:07:53 +00:00
ports.gyp Rename SkFontHost_win_dw.cpp SkScalerContext. 2014-06-05 16:55:58 -04:00
public_headers.gypi Remove SkBicubicImageFilter, and all related tests. 2014-06-25 14:39:06 -07:00
record.gypi Add EXPERIMENTAL_beginRecording() for SkRecord-based recording. 2014-06-17 12:08:16 -07:00
SampleApp.gyp Add GYP target for sk_tool_utils.* component. 2014-06-21 10:54:17 -07:00
sfnt.gyp Better rendering detection with DirectWrite. 2014-06-23 08:29:23 -07:00
shapeops_demo.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
shapeops_edge.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
shapeops_tool.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
SimpleCocoaApp.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
SimpleiOSApp.gyp get iOS building again 2014-04-05 01:13:43 +00:00
skflate.gyp Build Skia for a bare-bones embedded Linux system. 2014-02-24 20:22:34 +00:00
skia_for_android_framework_defines.gypi hide SkBitmap::Config entirely (behind a flag) 2014-06-17 08:38:31 -07:00
skia_for_chromium_defines.gypi remove SK_SUPPORT_LEGACY_DEVICE_VIRTUAL_ISOPAQUE for chrome 2014-06-26 18:47:09 -07:00
skia_launcher.gyp Move BenchTimer to tools as Timer 2014-06-20 11:29:21 -07:00
skia_lib.gyp Add SSE4 optimization of S32A_Opaque_Blitrow 2014-06-27 08:03:17 -07:00
svg.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
tests.gyp Move BenchTimer to tools as Timer 2014-06-20 11:29:21 -07:00
tests.gypi Promote SkInterpolator unit test to our tests driver. 2014-06-26 13:07:05 -07:00
tools.gyp use platform-independent font for gm 2014-06-23 11:25:00 -07:00
utils.gyp remove ashmem from skia 2014-06-05 08:16:34 -07:00
utils.gypi use platform-independent font for gm 2014-06-23 11:25:00 -07:00
v8.gyp No need to include ../tools/flags in include_dirs when depending on flags target. 2014-06-22 16:13:00 -07:00
views_animated.gyp Remove dependency of views on angle 2014-04-29 00:38:39 +00:00
views.gyp Remove dependency of views on angle 2014-04-29 00:38:39 +00:00
webtry.gyp Add pathops and capture stderr so we can get SkDebugf output. 2014-04-28 14:56:32 +00:00
xml.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
xps.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
zlib.gyp Fix valgrind bot errors introduced in f84722e477. 2014-02-25 18:01:37 +00:00