Go to file
mtklein 82c93b45ed SkPx: new approach to fixed-point SIMD
SkPx is like Sk4px, except each platform implementation of SkPx can declare
a different sweet spot of N pixels, with extra loads and stores to handle the
ragged edge of 0<n<N pixels.

In this case, _sse's sweet spot remains 4 pixels.   _neon jumps up to 8 so
we can now use NEON's transposing loads and stores, and _none is just 1.
This makes operations involving alpha considerably more efficient on NEON,
as alpha is its own distinct 8x8 bit plane that's easy to toss around.

This incorporates a few other improvements I've been wanting:
  - no requirement that we're dealing with SkPMColor.  SkColor works too.
  - no anonymous namespace hack to differentiate implementations.

Codegen and perf look good on Clang/x86-64 and GCC/ARMv7.
The NEON code looks very similar to the old NEON code, as intended.
No .skp or GM diffs on my laptop.  Don't expect any.

I intend this to replace Sk4px.  Plan after landing:
  - port SkXfermode_opts.h
  - port Color32 in SkBlitRow_D32.cpp (and move to SkBlitRow_opts.h like other
    SkOpts code)
  - delete all Sk4px-related code
  - clean up evolutionary dead ends in SkNx (Sk16b, Sk16h, Sk4i, Sk4d, etc.)
    leaving Sk2f, Sk4f (and Sk2s, Sk4s).
  - find a machine with AVX2 to work on, write SkPx_avx2.h handling 8 pixels
    at a time.

In the end we'll have Sk4f for float pixels, SkPx for fixed-point pixels.

BUG=skia:4117

Review URL: https://codereview.chromium.org/1317233005
2015-09-14 12:43:20 -07:00
animations
bench discardable pixelrefs are gone, update tests accordingly 2015-09-14 08:52:12 -07:00
bin sync-and-gyp: Update shell script to correct the syntax of functions 2015-09-11 20:49:00 -04:00
cmake cmake_build: support SKIA_OUT and BUILDTYPE 2015-09-14 12:02:32 -07:00
debugger Make SkGraphics::Term a no-op, stop calling it. 2015-09-09 07:35:42 -07:00
dm skia: Add ANGLE with GL backend to nanobench/DM 2015-09-11 13:07:29 -07:00
example Make SkGraphics::Term a no-op, stop calling it. 2015-09-09 07:35:42 -07:00
experimental Make SkGraphics::Term a no-op, stop calling it. 2015-09-09 07:35:42 -07:00
forth
gm discardable pixelrefs are gone, update tests accordingly 2015-09-14 08:52:12 -07:00
gyp remove obsolete samples 2015-09-12 09:55:30 -07:00
include Test that GrFragmentProcessors work without input colors. 2015-09-14 12:26:34 -07:00
infra Moved committer list to chrome-infra-auth and deleted it from the repo 2015-09-02 13:37:54 -07:00
platform_tools adb_wait_for_device: Skip adb wait-for-device 2015-09-03 10:41:07 -07:00
resources Add HangingS.ttf to test large flourish caps. 2015-08-26 10:44:48 -07:00
samplecode remove obsolete samples 2015-09-12 09:55:30 -07:00
site Provide link to worker logs. 2015-09-11 10:56:24 -07:00
src SkPx: new approach to fixed-point SIMD 2015-09-14 12:43:20 -07:00
tests Test that GrFragmentProcessors work without input colors. 2015-09-14 12:26:34 -07:00
third_party Revert of Depend on ETC1 via DEPS instead of a direct third_party checkin. (patchset #1 id:1 of https://codereview.chromium.org/1296253003/ ) 2015-08-17 11:15:00 -07:00
tools formalize generate->bitmap 2015-09-13 11:03:32 -07:00
.gitignore Update Android Apps to use gradle 2015-07-24 13:15:59 -07:00
AUTHORS Optimize RGB16 blitV functions with NEON for ARM platform. 2015-07-15 07:07:30 -07:00
BUILD.public Update BUILD.public a bit. 2015-08-18 08:51:49 -07: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 Moved committer list to chrome-infra-auth and deleted it from the repo 2015-09-02 13:37:54 -07:00
DEPS CMake bot script 2015-09-14 10:02:50 -07:00
Doxyfile Documentation: SkCanvas API 2015-05-19 10:21:29 -07:00
gyp_skia Support SKIA_OUT on Mac and ChromeOS 2015-05-04 08:04:28 -07:00
gyp_skia.py Roll gyp deps from 1765 to 1796. 2013-11-21 18:11:14 +00:00
HASHTAGS Fix cr SKPs naming 2015-03-31 08:03:02 -07:00
LICENSE Add files added to Skia HEAD in google3 to the Git repo. 2015-08-17 12:58:10 -07:00
make.bat Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
make.py Fix make.py: BUILDTYPE 2015-08-05 11:30:28 -04:00
Makefile Remove experimental/PdfViewer 2015-08-04 14:08:44 -07:00
OWNERS add root files from chrome 2013-08-13 19:11:15 +00:00
PRESUBMIT.py update presubmit to know about include/private 2015-07-28 08:54:12 -07:00
README Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
README.chromium Update README.chromium. 2015-06-11 13:19:24 -07: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-09-13 14:05:54 -07:00
whitespace.txt Testing CQ committer list 2015-09-02 16:25:17 -07:00

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

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