skia2/bench
Mike Klein baaf8ad952 Start moving SkRasterPipeline stages to SkOpts.
This lets them pick up runtime CPU specializations.  Here I've plugged in SSE4.1.  This is still one of the N prelude CLs to full 8-at-a-time AVX.

I've moved the union of the stages used by SkRasterPipelineBench and SkRasterPipelineBlitter to SkOpts... they'll all be used by the blitter eventually.  Picking up SSE4.1 specialization here (even still just 4 pixels at a time) is a significant speedup, especially to store_srgb(), so much that it's no longer really interesting to compare against the fused-but-default-instruction-set version in the bench.  So that's gone now.

That left the SkRasterPipeline unit test as the only other user of the EasyFn simplified interface to SkRasterPipeline.  So I converted that back down to the bare-metal interface, and EasyFn and its friends became SkRasterPipeline_opts.h exclusive abbreviations (now called Kernel_Sk4f).  This isn't really unexpected: SkXfermode also wanted to build up its own little abstractions, and once you build your own abstraction, the value of an additional EasyFn-like layer plummets to negative.

For simplicity I've left the SkXfermode stages alone, except srcover() which was always part of the blitter.  No particular reason except keeping the churn down while I hack.  These _can_ be in SkOpts, but don't have to be until we go 8-at-a-time.

BUG=skia:

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

Change-Id: I3b476b18232a1598d8977e425be2150059ab71dc
Reviewed-on: https://skia-review.googlesource.com/2752
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Mike Klein <mtklein@chromium.org>
2016-09-29 16:20:26 +00:00
..
AAClipBench.cpp abstract name of clipping ops, to transtion to a more restricted set 2016-09-20 08:42:39 -07:00
AlternatingColorPatternBench.cpp Reland of "Finish conversion to sk_sp<SkShader> (patchset #2 id:20001 of https://codereview.chromium.org/1803763002/ )" 2016-03-14 12:22:10 -07:00
AndroidCodecBench.cpp change SkStreams to work with sk_sp<SkData> instead of SkData* 2016-09-12 12:01:44 -07:00
AndroidCodecBench.h Convert SkAutoTUnref<SkData> to sk_sp<SkData>. 2016-08-03 13:32:32 -07:00
BenchLogger.cpp Style Change: NULL->nullptr 2015-08-27 07:41:16 -07:00
BenchLogger.h Remove Sk prefix from some bench classes. 2014-06-19 12:32:29 -07:00
Benchmark.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
Benchmark.h Began logging more gpu stats from nanobench 2015-12-02 09:05:38 -08:00
BezierBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
BigPathBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
BitmapBench.cpp Factor code to rotate a canvas about a point. 2016-07-12 15:01:19 -07:00
BitmapRectBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
BitmapRegionDecoderBench.cpp change SkStreams to work with sk_sp<SkData> instead of SkData* 2016-09-12 12:01:44 -07:00
BitmapRegionDecoderBench.h Convert SkAutoTUnref<SkData> to sk_sp<SkData>. 2016-08-03 13:32:32 -07:00
BitmapScaleBench.cpp Valgrind is not a fan of uninitialized Src pixels. 2016-01-19 12:42:49 -08:00
BlurBench.cpp switch maskfilters to sk_sp 2016-04-04 10:02:58 -07:00
BlurImageFilterBench.cpp Update SkBlurImageFilter to sk_sp 2016-04-04 04:31:25 -07:00
BlurOccludedRRectBench.cpp Implement GPU occluded blur mask filter 2016-08-10 16:25:25 -07:00
BlurRectBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
BlurRectsBench.cpp switch maskfilters to sk_sp 2016-04-04 10:02:58 -07:00
BlurRoundRectBench.cpp benchmarks: Avoid brackets and commas in test names. 2016-08-29 13:33:04 -07:00
ChartBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
check_bench_regressions.py Adds dashboard link for one-line plot on each alert item. 2014-05-13 17:38:17 +00:00
ChecksumBench.cpp Use sse4.2 CRC32 instructions to hash when available. 2016-08-08 09:06:28 -07:00
ChromeBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
CmapBench.cpp Move SkTypeface to sk_sp. 2016-05-12 10:09:31 -07:00
CodecBench.cpp change SkStreams to work with sk_sp<SkData> instead of SkData* 2016-09-12 12:01:44 -07:00
CodecBench.h Convert SkAutoTUnref<SkData> to sk_sp<SkData>. 2016-08-03 13:32:32 -07:00
CodecBenchPriv.h Make CodecBench test kPremul and kUnpremul 2016-01-07 14:20:20 -08:00
ColorCodecBench.cpp Add BGRA as input format to SkColorSpaceXform 2016-09-22 12:37:04 -07:00
ColorCodecBench.h Improve naive SkColorXform to half floats 2016-07-19 09:07:55 -07:00
ColorCubeBench.cpp Reland of [2] of "switch colorfilters to sk_sp (patchset #11 id:200001 of https://codereview.chromium.o… (patchset #1 id:1 of https://codereview.chromium.org/1821103004/ ) 2016-03-22 10:17:23 -07:00
ColorFilterBench.cpp Update SkXfermodeImageFilter to sk_sp 2016-04-05 12:48:34 -07:00
ColorPrivBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
ControlBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
CoverageBench.cpp remove 'deprecated' region from SkDraw 2016-04-27 07:49:17 -07:00
DashBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
DisplacementBench.cpp Update DisplacementMapEffect to sk_sp 2016-04-15 07:17:36 -07:00
DrawBitmapAABench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
DrawLatticeBench.cpp Add option to skip rects to drawImageLattice() 2016-09-02 11:24:30 -07:00
EncoderBench.cpp Convert SkAutoTUnref<SkData> to sk_sp<SkData>. 2016-08-03 13:32:32 -07:00
FontCacheBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
FontScalerBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
FSRectBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
GameBench.cpp Reland of "Finish conversion to sk_sp<SkShader> (patchset #2 id:20001 of https://codereview.chromium.org/1803763002/ )" 2016-03-14 12:22:10 -07:00
GeometryBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
GLBench.cpp Retract GrRenderTarget from GrTestTarget 2016-05-20 11:14:33 -07:00
GLBench.h Remove const from const int loops. 2015-10-01 09:43:39 -07:00
GLInstancedArraysBench.cpp remove explicit 'f' in glbench shader 2015-12-11 08:31:17 -08:00
GLVec4ScalarBench.cpp Make appending default precision be controled by GLSL 2015-10-26 08:38:26 -07:00
GLVertexAttributesBench.cpp Make appending default precision be controled by GLSL 2015-10-26 08:38:26 -07:00
GMBench.cpp Run GM benchs in bench mode 2016-05-16 09:09:18 -07:00
GMBench.h Remove const from const int loops. 2015-10-01 09:43:39 -07:00
GradientBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
GrMemoryPoolBench.cpp Make SkRandom::next[US]Fixed1 private; update documentation for SkRandom::nextSScalar1. 2016-03-31 06:13:22 -07:00
GrMipMapBench.cpp Lots of progress on switching to SkColorSpace rather than SkColorProfileType 2016-06-16 13:03:24 -07:00
GrResourceCacheBench.cpp Refactor to separate backend object lifecycle and GpuResource budget decision 2016-04-22 01:48:29 -07:00
gUniqueGlyphIDs.h switch array to uint16_t to fix overflows 2013-06-11 19:53:19 +00:00
HairlinePathBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
HardStopGradientBench_ScaleNumColors.cpp Add HardStopGradientBench_ScaleNumHardStops.cpp 2016-07-28 10:59:49 -07:00
HardStopGradientBench_ScaleNumHardStops.cpp Add HardStopGradientBench_ScaleNumHardStops.cpp 2016-07-28 10:59:49 -07:00
HardStopGradientBench_SpecialHardStops.cpp Add new benchmark for testing special hard stop gradient cases 2016-08-03 12:12:19 -07:00
ImageBench.cpp switch surface to sk_sp 2016-03-23 18:59:25 -07:00
ImageCacheBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
ImageCacheBudgetBench.cpp More NoGPU compile fixes 2016-09-15 08:33:02 -07:00
ImageFilterCollapse.cpp Update SkColorFilterImageFilter to sk_sp 2016-04-05 11:50:42 -07:00
ImageFilterDAGBench.cpp Add a transient image filter cache to SkImage::makeWithFilter & PDF 2016-09-21 09:46:57 -07:00
InterpBench.cpp Reverse dependency between SkScalar.h and SkFixed.h. 2016-04-07 08:49:31 -07:00
LightingBench.cpp Rein in the use of SkDevice.h 2016-04-20 05:29:51 -07:00
LineBench.cpp Revert of Modify LineBench for drawing straight line (patchset #3 id:40001 of https://codereview.chromium.org/1936153002/ ) 2016-05-05 14:02:36 -07:00
MagnifierBench.cpp Update MagnifierImageFilter to sk_sp 2016-04-07 07:34:15 -07:00
MathBench.cpp *SkTCast<int*>(float*) -> memcpy 2016-09-29 15:48:04 +00:00
Matrix44Bench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
MatrixBench.cpp Revert of Change mapRectScaleTranslate to pass args/ret by value (patchset #2 id:20001 of https://codereview.chromium.org/2138943002/ ) 2016-08-10 07:13:21 -07:00
MatrixConvolutionBench.cpp distinguish distinct matrixconvolution benchmarks 2016-04-12 15:52:52 -07:00
MeasureBench.cpp Add time return argument to SkCurveMeasure's getPosTan, rename to getPosTanTime 2016-08-10 07:45:31 -07:00
MemoryBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
MemsetBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
MergeBench.cpp Update SkImageSource to sk_sp 2016-04-01 09:28:51 -07:00
microbench.json Fix the other microbench schema 2014-07-25 08:30:11 -07:00
MipMapBench.cpp respect srgb gamma when building mips 2016-06-10 11:41:47 -07:00
MorphologyBench.cpp Update SkMorphology ImageFilters to sk_sp 2016-04-05 09:09:37 -07:00
MutexBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
nanobench.cpp SkFontData to use smart pointers. 2016-09-16 06:24:20 -07:00
nanobench.h Lots of progress on switching to SkColorSpace rather than SkColorProfileType 2016-06-16 13:03:24 -07:00
nanobenchAndroid.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
nanobenchAndroid.h Simplify linkages to Android framework internals 2015-10-26 07:21:32 -07:00
pack_int_uint16_t_Bench.cpp Add a bench to measure the best way to pack from int to uint16_t with SSE. 2016-07-15 07:45:53 -07:00
PatchBench.cpp benchmarks: Avoid brackets and commas in test names. 2016-08-29 13:33:04 -07:00
PatchGridBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
PathBench.cpp Benchmark rotated rect with AA/noAA 2016-06-20 14:05:27 -07:00
PathIterBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
PDFBench.cpp SkPDF: in-place font subsetting 2016-08-18 14:22:52 -07:00
PerlinNoiseBench.cpp move setshader to sk_sp, re-using SK_SUPPORT_LEGACY_CREATESHADER_PTR 2016-03-25 09:08:00 -07:00
PictureNestingBench.cpp return pictures as sk_sp 2016-03-18 07:25:55 -07:00
PictureOverheadBench.cpp No \n in bench names. 2016-09-13 13:27:13 -07:00
PicturePlaybackBench.cpp return pictures as sk_sp 2016-03-18 07:25:55 -07:00
PremulAndUnpremulAlphaOpsBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
QuickRejectBench.cpp Optimized implementation of quickReject() 2016-08-12 08:29:08 -07:00
ReadPixBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
RecordingBench.cpp In recording benches, record to and from the same format. 2016-08-10 12:09:34 -07:00
RecordingBench.h In recording benches, record to and from the same format. 2016-08-10 12:09:34 -07:00
RectanizerBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
RectBench.cpp Revert of try to speed-up maprect + round2i + contains (patchset #8 id:140001 of https://codereview.chromium.org/2133413002/ ) 2016-07-11 14:57:26 -07:00
RectoriBench.cpp switch maskfilters to sk_sp 2016-04-04 10:02:58 -07:00
RefCntBench.cpp Clean up some unused atomic routines. 2016-07-27 08:40:45 -07:00
RegionBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
RegionContainBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
RepeatTileBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
ResultsWriter.h Move SkTArray to include/private. 2016-02-17 13:13:44 -08:00
RotatedRectBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
RTreeBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
ScalarBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
ShaderMaskBench.cpp move setshader to sk_sp, re-using SK_SUPPORT_LEGACY_CREATESHADER_PTR 2016-03-25 09:08:00 -07:00
ShapesBench.cpp Begin instanced rendering for simple shapes 2016-07-07 08:49:11 -07:00
Sk4fBench.cpp Sk4f: add floor() 2016-02-09 15:41:36 -08:00
SkBlend_optsBench.cpp Turn on -Wundefined-reinterpret-cast. 2016-09-26 17:43:47 +00:00
SkGlyphCacheBench.cpp SkTypeface::MakeFromName to take SkFontStyle. 2016-05-31 11:42:37 -07:00
SkLinearBitmapPipelineBench.cpp update callers to not use SkColorProfileType 2016-06-21 10:28:14 -07:00
SKPAnimationBench.cpp Style Change: NULL->nullptr 2015-08-27 07:41:16 -07:00
SKPAnimationBench.h Make nanobench zoom animation time based 2015-06-29 14:06:10 -07:00
SKPBench.cpp switch surface to sk_sp 2016-03-23 18:59:25 -07:00
SKPBench.h Began logging more gpu stats from nanobench 2015-12-02 09:05:38 -08:00
skpbench.json Fix scale type in JSON format 2014-06-26 15:39:31 -07:00
SkRasterPipelineBench.cpp Start moving SkRasterPipeline stages to SkOpts. 2016-09-29 16:20:26 +00:00
SortBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
StrokeBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
SwizzleBench.cpp Optimize CMYK->RGBA (BGRA) transform for jpeg decodes 2016-02-08 13:26:25 -08:00
TableBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
TextBench.cpp Move SkTypeface to sk_sp. 2016-05-12 10:09:31 -07:00
TextBlobBench.cpp Use sk_sp text blob APIs 2016-09-13 10:00:23 -07:00
TileBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
TileImageFilterBench.cpp Update TileImageFilter to sk_sp 2016-04-15 07:57:40 -07:00
TopoSortBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
VertBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
WritePixelsBench.cpp Remove const from const int loops. 2015-10-01 09:43:39 -07:00
WriterBench.cpp Style bikeshed - remove extraneous whitespace 2016-03-29 09:03:53 -07:00
Xfer4fBench.cpp switch xfermodes over to sk_sp 2016-03-29 11:32:50 -07:00
XferF16Bench.cpp remove U16 support, just support F16 2016-04-14 09:02:14 -07:00
XfermodeBench.cpp Revert "Revert "replace Arithmetic xfermode with imagefilter"" 2016-09-27 10:33:06 +00:00