skia2/bench
Michael Ludwig 9abd568371 Reland "Avoid loop-dependent behavior in GrMemoryPoolBench"
This reverts commit dff4c1d5fd.

Reason for revert: Fix WIP

Original change's description:
> Revert "Avoid loop-dependent behavior in GrMemoryPoolBench"
> 
> This reverts commit f811fc331a.
> 
> Reason for revert: breaks on iOS
> 
> Original change's description:
> > Avoid loop-dependent behavior in GrMemoryPoolBench
> > 
> > This helps stability of benchmark across repeated runs, and across code
> > changes. Previously, a change to the tuned loop count could radically
> > change the allocation behavior within the loop's iteration and lead to
> > unfair comparisons.
> > 
> > In addition, this separates the stack allocation pattern into N allocations
> > followed by N LIFO releases, and a push-pop alternating pattern of N
> > allocates and releases (so still LIFO, but reuses the memory at the start
> > of a block).
> > 
> > In later CLs experimenting on the memory pool, I found that there were
> > surprising effects on performance linked to the specific interaction between
> > the allocation size, per-allocation metadata, and per-block metadata. To
> > help differentiate these coincidences, this adds two modes of allocation
> > where one should already be aligned.
> > 
> > It also moves away from a global pool, so that it's possible to benchmark
> > on different block sizes and factor in the allocation/release cost of the
> > actual blocks (vs. the cursor management of a larger sized pool). As part
> > of this, the new/delete reference operator is added as an explicit benchmark.
> > 
> > Change-Id: I12b8c11cb75db0df70460fe2e8cf6c029db7eb22
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/262936
> > Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> > Reviewed-by: Brian Salomon <bsalomon@google.com>
> 
> TBR=bsalomon@google.com,michaelludwig@google.com
> 
> Change-Id: I16f2810699a378eb5a516ab9fb1834c10b65f01b
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/263029
> Reviewed-by: Michael Ludwig <michaelludwig@google.com>
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>

Change-Id: I51a9db111c26b49572c3fa0928e26ef6e5a7a74c
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/263196
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
2020-01-08 21:09:43 +00:00
..
AAClipBench.cpp Revert "Revert "switch to new filltype for SkPath"" 2019-11-26 17:43:14 +00:00
AlternatingColorPatternBench.cpp more rect api simplifications 2019-08-25 10:12:57 +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 rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +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 add unit scaling mode to benchmark/nanobench 2019-06-03 14:53:29 +00:00
BezierBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
BigPathBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
BitmapBench.cpp more rect api simplifications 2019-08-25 10:12:57 +00:00
BitmapRectBench.cpp more rect api simplifications 2019-08-25 10:12:57 +00:00
BitmapRegionDecoderBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
BitmapRegionDecoderBench.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
BlendmodeBench.cpp Use SkTextEncoding enum instead of macros. 2019-05-07 20:54:16 +00:00
BlurBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
BlurImageFilterBench.cpp Update benchmarks to use new filter factories 2019-08-05 16:41:25 +00:00
BlurRectBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
BlurRectsBench.cpp Revert "Reland "Revert "Use flat version of path-direction enum""" 2019-11-22 19:09:54 +00:00
BulkRectBench.cpp Reland "Add variety of bulk API benchmarks" 2019-10-28 18:48:32 +00:00
ChartBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +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 Add SkUNREACHABLE to definition of SK_ABORT. 2019-08-09 20:43:39 +00:00
ChromeBench.cpp more rect api simplifications 2019-08-25 10:12:57 +00:00
ClearBench.cpp Track if we need stencil on GrRenderTargetContext 2019-06-27 20:29:03 +00:00
ClipMaskBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
ClipStrategyBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
CmapBench.cpp Use SkTextEncoding enum instead of macros. 2019-05-07 20:54:16 +00:00
CodecBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
CodecBench.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
CodecBenchPriv.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
ColorFilterBench.cpp Move SkRuntimeEffect.h to include/effects 2020-01-02 17:37:46 +00:00
ColorPrivBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
CompositingImagesBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
ControlBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
CoverageBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
CTConvertBench.cpp Add a colortype conversion bench 2019-08-26 15:41:54 +00:00
CubicKLMBench.cpp Move GrPathUtils, GrRect, and GrShape into src/gpu/geometry/ 2019-06-04 13:36:05 +00:00
CubicMapBench.cpp create outer forloop to support loops=-1 2019-07-09 14:41:07 +00:00
DashBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
DDLRecorderBench.cpp Add bench for SkDDLRecorder detach 2019-09-12 17:09:08 +00:00
DisplacementBench.cpp Update benchmarks to use new filter factories 2019-08-05 16:41:25 +00:00
DrawBitmapAABench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
DrawLatticeBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
EncodeBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
FontCacheBench.cpp Use SkTextEncoding enum instead of macros. 2019-05-07 20:54:16 +00:00
FSRectBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
GameBench.cpp starter bench for canvas matrix operations 2019-12-30 15:48:26 +00:00
GeometryBench.cpp Revert "Reland "Revert "Use flat version of path-direction enum""" 2019-11-22 19:09:54 +00:00
GMBench.cpp Clean up some gm factory use. 2019-08-13 15:57:37 +00:00
GMBench.h Clean up some gm factory use. 2019-08-13 15:57:37 +00:00
GradientBench.cpp Update benchmarks to use new filter factories 2019-08-05 16:41:25 +00:00
GrCCFillGeometryBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
GrMemoryPoolBench.cpp Reland "Avoid loop-dependent behavior in GrMemoryPoolBench" 2020-01-08 21:09:43 +00:00
GrMipMapBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
GrResourceCacheBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
gUniqueGlyphIDs.h Make header files self-sufficient 2017-02-10 01:19:52 +00:00
HairlinePathBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
HardStopGradientBench_ScaleNumColors.cpp Update benchmarks to use new filter factories 2019-08-05 16:41:25 +00:00
HardStopGradientBench_ScaleNumHardStops.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
HardStopGradientBench_SpecialHardStops.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
ImageBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
ImageCacheBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
ImageCacheBudgetBench.cpp Remove maxCount resource cache limit 2019-09-03 14:59:51 +00:00
ImageCycleBench.cpp Expose the owning surface to a canvas? 2019-11-15 21:48:32 +00:00
ImageFilterCollapse.cpp Update benchmarks to use new filter factories 2019-08-05 16:41:25 +00:00
ImageFilterDAGBench.cpp Remove unused dstColorSpace parameter from makeTextureImage 2019-08-14 19:09:05 +00:00
InterpBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
JSONBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
LightingBench.cpp Update benchmarks to use new filter factories 2019-08-05 16:41:25 +00:00
LineBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
MagnifierBench.cpp Update benchmarks to use new filter factories 2019-08-05 16:41:25 +00:00
MathBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
Matrix44Bench.cpp Revert "Revert "Extend SkCanvas matrix stack to be 4x4, but with (basically) the same public API."" 2020-01-08 16:13:51 +00:00
MatrixBench.cpp more rect api simplifications 2019-08-25 10:12:57 +00:00
MatrixConvolutionBench.cpp Update benchmarks to use new filter factories 2019-08-05 16:41:25 +00:00
MemsetBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
MergeBench.cpp Update benchmarks to use new filter factories 2019-08-05 16:41:25 +00:00
microbench.json Fix the other microbench schema 2014-07-25 08:30:11 -07:00
MipMapBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
MorphologyBench.cpp Update benchmarks to use new filter factories 2019-08-05 16:41:25 +00:00
MutexBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
nanobench.cpp nanobench: option to execute directory of TextBlobTraces as benches 2019-10-25 13:28:49 +00:00
nanobench.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
ParagraphBench.cpp re-run tools/rewrite_includes.py 2019-07-25 15:40:33 +00:00
PatchBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
PathBench.cpp Revert "Reland "Revert "Use flat version of path-direction enum""" 2019-11-22 19:09:54 +00:00
PathIterBench.cpp make pathiter bench a little more realistic 2019-08-20 18:19:55 +00:00
PathOpsBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
PathTextBench.cpp Make FindOrCreateStrikeWithNoDeviceExclusive analog for SkStrikeSpec 2019-06-07 01:29:21 +00:00
PDFBench.cpp SkPDF: MakeShader uses Color4f 2019-05-30 14:52:29 +00:00
PerlinNoiseBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
PictureNestingBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
PictureOverheadBench.cpp remove SkLiteDL 2019-05-14 18:55:44 +00:00
PicturePlaybackBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
PolyUtilsBench.cpp More polyutils fixes 2019-05-01 18:02:05 +00:00
PremulAndUnpremulAlphaOpsBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
QuickRejectBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
ReadPixBench.cpp Reland "Reland "SkSurface asynchronous read APIs allow client to extend pixel lifetime"" 2019-10-03 19:14:22 +00:00
RecordingBench.cpp remove SkLiteDL 2019-05-14 18:55:44 +00:00
RecordingBench.h remove SkLiteDL 2019-05-14 18:55:44 +00:00
RectanizerBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
RectBench.cpp more rect api simplifications 2019-08-25 10:12:57 +00:00
RefCntBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
RegionBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
RegionContainBench.cpp more rect api simplifications 2019-08-25 10:12:57 +00:00
RepeatTileBench.cpp more rect api simplifications 2019-08-25 10:12:57 +00:00
ResultsWriter.h Don't keep "outResultsFile" open in nanobench 2019-10-24 16:09:02 +00:00
RotatedRectBench.cpp Add SkUNREACHABLE to definition of SK_ABORT. 2019-08-09 20:43:39 +00:00
RTreeBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
ScalarBench.cpp more rect api simplifications 2019-08-25 10:12:57 +00:00
ShaderMaskFilterBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
ShadowBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
ShaperBench.cpp Shaper Tests: fix g3 build 2019-05-03 18:10:46 +00:00
ShapesBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
Sk4fBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkGlyphCacheBench.cpp nanobench: option to execute directory of TextBlobTraces as benches 2019-10-25 13:28:49 +00:00
SkGlyphCacheBench.h nanobench: option to execute directory of TextBlobTraces as benches 2019-10-25 13:28:49 +00:00
SKPAnimationBench.cpp remove unused (by clients) SkMultiPictureDraw 2019-11-15 18:18:36 +00:00
SKPAnimationBench.h re-run tools/rewrite_includes.py 2019-07-25 15:40:33 +00:00
SKPBench.cpp remove unused (by clients) SkMultiPictureDraw 2019-11-15 18:18:36 +00:00
SKPBench.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
skpbench.json Fix scale type in JSON format 2014-06-26 15:39:31 -07:00
SkSLBench.cpp renamed SkSL texture() and process() to sample() 2019-07-29 17:37:38 +00:00
SkSLInterpreterBench.cpp Enable SKSL in skia_nanobench, enforce resources being present. 2019-10-16 16:34:36 +00:00
SkVMBench.cpp make some SkVM benches uneven 2019-07-15 02:38:26 +00:00
SortBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
StreamBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
StrokeBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SwizzleBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
TableBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
TextBlobBench.cpp Use SkTextEncoding enum instead of macros. 2019-05-07 20:54:16 +00:00
TileBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
TileImageFilterBench.cpp Update benchmarks to use new filter factories 2019-08-05 16:41:25 +00:00
TopoSortBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
TypefaceBench.cpp use std::make_unique 2019-12-12 22:32:45 +00:00
VertBench.cpp extend imageshader updater to handle perspective 2019-12-19 18:56:39 +00:00
VertexColorSpaceBench.cpp Reland "Move makeDeferredRenderTargetContext calls to factory on RTC." 2020-01-08 19:13:14 +00:00
WritePixelsBench.cpp Rename GrColorSpaceInfo -> GrColorInfo 2019-09-30 21:53:24 +00:00
WriterBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00