skia2/include
senorblanco 55b6d8be99 Implement a persistent uniqueID-based cache for SkImageFilter.
Add a unique ID to SkImageFilter, and use it as part
of a persistent cache of image-filtered results. This is used for
caching frame-to-frame coherent filters.

We also keep track of which filter subtrees do not reference the
src input, and use a GenID of zero for the src input in that case.
That way, subtrees which are not dependent on the filter input can be
cached independently of it.

This gives approximately a 4X speedup on
letmespellitoutforyou.com/samples/svg/filter_terrain.svg on Z620
and Nexus10. The cache key consists of the uniqueID of the filter, the
clip bounds, the CTM and the genID of the input bitmap.

Since this does not yet handle the case where the input primitives
(and part of the resulting filter tree) are unchanged, we have
to keep around the external cache for that painting case.
When the work to cache unchanging input primitives is done, the
old cache can be removed, and the new UniqueIDCache will be renamed
to Cache.

R=bsalomon@google.com, mtklein@google.com

Author: senorblanco@chromium.org

Review URL: https://codereview.chromium.org/414483003
2014-07-30 11:26:46 -07:00
..
animator
config Add SkBarriers to ports. 2014-05-29 18:24:54 +00:00
core Implement a persistent uniqueID-based cache for SkImageFilter. 2014-07-30 11:26:46 -07:00
device/xps remove all references to legacy Config8888 2014-03-26 13:44:58 +00:00
effects Remove the single-sigma version of SkDropShadowImageFilter::Create(). 2014-07-22 12:49:25 -07:00
gpu Implement a persistent uniqueID-based cache for SkImageFilter. 2014-07-30 11:26:46 -07:00
images Remove SkImageRef and related functionality. 2014-06-04 14:38:48 -04:00
pathops add pathops tight bounds; conform path ops' gyp to unit tests 2014-06-24 07:55:12 -07:00
pdf change gpudevice and pdfdevice to inherit from basedevice 2014-06-27 11:34:19 -07:00
pipe Fixes for piping bitmaps with encoded data. 2013-04-30 02:32:41 +00:00
ports Remove redundant helper function as all clients pass locale 2014-07-28 10:04:55 -04:00
record add SK_API to include/record 2014-04-28 21:04:32 +00:00
svg
utils Change SkCanvasState to use inheritance. 2014-07-15 12:34:26 -07:00
views share dm and command flags 2014-07-22 10:15:35 -07:00
xml