skia2/gyp
commit-bot@chromium.org 6f2d4d4679 ARM Skia NEON patches - 35 - First AArch64 support
Aarch64 support

This change contains the necessary modifications to have Skia build and
run properly on an ARMv8 processor in aarch64 execution state.

Here's a list of the changes:

 - add an arm64 target to the build system + SK_CPU_ARM64 flag

 - MatrixTest was failing when built in Release mode. Fused MAC
   instructions were generated which made some intermediate results
   more accurate. As the test relies on result comparison, the more
   precise results when compared to others led to a gap bigger than
   what was tolerated. As I don't know if some actual skia code relies
   on results being comparable, I've disabled fused MAC instruction
   with -ffp-contract=off for arm64.

 - Modify include/core/SkOnce.h to have barriers work.

 - SK_CPU_ARM64 implies SK_ARM_NEON_MODE_ALWAYS.

 - use existing Xfermode optimisations with modifications that can be
   removed in the future when toolchains are ready. Also save a few
   instructions is two Xfermodes (will apply to ARM too).

 - use existing SkBoxBlur and SkMorphology optimisations.

 - use existing SkBlitMask optimisations

 - use existing BitmapProcState and Convolution optimisations.

Future changes will include:

 - Blitters (only partialy merged upstream)

 - SkUtils (there's little value in sending asm optimisations without
   having them benchmarked on real hardware).

Signed-off-by: Kevin PETIT <kevin.petit@arm.com>

BUG=skia:

Committed: http://code.google.com/p/skia/source/detail?r=13980

R=djsollen@google.com, reed@google.com, mtklein@google.com, halcanary@google.com

Author: kevin.petit@arm.com

Review URL: https://codereview.chromium.org/143423004

git-svn-id: http://skia.googlecode.com/svn/trunk@14025 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-02 15:03:56 +00: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 Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
animator.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
apptype_console.gypi Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
bench.gyp Add SkCanvas::writePixels that takes info+pixels directly 2014-03-07 03:25:16 +00:00
bench.gypi Add SkCanvas::writePixels that takes info+pixels directly 2014-03-07 03:25:16 +00:00
chromeos_deps.gyp GYP Changes and Scripts for Compiling Skia for ChromeOS 2013-06-11 15:52:19 +00:00
common_conditions.gypi ARM Skia NEON patches - 35 - First AArch64 support 2014-04-02 15:03:56 +00:00
common_variables.gypi ARM Skia NEON patches - 35 - First AArch64 support 2014-04-02 15:03:56 +00:00
common.gypi Reland "Gyp file changes for the android framework." 2014-02-05 16:35:12 +00:00
core.gyp Reland "Gyp file changes for the android framework." 2014-02-05 16:35:12 +00:00
core.gypi Add discard API to SkCanvas, plumb it to glDiscardFramebuffer() 2014-03-28 16:08:05 +00:00
debugger.gyp Small tweaks to be able to build everything target: 2014-01-08 21:16:14 +00:00
dm.gyp SkRecord strawman 2014-04-01 16:24:06 +00:00
effects.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
effects.gypi Implement a generic matrix transform image filter. 2014-03-25 17:35:10 +00:00
everything.gyp First pass at a web app that lets you run Skia code and see the results. 2014-03-11 22:57:50 +00:00
experimental.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
FileReaderApp.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
flags.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
fontconfig.gyp Roll fontconfig to 2.11.0 and reenable poppler on mac 2014-01-15 17:24:22 +00: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 Allow GMs to be used as benchmarks. Make convex_poly_clip opt in. 2014-02-03 14:48:17 +00:00
gmslides.gypi Implement a generic matrix transform image filter. 2014-03-25 17:35:10 +00:00
gpu.gyp Enable use of distance fields via SkPaint flag. 2014-03-11 17:07:15 +00:00
gpu.gypi Actually identify required saveLayers in SkGpuDevice::EXPERIMENTAL_drawPicture 2014-03-31 17:55:12 +00:00
gputest.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
iconv.gyp Sanitizing source files in Housekeeper-Nightly 2013-08-21 07:01:29 +00:00
images.gyp Fix ChromeOS build broken in f84722e477 2014-02-24 21:39:01 +00:00
jsoncpp.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00: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 Let DM work without a GPU. 2014-03-26 21:26:15 +00:00
nacl.gyp Prepare skia for shared library build on android 2013-06-03 12:10:19 +00:00
opts.gyp ARM Skia NEON patches - 35 - First AArch64 support 2014-04-02 15:03:56 +00:00
pathops_unittest.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
pathops_unittest.gypi path ops work in progress 2013-10-02 14:49:34 +00:00
pathops.gypi path ops work in progress 2013-09-16 15:55:01 +00:00
pdf.gyp Build Skia for a bare-bones embedded Linux system. 2014-02-24 20:22:34 +00: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 Build Skia for a bare-bones embedded Linux system. 2014-02-24 20:22:34 +00: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 Add extra warnings to match what Android uses. 2013-11-20 15:13:49 +00:00
ports.gyp Purge SkPurgeableMemoryBlock. 2014-04-01 23:50:53 +00:00
public_headers.gypi replace old SK_TRACE_EVENT macros with new TRACE_EVENT ones, and then remove them entirely! 2014-03-20 20:00:24 +00:00
record.gyp SkRecord strawman 2014-04-01 16:24:06 +00:00
SampleApp.gyp Fix SampleApp build 2014-02-26 18:12:11 +00:00
sfnt.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00: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 Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
skflate.gyp Build Skia for a bare-bones embedded Linux system. 2014-02-24 20:22:34 +00:00
skia_for_chromium_defines.gypi remove SK_SUPPORT_LEGACY_COMPATIBLEDEVICE_CONFIG 2014-03-26 15:55:50 +00:00
skia_lib.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
skpskgr_test.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
svg.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
tests.gyp Let DM run unit tests. 2014-02-26 16:31:22 +00:00
tests.gypi Add removeShuffle to SkTArray and add SkTArray tests. 2014-03-21 19:39:02 +00:00
tools.gyp SkRecord strawman 2014-04-01 16:24:06 +00:00
utils.gyp A remotable font management interface and DirectWrite implementation. 2014-03-21 22:48:32 +00:00
v8.gyp Factor out a BaseContext from JsContext. 2014-03-04 20:44:32 +00:00
views_animated.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
views.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
webtry.gyp First pass at a web app that lets you run Skia code and see the results. 2014-03-11 22:57:50 +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