skia2/bench
Michael Ludwig e9eda5802a [graphite] Add HybridBoundsManager and use as default impl
This combines the BruteForceManager and Gridmanager, starting with
brute force when it's fastest for low N and then transitioning to less
accurate grid that scales for larger N.

Also updates the set of benchmarks to run based on more reasonable
configs (e.g. having a reasonable level of accuracy to be worth
considering).

Updates Device to use the HybridBoundsManager with brute force up to
64 draws, and then a grid configured to make 16x16 pixel cells. My
guess is we will see a mix of perf regressions and improvements with
this. The existing use of the NaiveBoundsManager had negligible CPU
cost but disallowed all re-ordering. The brute force and grid
managers will add CPU cost but enable re-ordering, which shows up
as shorter command buffers (e.g. 17k commands vs. 28k commands in the
motionmark suits benchmark). However, because we don't have SSBOs
there still isn't as much batching that would let the GPU take
advantage of this re-ordering so I'm not sure how visible the wins
will be yet.

Bug: skia:13201, skia:12787
Change-Id: Iad58fccab45def5f702a30860e063669424dfcf2
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/550518
Reviewed-by: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Nicolette Prevost <nicolettep@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-06-21 15:52:22 +00:00
..
graphite [graphite] Add HybridBoundsManager and use as default impl 2022-06-21 15:52:22 +00:00
AAClipBench.cpp Simplify SkAAClip to use SkClipOp, not SkRegion::Op 2021-09-20 20:12:38 +00:00
AlternatingColorPatternBench.cpp Replace SK_ARRAY_COUNT with std::size() for skia/bench 2022-06-17 00:25:28 +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 [graphite] Add support to nanobench for Graphite. 2022-03-14 20:10:30 +00:00
BezierBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
BigPath.cpp Move ToolUtils::make_big_path() to bench/ 2021-10-14 12:57:29 +00:00
BigPath.h Move ToolUtils::make_big_path() to bench/ 2021-10-14 12:57:29 +00:00
BigPathBench.cpp Move ToolUtils::make_big_path() to bench/ 2021-10-14 12:57:29 +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 Re-enable blend micro benchs for non raster backends. 2022-01-05 16:24:48 +00:00
BlurBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
BlurImageFilterBench.cpp drawBitmap is deprecated 2021-01-24 17:39:15 +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 Move all Ganesh source files into ganesh subdirectory. 2022-04-07 21:06:50 +00:00
CanvasSaveRestoreBench.cpp Microbench for canvas save/restore calls 2021-07-27 21:08:11 +00:00
ChartBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +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 Move all Ganesh source files into ganesh subdirectory. 2022-04-07 21:06:50 +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 Fix cases of variable shadowing in /bench/. 2021-08-13 17:51:39 +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 Convert some SkRuntimeEffect::Make to use stage-specific factories 2021-04-21 16:19:57 +00:00
ColorPrivBench.cpp Remove SK_MAYBE_UNUSED. 2022-06-16 16:52:53 +00:00
CompositingImagesBench.cpp [includes] Prepare for moving SkColorSpace to forward declare 2022-03-31 19:50:10 +00:00
ControlBench.cpp Remove SK_MAYBE_UNUSED. 2022-06-16 16:52:53 +00:00
CoverageBench.cpp Refactor SkMatrixProvider slightly 2021-12-09 20:10:58 +00:00
CreateBackendTextureBench.cpp mipMapped -> mipmapped 2022-04-18 14:26:19 +00:00
CubicMapBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
DashBench.cpp Replace SK_ARRAY_COUNT with std::size() for skia/bench 2022-06-17 00:25:28 +00:00
DDLRecorderBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
DecodeBench.cpp Reland "bench: Add PhoneHub assets to skottie-vs-png decode bench" 2021-09-23 17:40:09 +00:00
DisplacementBench.cpp filter-quality is deprecated, pass sampling to drawImage 2021-01-28 03:22:51 +00:00
DrawBitmapAABench.cpp Simplify common case of linear filtering with no mips 2021-01-15 16:47:16 +00:00
EncodeBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
FilteringBench.cpp other ways to organize samplingoptions? 2020-11-21 02:00:26 +00:00
FindCubicConvex180ChopsBench.cpp Move src/gpu/tessellate/ types into skgpu::tess namespace 2022-05-06 19:57:42 +00:00
FontCacheBench.cpp Replace SK_ARRAY_COUNT with std::size() for skia/bench 2022-06-17 00:25:28 +00:00
FSRectBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
GameBench.cpp drawBitmap is deprecated 2021-01-24 17:39:15 +00:00
GeometryBench.cpp Replace SK_ARRAY_COUNT with std::size() for skia/bench 2022-06-17 00:25:28 +00:00
GlyphQuadFillBench.cpp Reland "Move SkSubRun to src/text" 2022-06-18 17:20:42 +00:00
GMBench.cpp Move all Ganesh source files into ganesh subdirectory. 2022-04-07 21:06:50 +00:00
GMBench.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
GradientBench.cpp Replace SK_ARRAY_COUNT with std::size() for skia/bench 2022-06-17 00:25:28 +00:00
GrMemoryPoolBench.cpp Move Ganesh specific headers into include/private/gpu/ganesh 2022-04-12 17:30:07 +00:00
GrMipmapBench.cpp [includes] Prepare for moving SkColorSpace to forward declare 2022-03-31 19:50:10 +00:00
GrQuadBench.cpp Move all Ganesh source files into ganesh subdirectory. 2022-04-07 21:06:50 +00:00
GrResourceCacheBench.cpp [Part 1]: Update the label string. 2022-06-09 20:13:50 +00:00
gUniqueGlyphIDs.h
HairlinePathBench.cpp Replace SK_ARRAY_COUNT with std::size() for skia/bench 2022-06-17 00:25:28 +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 Move all Ganesh source files into ganesh subdirectory. 2022-04-07 21:06:50 +00:00
ImageCycleBench.cpp [includes] Prepare for moving SkColorSpace to forward declare 2022-03-31 19:50:10 +00:00
ImageFilterCollapse.cpp Replace SK_ARRAY_COUNT with std::size() for skia/bench 2022-06-17 00:25:28 +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
MathBench.cpp Prepare to reenable unreachable-code warnings. 2022-02-04 21:45:39 +00:00
Matrix44Bench.cpp Add mapRect function and RectToRect constructor to SkM44 2021-05-05 19:57:26 +00:00
MatrixBench.cpp Remove SK_MAYBE_UNUSED. 2022-06-16 16:52:53 +00:00
MatrixConvolutionBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
MemsetBench.cpp Move sk_memset* from SkUtils to SkOpts 2021-11-03 17:03:21 +00:00
MergeBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
microbench.json
MipmapBench.cpp [includes] Prepare for moving SkColorSpace to forward declare 2022-03-31 19:50:10 +00:00
MorphologyBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
MSKPBench.cpp MSKP support in nanobench 2021-04-30 20:04:08 +00:00
MSKPBench.h MSKP support in nanobench 2021-04-30 20:04:08 +00:00
MutexBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
nanobench.cpp Replace SK_ARRAY_COUNT with std::size() for skia/bench 2022-06-17 00:25:28 +00:00
nanobench.h [graphite] Use finished callbacks in nanobench to manage frames. 2022-03-28 20:14:30 +00:00
ParagraphBench.cpp Fix compilation with "skia_enable_skparagraph = false" 2021-08-31 18:50:20 +00:00
PatchBench.cpp Replace SK_ARRAY_COUNT with std::size() for skia/bench 2022-06-17 00:25:28 +00:00
PathBench.cpp Reduce SkGlyphRunPainter.h includes 2022-05-26 14:32:19 +00:00
PathIterBench.cpp Fix shadowed-variable warning in PathIter bench code. 2021-08-19 13:21:20 +00:00
PathOpsBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
PathTextBench.cpp Fix when a glyph has a path 2021-12-07 14:58:29 +00:00
PDFBench.cpp Replace SK_ARRAY_COUNT with std::size() for skia/bench 2022-06-17 00:25:28 +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 Fix cases of variable shadowing in /bench/. 2021-08-13 17:51:39 +00:00
PicturePlaybackBench.cpp Enable ClangTidy check modernize-make-unique. 2020-08-03 17:53:52 +00:00
PolyUtilsBench.cpp [includes] Enforce IWYU on src/utils 2022-04-28 17:32:20 +00:00
PremulAndUnpremulAlphaOpsBench.cpp Bitmap.asImage() 2020-12-23 15:54:57 +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 Reland "[includes] Remove link between SkImage.h and SkImageEncoder.h" 2022-03-10 04:47:51 +00:00
RecordingBench.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
RectanizerBench.cpp [graphite] More steps towards a shared DrawAtlas class. 2022-04-21 14:20:45 +00:00
RectBench.cpp Replace SK_ARRAY_COUNT with std::size() for skia/bench 2022-06-17 00:25:28 +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 Bitmap should use sampling options 2020-12-12 15:36:21 +00:00
ResultsWriter.h Revert "Don't keep "outResultsFile" open in nanobench" 2021-06-19 22:12:48 +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 Remove SK_MAYBE_UNUSED. 2022-06-16 16:52:53 +00:00
ShaderMaskFilterBench.cpp Reland "remove drawing from ShaderMaskBench ctor" 2021-09-24 17:14:10 +00:00
ShadowBench.cpp Reland "[includes] Remove include link between SkPathRef.h and SkRRect.h" 2022-03-07 15:15:05 +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 Replace SK_ARRAY_COUNT with std::size() for skia/bench 2022-06-17 00:25:28 +00:00
SkGlyphCacheBench.cpp [includes] Prepare for moving SkColorSpace to forward declare 2022-03-31 19:50:10 +00:00
SkGlyphCacheBench.h nanobench: option to execute directory of TextBlobTraces as benches 2019-10-25 13:28:49 +00:00
SKPAnimationBench.cpp Remove uses of SkCanvas::flush 2020-11-20 21:42:38 +00:00
SKPAnimationBench.h Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
SKPBench.cpp [graphite] Make nanobench measure the right amount of work in SKPs 2022-06-08 15:43:00 +00:00
SKPBench.h Collect DMSAA stats 2021-05-01 00:46:22 +00:00
skpbench.json
SkSLBench.cpp Remove automatic name mangling from DSL. 2022-05-18 15:54:42 +00:00
SkSLBench.h Add heap usage of SkSL::Compiler to nanobench output 2020-07-09 00:05:28 +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 Remove SK_MAYBE_UNUSED. 2022-06-16 16:52:53 +00:00
TextBlobBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
TileBench.cpp Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
TileImageFilterBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
TopoSortBench.cpp Move all Ganesh source files into ganesh subdirectory. 2022-04-07 21:06:50 +00:00
TriangulatorBench.cpp Replace SK_ARRAY_COUNT with std::size() for skia/bench 2022-06-17 00:25:28 +00:00
TypefaceBench.cpp Replace SK_ARRAY_COUNT with std::size() for skia/bench 2022-06-17 00:25:28 +00:00
VertBench.cpp If we have no textures, suppress the shader 2021-07-23 23:59:08 +00:00
VertexColorSpaceBench.cpp Label intermediate texture. 2022-06-14 18:13:54 +00:00
WritePixelsBench.cpp [includes] Prepare for moving SkColorSpace to forward declare 2022-03-31 19:50:10 +00:00
WriterBench.cpp Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00