skia2/bench
Mike Klein 7ac2be2020 Reland "add ERMS (enhanced rep mov/sto) SkOpts slice"
This is a reland of 26ad8ccdec
... now with MSAN support.

Original change's description:
> add ERMS (enhanced rep mov/sto) SkOpts slice
>
> Intel's got two CPUID bits indicating the speed of rep mov/sto
> (memcpy/memset),
>
>     - ERMS, Enhanced Rep Mov/Sto, older, large copies are fast?
>     - FSRM, Fast Short Rep Mov, newer, small copies are fast?
>
> ERMS has been around a long time on Intel, but is relatively recent on
> Ryzen, and FSRM is new across the board.  The startup cost for
> ERMS-but-not-FSRM copies really is noticeable, so we cut over to the
> previous SSE/AVX routines when N is small.
>
> I've left the memset benchmarks as I found them most useful when
> tuning the small/large cutoff in this CL.
>
> Change-Id: I3ac4e3f34796aba0ea86aabbe9dda7526919456a
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/332580
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Mike Klein <mtklein@google.com>

Cq-Include-Trybots: luci.skia.skia.primary:Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-MSAN
Change-Id: Ia293bba90022c48c884599331ef35aa67644729b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/334343
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Herb Derby <herb@google.com>
2020-11-12 18:00:39 +00:00
..
AAClipBench.cpp Use SkClipOp::kIntersect instead of kReplace_ClipOp 2020-09-16 18:37:37 +00:00
AlternatingColorPatternBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
AndroidCodecBench.cpp Reland "Reland "SkSurface asynchronous read APIs allow client to extend pixel lifetime"" 2019-10-03 19:14:22 +00:00
AndroidCodecBench.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
BenchLogger.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
BenchLogger.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
Benchmark.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
Benchmark.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
BezierBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
BigPathBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
BitmapBench.cpp mark bitmap immutable in bench 2020-11-12 17:35:50 +00:00
BitmapRectBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
BitmapRegionDecoderBench.cpp Move SkBitmapRegionCodec into client_utils/android 2020-05-20 20:06:48 +00:00
BitmapRegionDecoderBench.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
BlendmodeBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
BlurBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
BlurImageFilterBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
BlurRectBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
BlurRectsBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
BulkRectBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
ChartBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00: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 Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
ChromeBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
ClearBench.cpp Track if we need stencil on GrRenderTargetContext 2019-06-27 20:29:03 +00:00
ClipMaskBench.cpp remove (unused) clipmask from savelayer 2020-06-15 14:26:44 +00:00
ClipStrategyBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
CmapBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
CodecBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
CodecBench.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
CodecBenchPriv.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
ColorFilterBench.cpp Runtime Effects: Support 'uniform shader' (vs. 'in shader') 2020-11-04 22:29:53 +00:00
ColorPrivBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
CompositingImagesBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
ControlBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
CoverageBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
CreateBackendTextureBench.cpp Rename SkTArray::reserve to reserve_back. 2020-10-14 21:42:11 +00:00
CTConvertBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
CubicMapBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
DashBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
DDLRecorderBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
DisplacementBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
DrawBitmapAABench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
EncodeBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
FilteringBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
FontCacheBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
FSRectBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
GameBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
GeometryBench.cpp Only expose isConvex on path publicly. 2020-08-28 16:56:29 +00:00
GlyphQuadFillBench.cpp Reland "Remove use of legacy display globals." 2020-10-05 19:13:58 +00:00
GMBench.cpp Add a convenience to downcast contexts into GrDirectContext 2020-07-07 18:13:50 +00:00
GMBench.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
GradientBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
GrMemoryPoolBench.cpp replace std::aligned_storage 2020-11-10 14:47:36 +00:00
GrMipmapBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
GrPathUtilsBench.cpp Add GrPathUtils::findCubicConvex180Chops 2020-11-02 20:33:54 +00:00
GrQuadBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
GrResourceCacheBench.cpp Rename GrContextPriv to GrDirectContextPriv 2020-10-14 16:46:01 +00:00
gUniqueGlyphIDs.h Make header files self-sufficient 2017-02-10 01:19:52 +00:00
HairlinePathBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
HardStopGradientBench_ScaleNumColors.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
HardStopGradientBench_ScaleNumHardStops.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
HardStopGradientBench_SpecialHardStops.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
ImageBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
ImageCacheBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
ImageCacheBudgetBench.cpp Rename GrContextPriv to GrDirectContextPriv 2020-10-14 16:46:01 +00:00
ImageCycleBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
ImageFilterCollapse.cpp Update benchmarks to use new filter factories 2019-08-05 16:41:25 +00:00
ImageFilterDAGBench.cpp Add SkImageFilters::Blend rename for Xfermode filter 2020-10-13 14:28:26 +00:00
InterpBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
JSONBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
LightingBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
LineBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
MagnifierBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
MathBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
Matrix44Bench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
MatrixBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
MatrixConvolutionBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
MemsetBench.cpp Reland "add ERMS (enhanced rep mov/sto) SkOpts slice" 2020-11-12 18:00:39 +00:00
MergeBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
microbench.json Fix the other microbench schema 2014-07-25 08:30:11 -07:00
MipmapBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
MorphologyBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
MutexBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
nanobench.cpp Reland "[svg] Relocate out of experimental" 2020-10-16 02:32:41 +00:00
nanobench.h Enable ClangTidy check readability-redundant-smartptr-get. 2020-08-16 15:56:48 +00:00
PatchBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
PathBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
PathIterBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
PathOpsBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
PathTextBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
PDFBench.cpp Add GrDirectContext arg to SkImage::readPixels 2020-08-27 19:26:29 +00:00
PerlinNoiseBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
PictureNestingBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
PictureOverheadBench.cpp remove SkLiteDL 2019-05-14 18:55:44 +00:00
PicturePlaybackBench.cpp Enable ClangTidy check modernize-make-unique. 2020-08-03 17:53:52 +00:00
PolyUtilsBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
PremulAndUnpremulAlphaOpsBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
QuickRejectBench.cpp Revert "Revert "move onto new factories for SkMatrix"" 2020-05-21 16:58:39 +00:00
ReadPixBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
RecordingBench.cpp Can we remove this flag to picture-recording? 2020-08-20 12:29:42 +00:00
RecordingBench.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
RectanizerBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
RectBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
RefCntBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
RegionBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
RegionContainBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
RepeatTileBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
ResultsWriter.h Don't keep "outResultsFile" open in nanobench 2019-10-24 16:09:02 +00:00
RotatedRectBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
RTreeBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
ScalarBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
ShaderMaskFilterBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
ShadowBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
ShaperBench.cpp Shaper Tests: fix g3 build 2019-05-03 18:10:46 +00:00
ShapesBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
Sk4fBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkGlyphCacheBench.cpp Reland "Remove use of legacy display globals." 2020-10-05 19:13:58 +00:00
SkGlyphCacheBench.h nanobench: option to execute directory of TextBlobTraces as benches 2019-10-25 13:28:49 +00:00
SKPAnimationBench.cpp Remove do-nothing MPD benchmarking from nanobench 2020-08-27 15:30:36 +00:00
SKPAnimationBench.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SKPBench.cpp Rename SkTArray::reserve to reserve_back. 2020-10-14 21:42:11 +00:00
SKPBench.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
skpbench.json Fix scale type in JSON format 2014-06-26 15:39:31 -07:00
SkSLBench.cpp Revert "Revert "Additional SkSL benches"" 2020-11-06 15:10:10 +00:00
SkSLBench.h Add heap usage of SkSL::Compiler to nanobench output 2020-07-09 00:05:28 +00:00
SkSLInterpreterBench.cpp Move GrShaderCaps from Program::Settings to Compiler 2020-11-04 19:38:33 +00:00
SkVMBench.cpp Enable ClangTidy check llvm-namespace-comment. 2020-08-06 19:07:52 +00:00
SortBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
StreamBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
StrokeBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SwizzleBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
TableBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
TessellateBench.cpp Add a mock implementation of GrMeshDrawOp::Target 2020-11-10 15:38:46 +00:00
TextBlobBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
TileBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
TileImageFilterBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
TopoSortBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
TypefaceBench.cpp use std::make_unique 2019-12-12 22:32:45 +00:00
VertBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
VertexColorSpaceBench.cpp replace GrOpMemoryPool with GrMemoryPool 2020-10-27 16:15:11 +00:00
WritePixelsBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
WriterBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00