skia2/bench
Brian Salomon 9241a6d394 Reland "Reland "SkSurface asynchronous read APIs allow client to extend pixel lifetime""
This is a reland of 6fc04f88a8

Original change's description:
> Reland "SkSurface asynchronous read APIs allow client to extend pixel lifetime"
> 
> This is a reland of ce240cc6fd
> 
> Original change's description:
> > SkSurface asynchronous read APIs allow client to extend pixel lifetime
> > 
> > Previously the pixel data passed to the client was only valid during
> > the client's callback. This meant if the client wanted to defer
> > processing of the data a copy was necessary.
> > 
> > Now we pass an object to the callback and the pixel lifetime is tied
> > to the lifetime of that object.
> > 
> > The object may be holding a GPU transfer buffer mapped. We don't assume
> > that the object will be released on the direct GrContext thread. So
> > when the object is destroyed it posts a message to a new type,
> > GrClientMappedBufferManager, hanging off the direct context. The direct
> > context will periodically check for messages and unmap and then unref
> > buffers so that they can be reused. Currently this is done in
> > GrContext::performDeferredCleanup() and GrDrawingManager::flush().
> > 
> > The old API is kept around for backwards compatibility but it is
> > reimplemented as a bridge on top of the new mechanism.
> > 
> > Also a utility function to SkImageInfo is added to directly make a new
> > info with a specified dimensions rather than passing the width and
> > height separately to makeWH().
> > 
> > Bug: chromium:973403
> > Bug: skia:8962
> > 
> > Change-Id: Id5cf04235376170142a48e90d3ecd13fd021a2a6
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245457
> > Reviewed-by: Brian Osman <brianosman@google.com>
> > Commit-Queue: Brian Salomon <bsalomon@google.com>
> 
> Bug: chromium:973403, skia:8962
> Change-Id: I5cecd36276c8b6dc942cf549c7095db2df88530c
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/245678
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

Bug: chromium:973403, skia:8962
Change-Id: Ie584c1c3ef8021c976f71b708e53871c693cc450
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/246057
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
2019-10-03 19:14:22 +00:00
..
AAClipBench.cpp Revert "add guard to switch to SkPathTypes" 2019-09-14 19:13:44 +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 "add guard to switch to SkPathTypes" 2019-09-14 19:13:44 +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 Update benchmarks to use new filter factories 2019-08-05 16:41:25 +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 rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
GeometryBench.cpp Revert "add guard to switch to SkPathTypes" 2019-09-14 19:13:44 +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 rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +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 rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +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 rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +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 Clean up some gm factory use. 2019-08-13 15:57:37 +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 "add guard to switch to SkPathTypes" 2019-09-14 19:13:44 +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 rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +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 Bulkify SkGlyphCacheBench 2019-07-03 19:45:54 +00:00
SKPAnimationBench.cpp Remove WallTimer class. 2019-07-15 16:06:11 +00:00
SKPAnimationBench.h re-run tools/rewrite_includes.py 2019-07-25 15:40:33 +00:00
SKPBench.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +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 Interpreter: Lots of minor cleanup/refactoring 2019-09-27 15:02:16 +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 rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
VertBench.cpp improve verts bench 2019-08-21 15:04:37 +00:00
VertexColorSpaceBench.cpp More bounds fixes for StrokeRect and DefaultPath when using MSAA for non-aa. 2019-10-01 19:49:15 +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