Go to file
Robert Phillips ad8a43f769 DeferredDisplayList API proposal
Chrome would like to perform cpu-side preprocessing for gpu draws in parallel. 
They do not want to go through a picture (since they have their own display list format).


The general idea is that we add a new SkDeferredDisplayListRecorder class to
perform all of Ganesh's cpu-side preprocessing ahead of time and in parallel.

The SkDDLRecorder operates like SkPictureRecorder. The user can get an SkCanvas
from the SkDDLRecorder and feed it draw operations. Once finished, the user
calls 'detach' to get an SkDeferredDisplayList. All the work up to and 
including the 'detach' call can be done in parallel and will not touch
the GPU. To actually get pixels the client must call SkSurface::draw(SkDDL)
on an SkSurface that is "compatible" with the surface characterization
initially given to the SkDDLMaker.

The surface characterization contains the minimum amount of information Ganesh needs 
to know about the ultimate destination in order to perform its cpu-side work
(i.e., caps, width, height, config).



Change-Id: I75faa483ab5a6b779c8de56ea56b9d90b990f43a
Reviewed-on: https://skia-review.googlesource.com/30140
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
2017-08-30 19:25:47 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench Threaded generation of software paths 2017-08-30 15:27:42 +00:00
bin add a Win/Clang build bot 2017-07-31 19:53:51 +00:00
debugger Revert "Revert "Remove GrBackendRenderTargetDesc in favor of GrBackendRenderTarget."" 2017-08-30 17:59:46 +00:00
dm DeferredDisplayList API proposal 2017-08-30 19:25:47 +00:00
docs fix param return descriptions 2017-08-30 13:16:12 +00:00
example Add iOS support for SkiaSDLExample. 2017-08-30 18:56:46 +00:00
experimental Revert "Revert "Remove GrBackendRenderTargetDesc in favor of GrBackendRenderTarget."" 2017-08-30 17:59:46 +00:00
fuzz Fuzz: use SkNullWStream 2017-08-29 17:41:36 +00:00
gm Rename methods and enum on SkClipStack::Element to indicate "device space" 2017-08-30 15:58:12 +00:00
gn DeferredDisplayList API proposal 2017-08-30 19:25:47 +00:00
include DeferredDisplayList API proposal 2017-08-30 19:25:47 +00:00
infra Threaded generation of software paths 2017-08-30 15:27:42 +00:00
platform_tools Enable ios on Raspberry Pi 2017-04-25 16:56:41 +00:00
resources Move lang to list in Android font manager. 2017-08-14 19:29:05 +00:00
samplecode simplify path validate 2017-08-29 18:37:11 +00:00
site Revert "Revert "Remove GrBackendRenderTargetDesc in favor of GrBackendRenderTarget."" 2017-08-30 17:59:46 +00:00
src DeferredDisplayList API proposal 2017-08-30 19:25:47 +00:00
tests Rename methods and enum on SkClipStack::Element to indicate "device space" 2017-08-30 15:58:12 +00:00
third_party Add iOS support for SkiaSDLExample. 2017-08-30 18:56:46 +00:00
tools DeferredDisplayList API proposal 2017-08-30 19:25:47 +00:00
.clang-format Mark flatennable macros as block beginning/ending in .clang-format 2017-01-09 15:31:36 +00:00
.gitignore clang on windows support 2017-07-31 18:39:23 +00:00
.gn Basic standalone GN configs. 2016-07-21 12:25:45 -07:00
AUTHORS Added support for building for tvOS 2017-03-14 22:55:04 +00:00
BUILD.gn Add iOS support for SkiaSDLExample. 2017-08-30 18:56:46 +00:00
codereview.settings Make uploading to Gerrit the default for Skia 2016-11-09 19:07:56 +00:00
CONTRIBUTING Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
CQ_COMMITTERS Moved committer list to chrome-infra-auth and deleted it from the repo 2015-09-02 13:37:54 -07:00
DEPS Roll skia/third_party/externals/angle2/ 7c2e6a96a..e8ef2bc4b (1 commit) 2017-08-30 10:27:12 +00:00
Doxyfile Make the housekeeper upload doxygen to a newer bucket 2016-10-04 13:23:57 -07:00
LICENSE BUG=skia:5602 2016-09-02 11:19:34 -07:00
PRESUBMIT.py Update CQ extra trybots after switch to Debian 2017-06-29 19:35:40 +00:00
public.bzl Revert "Revert "8-bit jumper on armv8"" 2017-08-29 17:04:47 +00:00
README Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
README.chromium Update README.chromium. 2015-06-11 13:19:24 -07:00
whitespace.txt Revert "Revert "Make GrAtlasTextOp a non-legacy GrMeshDrawOp"" 2017-07-19 12:17:34 +00:00

Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

See full details, and build instructions, at https://skia.org.