Go to file
commit-bot@chromium.org 7a0e27577d 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:
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@13980 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-28 17:56:14 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench Adds bench expectations to expectations/bench; fixes bench alert test's dependency on script line number. 2014-03-28 17:55:51 +00:00
debugger Sanitizing source files in Housekeeper-Nightly 2014-03-27 03:02:48 +00:00
dm Let DM work without a GPU. 2014-03-26 21:26:15 +00:00
docs Add a sample doc in markdown format. 2014-01-24 19:25:39 +00:00
expectations Adds bench expectations to expectations/bench; fixes bench alert test's dependency on script line number. 2014-03-28 17:55:51 +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: add option to read actuals from local disk 2014-03-28 14:28:04 +00:00
gyp ARM Skia NEON patches - 35 - First AArch64 support 2014-03-28 17:56:14 +00:00
include ARM Skia NEON patches - 35 - First AArch64 support 2014-03-28 17:56:14 +00:00
platform_tools ARM Skia NEON patches - 35 - First AArch64 support 2014-03-28 17:56:14 +00:00
resources Add a simple test ttc for FontHost test. 2014-01-10 20:56:21 +00:00
samplecode Allow toString capability to be toggled independent of developer mode. 2014-03-13 18:02:17 +00:00
src ARM Skia NEON patches - 35 - First AArch64 support 2014-03-28 17:56:14 +00:00
tests Making SkDeferredCanvas::silentFlush trigger a skippedPendingDrawCommands callback 2014-03-27 15:48:52 +00:00
third_party Drop executable flag from headers so that they can be packaged 2014-03-11 19:55:51 +00:00
tools Adds bench expectations to expectations/bench; fixes bench alert test's dependency on script line number. 2014-03-28 17:55:51 +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 Fixed cross compilation with mingw. 2014-03-19 19:28:00 +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 Adding list of Skia's CQ committers 2014-02-13 21:02:38 +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 gyp_skia: make default GYP_GENERATORS for each platform explicit 2014-03-20 19:59:09 +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 Use SKIA_OUT variable in make.py 2013-07-23 15:45:50 +00:00
Makefile pathops work in progress 2013-11-01 17:36:03 +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 builds after master crash 2014-03-27 20:24:18 +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