Go to file
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
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench SkPerlinNoiseShader::CreateTubulenceNoise() is misspelled 2014-04-01 16:09:37 +00:00
debugger Thread picture version through to SkReadBuffer. 2014-03-28 18:05:47 +00:00
dm SkRecord strawman 2014-04-01 16:24:06 +00:00
docs Add a sample doc in markdown format. 2014-01-24 19:25:39 +00:00
expectations New GPU baselines for texteffects GM on NexusS, GalaxyNexus. 2014-04-02 14:10:33 +00:00
experimental replace old SK_TRACE_EVENT macros with new TRACE_EVENT ones, and then remove them entirely! 2014-03-20 20:00:24 +00:00
forth Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
gm rebaseline_server: display as much info as possible if expected/actual image is missing 2014-04-01 22:16:33 +00:00
gyp ARM Skia NEON patches - 35 - First AArch64 support 2014-04-02 15:03:56 +00:00
include ARM Skia NEON patches - 35 - First AArch64 support 2014-04-02 15:03:56 +00:00
platform_tools ARM Skia NEON patches - 35 - First AArch64 support 2014-04-02 15:03:56 +00:00
resources Add a simple test ttc for FontHost test. 2014-01-10 20:56:21 +00:00
samplecode SkPerlinNoiseShader::CreateTubulenceNoise() is misspelled 2014-04-01 16:09:37 +00:00
src ARM Skia NEON patches - 35 - First AArch64 support 2014-04-02 15:03:56 +00:00
tests Fix SkXfermodeImageFilter when an input is cropped out. 2014-04-01 19:15:23 +00:00
third_party Drop executable flag from headers so that they can be packaged 2014-03-11 19:55:51 +00:00
tools SkRecord strawman 2014-04-01 16:24:06 +00:00
trybots_to_run/chrome Deleting the hardcoded list of compile bots in trybots_to_run. 2013-04-09 11:59:42 +00:00
.gitignore Ignore out even if it's a symlink. 2014-01-15 16:55:04 +00:00
AUTHORS SkPerlinNoiseShader::CreateTubulenceNoise() is misspelled 2014-04-01 16:09:37 +00:00
codereview.settings Add BUG_PREFIX to codereview.settings 2014-01-14 21:19:21 +00:00
CONTRIBUTING Add CONTRIBUTING file 2014-01-13 15:06:26 +00:00
CQ_COMMITTERS Add eg...@google.com to CQ_COMMITTERS 2014-03-31 18:38:11 +00:00
DEPS Build Skia for a bare-bones embedded Linux system. 2014-02-24 20:22:34 +00:00
Doxyfile update Doxygen config file to include gpu directory in api generation 2014-03-07 16:20:36 +00:00
gyp_skia change default build (in "make" wrapper) to ninja on all platforms 2014-04-01 07:02:41 +00:00
gyp_skia.py Roll gyp deps from 1765 to 1796. 2013-11-21 18:11:14 +00:00
LICENSE Manually update copyright notices in files that defied the automated process 2011-07-28 14:24:55 +00:00
make.bat Make make.bat and gyp_skia work with VS 2012. 2013-05-07 19:31:20 +00:00
make.py change default build (in "make" wrapper) to ninja on all platforms 2014-04-01 07:02:41 +00:00
Makefile change default build (in "make" wrapper) to ninja on all platforms 2014-04-01 07:02:41 +00:00
Makefile.old Replace GR_*_BUILD by their SK_BUILD_FOR_* equivalents. 2013-09-25 20:57:51 +00:00
OWNERS add root files from chrome 2013-08-13 19:11:15 +00:00
PRESUBMIT.py Check if the issue owner is in the AUTHORS file in PRESUBMIT.py 2014-02-03 14:18:32 +00:00
README whitespace commit to trigger buildbot 2011-07-15 14:11:58 +00:00
README.chromium add root files from chrome 2013-08-13 19:11:15 +00:00
skia.gyp Remove the comments settings for vim tab width and expansion variables. 2013-12-02 22:23:03 +00:00
whitespace.txt Whitespace change to trigger rebuilds after master migration 2014-03-31 13:42:10 +00:00

Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

See full details, and build instructions, at http://code.google.com/p/skia/wiki/DocRoot