Go to file
Florin Malita b00a36050a Purge cached SkPictureShader entries on shader deletion
We're currently adding picture shader cache entries to the resource
cache, but we don't ever purge.  To avoid exhausting the budget, add
logic to associate cached entries with their owning picture shader, and
purge when the shader is deleted.

-- Side note --

The current cache key is

 K(pictureID, ...)

so technically the cache entries are associated with the picture, not the
shader.  One could resonably argue we should only purge when the
*picture* is deleted.  Unfortunately, this doesn't work: the cache entries
contain indirect refs to the picture (SkImageShader -> SkImage_Generated
-> SkPictureImageGenerator -> SkPicture), so the picture is always kept
alive.

Associating the cache entries with the shader itself seems like a
reasonable alternative, even if we give up some cache persistence in the
process.

Change-Id: Ia115dbb5ae627e5ee171da7c4430fecfd42f4292
Reviewed-on: https://skia-review.googlesource.com/23380
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2017-07-14 14:19:34 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bench remove references to kIndex_8_SkColorType from our tools/tests 2017-07-12 20:25:44 +00:00
bin bin/fetch-clang-format 2017-03-08 16:43:49 +00:00
debugger Retract GrTexture*.h & GrRenderTarget*.h from other headers 2017-06-13 17:21:41 +00:00
dm Add metal config to tools 2017-07-14 13:57:34 +00:00
example Update SkiaSDLExample to latest Ganesh interfaces. 2017-07-11 16:34:21 +00:00
experimental experimental/documentation/gerrit.md: fix error 2017-07-04 17:23:04 +00:00
fuzz Reland "Remove support for decoding to kIndex_8" 2017-07-11 18:00:31 +00:00
gm New zero length path GM 2017-07-13 17:17:02 +00:00
gn converted CircleEffect to SkSL 2017-07-14 01:16:03 +00:00
include Delete unread SkPicture mbox 2017-07-13 22:31:52 +00:00
infra Publish uploaded RecreateSKPs CL 2017-07-14 12:41:34 +00:00
platform_tools Enable ios on Raspberry Pi 2017-04-25 16:56:41 +00:00
resources Make SkCodec more flexible about its required frame 2017-06-07 20:15:17 +00:00
samplecode Move expensive initialization to onOnceBeforeDraw 2017-07-12 20:30:50 +00:00
site SkPDF: simplify drawImage/Bitmap/Sprite code. 2017-07-12 20:41:41 +00:00
src Purge cached SkPictureShader entries on shader deletion 2017-07-14 14:19:34 +00:00
tests Purge cached SkPictureShader entries on shader deletion 2017-07-14 14:19:34 +00:00
third_party Reland "Remove support for decoding to kIndex_8" 2017-07-11 18:00:31 +00:00
tools Add metal config to tools 2017-07-14 13:57:34 +00:00
.clang-format Mark flatennable macros as block beginning/ending in .clang-format 2017-01-09 15:31:36 +00:00
.gitignore [infra] Move Android and GPU maps into gen_tasks.go. 2017-06-14 13:17:43 +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 support for creating a GrContext backed by Metal. 2017-07-13 21:29:33 +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 Update SkiaSDLExample to latest Ganesh interfaces. 2017-07-11 16:34:21 +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 add guard for api change in google3 2017-07-13 13:24:21 +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 Marker for Win AMD driver update. 2017-05-22 17:21:14 +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.