3-15% speedup to HardLight / Overlay xfermodes.
authormtklein <mtklein@chromium.org>
Tue, 14 Jul 2015 17:54:19 +0000 (10:54 -0700)
committerCommit bot <commit-bot@chromium.org>
Tue, 14 Jul 2015 17:54:19 +0000 (10:54 -0700)
commit4be181e304d2b280c6801bd13369cfba236d1a66
treeae0510f8a6504c3333582fa004e961a8771a2d99
parenta5517e2b190a8083b38964972b031c13e99f1012
3-15% speedup to HardLight / Overlay xfermodes.

While investigating my bug (skia:4052) I saw this TODO and figured
it'd make me feel better about an otherwise unsuccessful investigation.

This speeds up HardLight and Overlay (same code) by about 15% with SSE, mostly
by rewriting the logic from 1 cheap comparison and 2 expensive div255() calls
to 2 cheap comparisons and 1 expensive div255().

NEON speeds up by a more modest ~3%.

BUG=skia:

Review URL: https://codereview.chromium.org/1230663005
src/core/Sk4px.h
src/core/Sk4pxXfermode.h
src/opts/Sk4px_NEON.h
src/opts/Sk4px_SSE2.h
src/opts/Sk4px_none.h
src/opts/SkNx_neon.h
src/opts/SkNx_sse.h
tests/SkNxTest.cpp