Go to file
Mike Klein 1aebdaee0e SkRasterPipeline: 8x pipelines
Bench runtime changes:
sRGB: 7194 -> 3735  = 1.93x faster 
F16:  6531 -> 2559  = 2.55x faster

Instead of building 4x and 1-3x pipelines and then maybe 8x and 1-7x, instead build either the short ones or the long ones, but not both.  If we just take care to use a compatible run_pipeline(), there's some cross-module type disagreement but everything works out in the end.

Oddly, a few places that looked like they'd be faster using SkNx_fma() or Sk4f_round()/Sk8f_round() are actually faster the long way, e.g. multiply, add 0.5, truncate.  Curious!  In all the other places you see here that I've used SkNx_fma(), it's been a significant speedup.

This folds in a couple refactors and cleanups that I've been meaning to do.  Hope you don't mind... if find the new code considerably easier to read than the old code.

BUG=skia:

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2990
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot

Change-Id: I1c82e5755d8e44cc0b9c6673d04b117f85d71a3a
Reviewed-on: https://skia-review.googlesource.com/2990
Reviewed-by: Matt Sarett <msarett@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2016-10-07 12:52:29 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench Revert[8] "replace SkXfermode obj with SkBlendMode enum in paints" 2016-10-05 17:33:03 -07:00
bin bin/coverage: a GN version of the coverage script 2016-09-26 10:30:39 -07:00
cmake There are no more cmake bots, so clean up their old scripts. 2016-09-30 22:19:20 +00:00
debugger Remove some ancillary users of SkSurface::MakeRenderTargetDirect 2016-08-01 05:53:23 -07:00
dm Revert[8] "replace SkXfermode obj with SkBlendMode enum in paints" 2016-10-05 17:33:03 -07:00
example simplify composing raster surface into window 2016-09-29 19:58:04 +00:00
experimental Remove option to make GrCoordTransforms apply to device positions. 2016-10-03 21:39:33 +00:00
fuzz Revert[8] "replace SkXfermode obj with SkBlendMode enum in paints" 2016-10-05 17:33:03 -07:00
gm Fix SkPath::arcTo when sweepAngle is tiny and radius is big 2016-10-06 05:42:23 -07:00
gn Auto re-gen for gn cmake generator. 2016-10-06 21:12:21 +00:00
gyp Revert[8] "replace SkXfermode obj with SkBlendMode enum in paints" 2016-10-05 17:33:03 -07:00
include Fix SkDeferredCanvas for use on android. 2016-10-06 18:52:32 +00:00
infra Use calendar.timegm instead of time.mktime in recipes 2016-10-05 11:43:41 -07:00
platform_tools Add mips dsp arch variants to gyp_to_android.py. 2016-09-27 07:37:20 -07:00
resources GM: add test for type1 font 2016-09-20 13:11:01 -07:00
samplecode Revert[8] "replace SkXfermode obj with SkBlendMode enum in paints" 2016-10-05 17:33:03 -07:00
site Make the housekeeper upload doxygen to a newer bucket 2016-10-04 13:23:57 -07:00
src SkRasterPipeline: 8x pipelines 2016-10-07 12:52:29 +00:00
tests remove sprintf 2016-10-06 11:46:25 -07:00
third_party Fix obvious bug in KTX encoder. 2016-09-29 08:20:41 -07:00
tools Assorted Android fixes 2016-10-06 14:37:24 -07:00
.gitignore Move Skia recipes from build repo 2016-07-26 11:52:17 -07:00
.gn Basic standalone GN configs. 2016-07-21 12:25:45 -07:00
AUTHORS Add contributor to Skia AUTHORS file 2016-09-01 07:55:43 -07:00
BUILD.gn Add fuzz executable to GN 2016-10-03 11:49:45 -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 There are no more cmake bots, so clean up their old scripts. 2016-09-30 22:19:20 +00:00
Doxyfile Make the housekeeper upload doxygen to a newer bucket 2016-10-04 13:23:57 -07:00
gyp_skia Make Win runtime DLLs writeable before overwriting 2016-03-18 08:33:38 -07:00
gyp_skia.py Roll gyp deps from 1765 to 1796. 2013-11-21 18:11:14 +00:00
LICENSE BUG=skia:5602 2016-09-02 11:19:34 -07:00
make.bat Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
make.py GYP: remove stale skia_scalar gyp variable 2015-11-10 13:25:12 -05:00
Makefile Add visualbench as valid target to Makefile 2015-12-18 08:05:06 -08:00
OWNERS add root files from chrome 2013-08-13 19:11:15 +00:00
PRESUBMIT.py Fix public API msg in PRESUBMIT.py 2016-10-05 17:08:55 +00:00
public.bzl Revert[8] "replace SkXfermode obj with SkBlendMode enum in paints" 2016-10-05 17:33:03 -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
whitespace.txt Whitespace change 2016-09-18 11:37:26 -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.