Go to file
mtklein f94fa7112f SkPMFloat: avoid loads and stores where possible.
A store/load pair like this is a redundant no-op:
  store simd_register_a, memory_address
  load  memory_address, simd_register_a

Everyone seems to be good at removing those when using SSE, but GCC and Clang
are pretty terrible at this for NEON.  We end up issuing both redundant
commands, usually to and from the stack.  That's slow.  Let's not do that.

This CL unions in the native SIMD register type into SkPMFloat, so that we can
assign to and from it directly, which is generating a lot better NEON code.  On
my Nexus 5, the benchmarks improve from 36ns to 23ns.

SSE is just as fast either way, but I paralleled the NEON code for consistency.
It's a little terser.  And because it needed the platform headers anyway, I
moved all includes into SkPMFloat.h, again only for consistency.

I'd union in Sk4f too to make its conversion methods a little clearer,
but MSVC won't let me (it has a copy constructor... they're apparently not up
to speed with C++11 unrestricted unions).

BUG=skia:

Review URL: https://codereview.chromium.org/1015083004
2015-03-18 09:51:24 -07:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench SkPaint::FilterLevel -> SkFilterQuality 2015-03-16 10:08:34 -07:00
bin Add a script to fetch the latest SKPs. 2015-01-28 09:39:10 -08:00
debugger FilterLevel -> SkFilterQuality 2015-03-16 10:26:13 -07:00
dm Display currently running tests as the keepalive message. 2015-03-18 05:27:14 -07:00
docs Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
example move HelloWorld to be a peer of SampleApp 2015-02-02 12:55:14 -08:00
experimental Fix SampleApp build on iOS. 2015-02-26 09:52:12 -08:00
forth Sanitizing source files in Skia_Periodic_House_Keeping 2013-01-26 07:06:02 +00:00
gm add kGray_8_SkColorType 2015-03-17 17:44:07 -07:00
gyp Indexed PNG decoding: Ensure color table is large enough that the bit depth of the image will not allow reads beyond its end. 2015-03-18 06:03:30 -07:00
include Add comment describing SkColorTable constructor. 2015-03-18 08:00:27 -07:00
platform_tools Add custom dm upload script to be used by the android framework 2015-03-05 09:13:58 -08:00
resources Ico security issues fix 2015-03-13 08:07:01 -07:00
samplecode SkPaint::FilterLevel -> SkFilterQuality 2015-03-16 10:08:34 -07:00
site Doc: htmlify roles table to allow easier modification 2015-03-17 09:56:33 -07:00
src SkPMFloat: avoid loads and stores where possible. 2015-03-18 09:51:24 -07:00
tests Indexed PNG decoding: Ensure color table is large enough that the bit depth of the image will not allow reads beyond its end. 2015-03-18 06:03:30 -07:00
third_party Add SkCodec, including PNG implementation. 2015-03-03 08:59:20 -08:00
tools DM: disable image src type on Windows. 2015-03-17 12:52:16 -07:00
.gitignore git: add skps to .gitignore 2015-02-13 18:57:33 -08:00
AUTHORS Fix GIF transparency. 2015-02-04 21:31:23 -08:00
codereview.settings Automatically add a docs preview link and NOTRY=true when there are only docs changes. 2015-02-26 10:16:13 -08:00
CONTRIBUTING Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
CQ_COMMITTERS add new Skia team member to committers list 2015-02-03 11:10:57 -08:00
DEPS Add SkCodec, including PNG implementation. 2015-03-03 08:59:20 -08:00
Doxyfile Fix links to skia-buildbot code in preparation for deletion 2014-10-14 04:44:44 -07:00
gyp_skia allow caller to override the default output directory for gyp 2014-09-29 11:42:25 -07: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 Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
make.py Run gyp on Win with --no-parallel -G config=$(BUILDTYPE), fix pylint 2015-03-03 13:15:38 -05:00
Makefile Run gyp with --no-parallel -G config=$(BUILDTYPE) 2015-03-03 06:05:56 -08:00
OWNERS add root files from chrome 2013-08-13 19:11:15 +00:00
PRESUBMIT.py Ignore public API checks if COMMIT=false is in the description 2015-03-12 09:48:10 -07:00
README Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
README.chromium add root files from chrome 2013-08-13 19:11:15 +00:00
skia.gyp Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
SKP_VERSION Update SKP version 2015-03-15 01:13:36 -07:00
whitespace.txt Whitespace change to test new GCE compile bot 2015-03-18 08:50:30 -04:00

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

See full details, and build instructions, at https://skia.org.