skia2/tools
Brian Salomon ce240cc6fd 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>
2019-10-02 19:20:08 +00:00
..
android
calmbench Remove gclient sync from calmbench 2018-08-24 19:18:56 +00:00
copyright Fix pylint check in presubmit 2018-06-22 14:38:28 +00:00
debugger Rename GrColorSpaceInfo -> GrColorInfo 2019-09-30 21:53:24 +00:00
doxygen Add 'modules' to doxygen generation. 2019-06-03 13:33:56 +00:00
fiddle Pass color types when creating texture with initial data. 2019-09-17 13:38:23 +00:00
flags Fix precompiling shaders on GLES / Android 2019-09-16 17:13:23 +00:00
fm SkSurface asynchronous read APIs allow client to extend pixel lifetime 2019-10-02 19:20:08 +00:00
fonts Add SkUNREACHABLE to definition of SK_ABORT. 2019-08-09 20:43:39 +00:00
gdb Update gdb bitmap viewer. 2018-06-20 21:24:27 +00:00
gpu Use GL_QCOM_TILED_RENDERING to explicitly discard stencil 2019-10-02 16:36:08 +00:00
infra [infra] Fixes for chrome_release_branch 2019-04-18 15:37:07 +00:00
lottie-web-perf Add blocklist command line parameter 2019-09-06 21:07:20 +00:00
lottiecap [LottieWeb] Fix frames 2018-08-29 17:58:42 +00:00
lua rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
malisc Extend --writeShaders to output SPIR-V 2019-04-15 14:04:18 +00:00
mdbviz Reland "Merge GrOpList and GrRTOpList and rename to GrOpsTask." 2019-08-22 20:52:09 +00:00
rebaseline
sk_app Set up prototype interface for MakeFromCAMetalLayer 2019-09-19 17:37:00 +00:00
skdiff Move SkTSearch.h into src. 2019-05-15 14:15:07 +00:00
skiaserve Rename GrColorSpaceInfo -> GrColorInfo 2019-09-30 21:53:24 +00:00
skottie-wasm-perf Add blocklist command line parameter 2019-09-06 21:07:20 +00:00
skp Fix spreadsheets page set for RecreateSKPs bot 2019-08-30 13:43:11 +00:00
skpbench Assert there are some sources when running skpbench 2019-09-11 20:20:33 +00:00
skqp SkQP: mark readpixels as a bad GM 2019-10-02 18:59:07 +00:00
skui Hook up pinch-zoom and swipe gestures. 2019-09-10 13:34:47 +00:00
svg
timer Adapt GrRectBlur for cases with rect W/H less than six sigma. 2019-09-10 14:39:07 +00:00
trace Add some precision back to timestamps when using --trace 2019-06-17 22:08:06 +00:00
viewer When precompiling SkSL, avoid the need to re-link 2019-09-24 20:32:32 +00:00
__init__.py
add_codereview_message.py
AndroidSkDebugToStdOut.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
AutoreleasePool.h Reland "Added AutoreleasePool for managing pool memory in testing apps." 2019-05-31 15:40:01 +00:00
AutoreleasePool.mm Reland "Added AutoreleasePool for managing pool memory in testing apps." 2019-05-31 15:40:01 +00:00
BigPathBench.inc
build_command_buffer.py
BUILD_simulator.py
build_workaround_header.py Add CheckGeneratedFiles recipe check for gpu workarounds 2018-04-25 19:26:27 +00:00
check-headers-self-sufficient header self-sufficiency and idempotency 2019-06-26 19:12:43 +00:00
chrome_fuzz.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
chrome_release_branch [infra] Add chrome_release_branch script 2019-04-16 19:46:10 +00:00
chrome_release_branch.bat [infra] Add chrome_release_branch script 2019-04-16 19:46:10 +00:00
chrome_release_branch.py [infra] Fixes for chrome_release_branch 2019-06-04 17:41:50 +00:00
clang-tidy.sh run clang-tidy on headers too 2018-12-12 15:26:22 +00:00
compare_codereview.py
cpu_modules.cpp Particle cleanup: split SkParticleBinding out of SkParticleEffect 2019-08-30 15:32:38 +00:00
CrashHandler.cpp Move SkLeanWindows.h to src. 2019-05-21 13:48:00 +00:00
CrashHandler.h
DDLPromiseImageHelper.cpp Make SkPixmap-variant of createBackendTexture public 2019-09-30 18:06:14 +00:00
DDLPromiseImageHelper.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
DDLTileHelper.cpp Reland "Merge GrOpList and GrRTOpList and rename to GrOpsTask." 2019-08-22 20:52:09 +00:00
DDLTileHelper.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
doxygen_footer.txt
dump_record.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
DumpRecord.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
DumpRecord.h
embed_resources.py rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
find_run_binary.py
fix_pythonpath.py
force_older_glibc_math.h roll cast toolchain 2019-08-15 20:02:18 +00:00
gcov_shim
get_current_monitor_profile.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
get_images_from_skps.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
git-sync-deps tools/git-sync-deps: fix 2018-06-20 14:38:34 +00:00
HashAndEncode.cpp New proposed syntax for SkColorTypes 2019-09-19 20:42:55 +00:00
HashAndEncode.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
hello-opencl.cpp run all available OpenCL devices 2019-02-11 21:29:33 +00:00
image_diff_metric.cpp pdf-comparison and image_diff_metric tools 2019-09-19 21:18:28 +00:00
imgcvt.cpp Move skcms.h to include/third_party/skcms 2019-04-29 15:02:45 +00:00
install_dependencies.sh Add harfbuzz to tools/install_dependencies.sh 2019-05-03 23:52:09 +00:00
ios_utils.h
ios_utils.m rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
jsondiff.py Fix pylint check in presubmit 2018-06-22 14:38:28 +00:00
list_gms.cpp gm: GMFactory returns a unique_ptr<> 2019-08-12 19:02:40 +00:00
list_gpu_unit_tests.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
LsanSuppressions.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
merge_static_libs.py
milestone.py
mirror-dev.sh
misc_utils.py
OverwriteLine.h eliminate SK_BUILD_FOR_WIN32 2018-01-26 19:52:04 +00:00
parse_llvm_coverage.py
pathops_sorter.htm fix pathops bug 8380 2018-12-21 19:15:54 +00:00
pathops_visualizer.htm fix pathops bug 8380 2018-12-21 19:15:54 +00:00
ProcStats.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
ProcStats.h
public_headers_warnings_check.cpp GN: add public headers warnings check. 2016-11-16 19:27:29 +00:00
random_parse_path.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
random_parse_path.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
reformat-json.py
Registry.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
remote_demo.cpp Part 1/2 to remove SkTextBlobCacheDiffCanvas::Settings 2019-08-16 15:27:35 +00:00
ResourceFactory.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
Resources.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
Resources.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
retrieve_from_googlesource.py
rewrite_includes.py Roll skia/third_party/skcms d931999c3afd..6655095842ec (1 commits) 2019-08-20 20:57:15 +00:00
sanitize_source_files.py
skhello.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkMetaData.cpp SkMetaData: drop unused pointer ownership 2019-08-12 18:26:00 +00:00
SkMetaData.h SkMetaData: drop unused pointer ownership 2019-08-12 18:26:00 +00:00
skottie2movie.cpp support gpu for skottie2movie 2019-09-24 16:42:50 +00:00
skp_parser.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
skpinfo.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
SkSharingProc.cpp Reland "Deserialize MultiPictureDocument based SKP files (with image sharing proc) in wasm debugger." 2019-06-21 15:49:21 +00:00
SkSharingProc.h Reland "Deserialize MultiPictureDocument based SKP files (with image sharing proc) in wasm debugger." 2019-06-21 15:49:21 +00:00
SkVMBuilders.cpp small refactors 2019-07-30 15:43:13 +00:00
SkVMBuilders.h first VEX ymm vector ops 2019-06-20 18:20:00 +00:00
Stats.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
test_all.py
test_pdfs.py
ToolUtils.cpp New proposed syntax for SkColorTypes 2019-09-19 20:42:55 +00:00
ToolUtils.h Update benchmarks to use new filter factories 2019-08-05 16:41:25 +00:00
UrlDataManager.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
UrlDataManager.h rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
using_skia_and_harfbuzz.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
valgrind.supp Rename GrPixelInfo to GrImageInfo. 2019-09-30 17:10:18 +00:00
whitelist_typefaces.cpp rewrite includes to not need so much -Ifoo 2019-04-24 16:27:11 +00:00
win_dbghelp.cpp Move SkTSearch.h into src. 2019-05-15 14:15:07 +00:00
win_dbghelp.h eliminate SK_BUILD_FOR_WIN32 2018-01-26 19:52:04 +00:00
win_lcid.cpp Move SkTSearch.h into src. 2019-05-15 14:15:07 +00:00
xsan.blacklist turn on alignment sanitizer 2018-08-09 21:13:15 +00:00