aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkBitmapCache.cpp
Commit message (Collapse)AuthorAge
* Change bitmapcache to not rely on lockpixels.Gravatar Mike Reed2017-04-11
| | | | | | | | | | | | | | | | | | | | The Rec in the cache is the owner of the pixel memory - discardable or - malloc Each external client has a pixelref that just points to those pixels, and whose destructor will notify the rec. This eliminates the dependency on lockPixels in pixelref, freeing us to remove that entirely from pixelref. Bug: skia: Change-Id: If45ed0ae202a1211336626364235215253e8aa7c Reviewed-on: https://skia-review.googlesource.com/10300 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Matt Sarett <msarett@google.com> Reviewed-by: Mike Klein <mtklein@google.com>
* Revert "Revert "simplify api to bitmapcache""Gravatar Mike Reed2017-03-25
| | | | | | | | | | | | Remove (for now) overly agressive assert This reverts commit dd1b4e94c4298213f1f238a8634471086d6749fb. Bug: skia: Change-Id: Ibdcf0b2e92cf108ae710cd180d4fa359f81176d1 Reviewed-on: https://skia-review.googlesource.com/10129 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* Revert "simplify api to bitmapcache"Gravatar Florin Malita2017-03-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 9f4b0ae91e1875831cc11f0629b5db998ad85438. Reason for revert: Nanobench asserts. ../../../src/core/SkBitmapCache.cpp:81: fatal error: "assert(scaledWidth != image->width() || scaledHeight != image->height())" Aborted Command exited with code 134 step returned non-zero exit code: 134 https://chromium-swarm.appspot.com/task?id=351b1d10c7936310&refresh=10 Original change's description: > simplify api to bitmapcache > > Force all Find callers to make a bitmpacachedesc, which now > has more rigid validation. > > Goal is to ensure we never make two desc (which turn into keys) > that look different but represent the same image/transformation. > > BUG=skia: > > Change-Id: I8571837ee4754a69acc99e949bee9a465fa25f2b > Reviewed-on: https://skia-review.googlesource.com/10114 > Commit-Queue: Mike Reed <reed@google.com> > Reviewed-by: Brian Osman <brianosman@google.com> > TBR=brianosman@google.com,fmalita@chromium.org,reed@google.com,reviews@skia.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Change-Id: I21b3c8a5bae409ba740cfc28b352c3b970dcf5af Reviewed-on: https://skia-review.googlesource.com/10171 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Florin Malita <fmalita@chromium.org>
* simplify api to bitmapcacheGravatar Mike Reed2017-03-24
| | | | | | | | | | | | | | | Force all Find callers to make a bitmpacachedesc, which now has more rigid validation. Goal is to ensure we never make two desc (which turn into keys) that look different but represent the same image/transformation. BUG=skia: Change-Id: I8571837ee4754a69acc99e949bee9a465fa25f2b Reviewed-on: https://skia-review.googlesource.com/10114 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
* remove dead code in bitmapcacheGravatar Mike Reed2017-03-23
| | | | | | | | | BUG=skia: Change-Id: If17511179851ac192758f9d96092ff6dd7c60888 Reviewed-on: https://skia-review.googlesource.com/10055 Reviewed-by: Florin Malita <fmalita@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
* Mark overridden destructors with 'override' and remove 'virtual'Gravatar Brian Salomon2017-03-22
| | | | | | | | | This silences a new warning in clang 5.0 Change-Id: Ieb5b75a6ffed60107c3fd16075d2ecfd515b55e8 Reviewed-on: https://skia-review.googlesource.com/10006 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Rename SkSourceGammaTreatment to SkDestinationSurfaceColorModeGravatar Brian Osman2016-11-09
| | | | | | | | | | | | | | | This is much more explicit about what that type represents (are we in legacy mode or not), which also makes it suitable for other (upcoming) usage. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4529 Change-Id: Iacb397c34e7765f1ca86c0195bc622b2be4d9acf Reviewed-on: https://skia-review.googlesource.com/4529 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* minor simplification: use SkBitmapCacheDescGravatar Mike Reed2016-11-08
| | | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4523 Change-Id: I2bbcbc8a9839e74195ff147cab2cd1e6ab34b4c5 Reviewed-on: https://skia-review.googlesource.com/4523 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Mike Reed <reed@google.com>
* respect srgb gamma when building mipsGravatar reed2016-06-10
| | | | | | | | | | | Proposed policy: - If the target is *legacy* (e.g. L32/PMColor) ignore gamma - If the target is S32/F16 respect gamma BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2029373004 Review-Url: https://codereview.chromium.org/2029373004
* create SkBitmapProvider to abstract images and bitmapsGravatar reed2015-09-15
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1340223003
* be sure to use cached bitmap when we need to upload something to make a textureGravatar reed2015-09-14
| | | | | | BUG=skia:4334 Review URL: https://codereview.chromium.org/1338373002
* simplify bitmap scaler and cacheGravatar reed2015-08-31
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/1320513005
* Style Change: NULL->nullptrGravatar halcanary2015-08-27
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316233002 Review URL: https://codereview.chromium.org/1316233002
* Style Change: SkNEW->new; SkDELETE->deleteGravatar halcanary2015-08-26
| | | | | | DOCS_PREVIEW= https://skia.org/?cl=1316123003 Review URL: https://codereview.chromium.org/1316123003
* private iterator to visit all resource cache entriesGravatar reed2015-08-19
| | | | | | | BUG=skia: TBR= Review URL: https://codereview.chromium.org/1271033002
* cache private readback for gpu-imagesGravatar reed2015-08-04
| | | | | | | | | | | | Does not try to cache calls to readPixels at the moment: - not triggered by drawing - not clear if we want to perform any pixel transformations (that readPixels allows) on the GPU or CPU Can consider that another time. BUG=513695 Review URL: https://codereview.chromium.org/1262923003
* C++11 override should now be supported by all of {bots,Chrome,Android,Mozilla}Gravatar mtklein2015-03-25
| | | | | | | | | NOPRESUBMIT=true BUG=skia: DOCS_PREVIEW= https://skia.org/?cl=1037793002 Review URL: https://codereview.chromium.org/1037793002
* only notify bitmaps that have been added to the cacheGravatar reed2015-02-25
| | | | | | | | | | | | old code: - calls=2677 hit-rate=3.51139% new code: - calls=94 hit-rate=97.8723% BUG=skia: Review URL: https://codereview.chromium.org/960563002
* Notify resource caches when pixelref genID goes staleGravatar reed2015-02-24
| | | | | | | | patch from issue 954443002 at patchset 40001 (http://crrev.com/954443002#ps40001) BUG=skia: Review URL: https://codereview.chromium.org/950363002
* Revert of notify resource caches when pixelref genID goes stale (patchset #4 ↵Gravatar mtklein2015-02-19
| | | | | | | | | | | | | | | | | | | | | | | | id:60001 of https://codereview.chromium.org/825263005/) Reason for revert: Crazy failures. http://build.chromium.org/p/client.skia/builders/Test-Mac10.8-MacMini4.1-GeForce320M-x86_64-Debug/builds/1428/steps/dm/logs/stdio Original issue's description: > notify resource caches when pixelref genID goes stale > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/4675819b9dbb3ad71ec851776e5de26d342f29fe TBR=bsalomon@google.com,reed@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/936423002
* notify resource caches when pixelref genID goes staleGravatar reed2015-02-19
| | | | | | BUG=skia: Review URL: https://codereview.chromium.org/825263005
* Fix up all the easy virtual ... SK_OVERRIDE cases.Gravatar mtklein2015-01-09
| | | | | | | | | | | | This fixes every case where virtual and SK_OVERRIDE were on the same line, which should be the bulk of cases. We'll have to manually clean up the rest over time unless I level up in regexes. for f in (find . -type f); perl -p -i -e 's/virtual (.*)SK_OVERRIDE/\1SK_OVERRIDE/g' $f; end BUG=skia: Review URL: https://codereview.chromium.org/806653007
* SkResourceCache::Key namespace support.Gravatar fmalita2014-10-22
| | | | | | | | | | | | Add a unique-per-subclass namespace tag to make Keys from different domains comparable. Also drop the SkPictureShader cache and convert to using the global resource cache instead. R=reed@google.com,mtklein@google.com,robertphillips@google.com Review URL: https://codereview.chromium.org/668223002
* Add SkCachedData and use it for SkMipMapGravatar reed2014-10-08
| | | | | | | | This reverts commit 37c5a815d8ea33247968212ef4cc83394ceee1bc. TBR=mtklein Review URL: https://codereview.chromium.org/635333002
* Speculative revert to diagnose crash in chrome. Revert "Add SkCachedData and ↵Gravatar reed2014-10-03
| | | | | | | | | | | use it for SkMipMap" This reverts commit 92561a0b99ad6c08ab7a11dd1872f028199392e9. crasher in question: https://code.google.com/p/chromium/issues/detail?id=420178 Review URL: https://codereview.chromium.org/617613003
* Add SkCachedData and use it for SkMipMapGravatar reed2014-10-02
| | | | Review URL: https://codereview.chromium.org/592843003
* allow SkBitmapCache to operate on a local instance, for testabilityGravatar reed2014-09-16
| | | | | | | | | BUG=skia: R=mtklein@google.com, danakj@chromium.org, piotaixr@chromium.org, junov@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/576763002
* Change SkResourceCache to take a Visitor inside its find().Gravatar reed2014-09-15
| | | | | | | | | | | This reverts commit 595aa05efcb504e85358b8d328ac4a9fa1c46e2e. BUG=skia: R=mtklein@google.com, danakj@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/569353002
* Revert of Change SkResourceCache to take a Visitor inside its find(). ↵Gravatar reed2014-09-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #2 id:20001 of https://codereview.chromium.org/567393002/) Reason for revert: crashes on android bots, haven't diagnosed yet Original issue's description: > Change SkResourceCache to take a Visitor inside its find(). > > This simplifies the API/contract, in that there are not any exposed > lock/unlock scopes. > > > patch from issue 572573002 > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/dee6a8e67db39fcbde2b3bb09be1d088ebb9db8a R=mtklein@google.com, danakj@chromium.org TBR=danakj@chromium.org, mtklein@google.com NOTREECHECKS=true NOTRY=true BUG=skia: Author: reed@google.com Review URL: https://codereview.chromium.org/569303002
* Change SkResourceCache to take a Visitor inside its find().Gravatar reed2014-09-15
| | | | | | | | | | | | | | This simplifies the API/contract, in that there are not any exposed lock/unlock scopes. patch from issue 572573002 BUG=skia: R=mtklein@google.com, danakj@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/567393002
* Make SkBitmapCache remove invalid bitmaps from the SkResourceCache.Gravatar danakj2014-09-11
| | | | | | | | | | | | | | | | | | | | | | This adds SkResourceCache::Remove() which will remove a resource from its cache. The resource is required to be unlocked at the time Remove() is called. Then SkBitmapCache::Find() makes use of this to Remove() bitmaps from the cache whose pixels have been evicted. This allows the bitmap to be re-added to the cache with pixels again. After this change, background a tab (and discarding all the bitmaps' contents) no longer disables image caching for those discarded images once the tab is visible again. BUG=skia:2926 NOTRY=true R=reed@android.com, tomhudson@google.com, reed@google.com Author: danakj@chromium.org Review URL: https://codereview.chromium.org/561953002
* Remove SkBitmapCache::Find/Add(_,width,height,_)Gravatar piotaixr2014-09-03
| | | | | | | | | | | in favor of the versions having a SkIRect as input parameter BUG=skia:2909 R=reed@google.com, junov@chromium.org Author: piotaixr@chromium.org Review URL: https://codereview.chromium.org/539643002
* The key for SkBitmapCache can now be genID+SkIRectGravatar piotaixr2014-09-03
| | | | | | | | | BUG=skia:2894 R=junov@chromium.org, reed@google.com Author: piotaixr@chromium.org Review URL: https://codereview.chromium.org/518983002
* harden requirements on SkBitmapCacheGravatar reed2014-08-29
| | | | | | | | | BUG=skia: R=humper@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/521433002
* rename ScaledImageCache to ResourceCacheGravatar reed2014-08-28
| | | | | | | | | BUG=skia: R=bsalomon@google.com, mtklein@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/511283002
* retool image cache to be generic cache, allowing the client to subclass ↵Gravatar reed2014-08-26
| | | | | | | | | | | | | | | "Rec", so they can provide a custom Key and arbitrary Value. Follow-on CLs - rename ScaledimageCache to something like GeneralCache - explore if we can use call-backs or some mechanism to completely hide "lock/unlock", by forcing all clients to support "copying" their value out of the cache as the result of a Find. R=mtklein@google.com, senorblanco@google.com, bsalomon@google.com, qiankun.miao@intel.com, senorblanco@chromium.org Author: reed@google.com Review URL: https://codereview.chromium.org/507483002
* Clean up useless comments in SkScaledImageCache.hGravatar qiankun.miao2014-08-25
| | | | | | | | | BUG=skia: R=reed@google.com Author: qiankun.miao@intel.com Review URL: https://codereview.chromium.org/499203002
* expose generalized imagecache keyGravatar reed2014-08-21
BUG=skia: R=mtklein@google.com, halcanary@google.com, qiankun.miao@intel.com Author: reed@google.com Review URL: https://codereview.chromium.org/483493003