aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrResourceCache.h
Commit message (Collapse)AuthorAge
* GrResourceCache2 manages scratch texture.Gravatar bsalomon2014-10-08
| | | | | | BUG=skia:2889 Review URL: https://codereview.chromium.org/608883003
* Revert "GrResourceCache2 manages scratch texture."Gravatar Brian Salomon2014-10-07
| | | | This reverts commit d14e1a27643125bfef37fa0ed314b64c1fae22b7.
* GrResourceCache2 manages scratch texture.Gravatar bsalomon2014-10-07
| | | | | | BUG=skia:2889 Review URL: https://codereview.chromium.org/608883003
* Revert of GrResourceCache2 manages scratch texture. (patchset #14 id:260001 ↵Gravatar robertphillips2014-09-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | of https://codereview.chromium.org/608883003/) Reason for revert: Turning bots red: Nanobench seems to be uniformly failing on Android (http://108.170.220.21:10117/builders/Perf-Android-Venue8-PowerVR-x86-Release/builds/99/steps/RunNanobench/logs/stdio) Ubuntu GTX660 32bit is failing in both Debug and Release on GM generation (it appears to be out of memory) (http://108.170.220.120:10117/builders/Test-Ubuntu12-ShuttleA-GTX660-x86-Debug/builds/2457/steps/GenerateGMs/logs/stdio) Original issue's description: > GrResourceCache2 manages scratch texture. > > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/3d398c876440deaab39bbf2a9b881c337e6dc8d4 R=bsalomon@google.com TBR=bsalomon@google.com NOTREECHECKS=true NOTRY=true BUG=skia: Author: robertphillips@google.com Review URL: https://codereview.chromium.org/611383003
* GrResourceCache2 manages scratch texture.Gravatar bsalomon2014-09-30
| | | | | | | | | BUG=skia: R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/608883003
* "NULL !=" = NULLGravatar bsalomon2014-09-05
| | | | | | | | R=reed@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/544233002
* Make textures register with GrResourceCache2 as scratch.Gravatar bsalomon2014-08-28
| | | | | | | | R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/510053003
* Fix leak of GrResourceCacheEntryGravatar bsalomon2014-08-22
| | | | | | | | | R=robertphillips@google.com TBR=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/502543002
* Rename GrGpuObject to GrGpuResourceGravatar bsalomon2014-07-25
| | | | | | | | R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/418143004
* Merge GrGpuObject and GrCacheable.Gravatar bsalomon2014-07-25
| | | | | | | | | | We want to create a new base class for "meta" gr resources as part of the GrResourceCache rewrite and this is an iterim step towards that goal.s R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/414013005
* Move GrTMultiMap to src/core and rename itGravatar robertphillips2014-07-21
| | | | | | | | R=bsalomon@google.com Author: robertphillips@google.com Review URL: https://codereview.chromium.org/401343002
* Adds a mechanism for GrCacheable objects to notify the resource cacheGravatar commit-bot@chromium.org2014-05-05
| | | | | | | | | | | | | | | | | when their size has changed. GrResourceCacheEntry now holds a reference to the cache, and a cached value of the resource's most recent size. Also utilizes this new functionality for mipmaps, and adds a test for changing resource sizes. R=bsalomon@google.com, robertphillips@google.com Author: cdalton@nvidia.com Review URL: https://codereview.chromium.org/257093002 git-svn-id: http://skia.googlecode.com/svn/trunk@14576 2bbb7eff-a529-9590-31e7-b0007b416f81
* Split GrResource into GrCacheable/GrGpuObjectGravatar commit-bot@chromium.org2014-05-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this change, an object needed to inherit from GrResource (and thus be a GPU object) in order to live in the GrResourceCache. That was a problem for caching items that weren't GPU objects themselves, but owned GPU objects. This change splits GrResource into two classes: 1. GrCacheable: The base class for objects that can live in the GrResourceCache. 2. GrGpuObject, which inherits from GrCacheable: The base class for objects that get tracked by GrGpu. This change is purely a refactor; there is no change in functionality. Change-Id: I3e8daeb1f123041f414aa306c1366e959ae9e39e BUG=skia: R=bsalomon@google.com Author: cdalton@nvidia.com Review URL: https://codereview.chromium.org/251013002 git-svn-id: http://skia.googlecode.com/svn/trunk@14553 2bbb7eff-a529-9590-31e7-b0007b416f81
* SkTDynamicHash: pick up GetKey(), Hash() from T by default.Gravatar commit-bot@chromium.org2014-04-02
| | | | | | | | | | | | | | | | | | This also has a somewhat obscure technical benefit: it removes the requirement that GetKey() and Hash() must be functions with external linkage, which is required when passing a function pointer to a template. A future CL that's run into this problem and the obvious simplification are about 50/50 why I'm sending this CL. BUG=skia: DIFFBASE= https://codereview.chromium.org/222343002/ R=bsalomon@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/222473002 git-svn-id: http://skia.googlecode.com/svn/trunk@14028 2bbb7eff-a529-9590-31e7-b0007b416f81
* SkTDynamicHash: remove need for Equals(const T&, const Key&) param.Gravatar commit-bot@chromium.org2014-04-02
| | | | | | | | | | | | | | All implementations are relying on bool operator==(const Key&, const Key&) anyway, which makes total sense, so just make that required. BUG=skia: R=bsalomon@google.com, mtklein@google.com Author: mtklein@chromium.org Review URL: https://codereview.chromium.org/222343002 git-svn-id: http://skia.googlecode.com/svn/trunk@14027 2bbb7eff-a529-9590-31e7-b0007b416f81
* Adding a new SkSurface factory for generating surfaces from the scratch ↵Gravatar commit-bot@chromium.org2014-03-19
| | | | | | | | | | | | | | texture pool. TEST=Surface unit test BUG=crbug.com/351798 R=bsalomon@google.com, robertphillips@google.com, reed@google.com Author: junov@chromium.org Review URL: https://codereview.chromium.org/201153023 git-svn-id: http://skia.googlecode.com/svn/trunk@13864 2bbb7eff-a529-9590-31e7-b0007b416f81
* Speed up GrResourceCache add and lookup by using TDynamicHashGravatar commit-bot@chromium.org2014-01-17
| | | | | | | | | | | | | | | Speed up GrResourceCache add and lookup by using TDynamicHash instead of GrTHashTable. GrTHashTable spends most of its time memmoving the array elements while sorting after an add. Lookup is not particularly fast either. R=mtklein@google.com, bsalomon@google.com, reed@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/91453002 git-svn-id: http://skia.googlecode.com/svn/trunk@13122 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reverting r12427Gravatar rmistry@google.com2013-12-02
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@12428 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-12-02
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@12427 2bbb7eff-a529-9590-31e7-b0007b416f81
* Speed up GrResourceCache lookup by inlining GrBinHashKey comparisonsGravatar commit-bot@chromium.org2013-11-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The GCC compilers for Android and Ubuntu do not seem to be able to inline the memcmp operations on GrBinHashKey data. Write the comparisons manually. Also shortcut GrBinHashKey::EQ to skip comparison when hashes do not match. Speeds up grresourcecache_find test on ARM and x86_64. Speeds up grresourcecache_add on x86_64. In order to test the change, moves ad hoc Gr unit tests from src/gr_unittest.cpp to tests/GrUnitTests to be consistent with other tests and enables GrUnitTests. Fixes a regression from r2863 with where re-setting GrBinHashKey data would not set the hash correctly. This should also improve the hash function itself. The regression caused many of the hash operations be no-ops. This is caught by the unit test. Renames the comparison functions that GrHashTable needs from EQ, LT to Equals, LessThan. Renames GrTBinHashKey to GrBinHashKey. The GrTBinHashKey used to forward comparison functions to an ENTRY template class, which would extract the key and call back to the GrTBinHashKey. This would save the user from writing one comparison function when comparison was done with int ENTRY::compare(). There's no real benefit in this now. Also this was used only for one class (GrTextureStripAtlas). The other use in GrResourceKey was not actually using the provided "shortcut". The new GrBinHashKey is not templated with the entry, rather just provides == and < functions. The users of GrTHashTable provide the needed functions now. Adds explicit documentation of functions that are actually needed GrTHashTable for the Key template. Adds SK_DEBUG guards according to the contract. R=bsalomon@google.com, mtklein@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/88113002 git-svn-id: http://skia.googlecode.com/svn/trunk@12426 2bbb7eff-a529-9590-31e7-b0007b416f81
* We want to give SkPixelRef a way to signal over to GrResourceCache that it's ↵Gravatar commit-bot@chromium.org2013-10-24
| | | | | | | | | | | | | | | | | | | | | become pointless to keep around textures based on that SkPixelRef when its pixels change, so that it can be a good citizen and free those textures. This adds an invalidation listener mechanism to SkPixelRef to let it send this message while still staying ignorant of who's listening. These messages are tricky to deliver. The SkPixelRefs they originates from and the GrResourceCaches they ultimately end up at may be on different threads; neither class is threadsafe; their object lifetimes are totally independent; it's a many-senders-to-many-receivers relation; and neither codebase should really know about the other. So I've added a per-message-type global message bus to broadcast messages to threadsafe inboxes. Anyone can post() a message, which will show up in all the inboxes of that type, read whenever the inbox's owner calls poll(). The implementation is _dumb_; it can be improved in several dimensions (inbox size limits, lock-free message delivery) if we find the need. I took some care to make sure not to send the invalidation message for any SkPixelRef that's sharing a generation ID with another SkPixelRef. BUG= R=bsalomon@google.com, scroggo@google.com, reed@google.com Author: mtklein@google.com Review URL: https://codereview.chromium.org/26734003 git-svn-id: http://skia.googlecode.com/svn/trunk@11949 2bbb7eff-a529-9590-31e7-b0007b416f81
* GrTHashCache -> GrTHashTableGravatar mtklein@google.com2013-10-21
| | | | | | | | | | | The class is Table, but the file's Cache. That's confusing. BUG= R=bsalomon@google.com Review URL: https://codereview.chromium.org/32523004 git-svn-id: http://skia.googlecode.com/svn/trunk@11898 2bbb7eff-a529-9590-31e7-b0007b416f81
* Replace uses of GR_DEBUG by SK_DEBUG.Gravatar commit-bot@chromium.org2013-08-28
| | | | | | | | | | | BUG=None R=bsalomon@google.com, robertphillips@google.com Author: tfarina@chromium.org Review URL: https://chromiumcodereview.appspot.com/23137022 git-svn-id: http://skia.googlecode.com/svn/trunk@10978 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-07-20
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@10223 2bbb7eff-a529-9590-31e7-b0007b416f81
* Alter resource cache and GrContext to (optionally) never reuse a scratch textureGravatar robertphillips@google.com2013-07-19
| | | | | | | | https://codereview.chromium.org/19482004/ git-svn-id: http://skia.googlecode.com/svn/trunk@10193 2bbb7eff-a529-9590-31e7-b0007b416f81
* The rest of: Add purgeAsNeeded calls before addResource callsGravatar robertphillips@google.com2013-07-18
| | | | | | | | https://codereview.chromium.org/19591003/ git-svn-id: http://skia.googlecode.com/svn/trunk@10146 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-07-11
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@9992 2bbb7eff-a529-9590-31e7-b0007b416f81
* Allow the resource cache to (indirectly) flush the InOrderDrawBufferGravatar commit-bot@chromium.org2013-07-10
| | | | | | | | | | R=bsalomon@google.com Author: robertphillips@google.com Review URL: https://chromiumcodereview.appspot.com/18466005 git-svn-id: http://skia.googlecode.com/svn/trunk@9949 2bbb7eff-a529-9590-31e7-b0007b416f81
* Don't call purgeCache() from within GrResource memebers.Gravatar bsalomon@google.com2013-05-10
| | | | | | | | R=robertphillips@google.com Review URL: https://codereview.chromium.org/14864020 git-svn-id: http://skia.googlecode.com/svn/trunk@9102 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixed the hash key comparison function.Gravatar sugoi@google.com2013-02-25
| | | | | | Review URL: https://codereview.appspot.com/7378065 git-svn-id: http://skia.googlecode.com/svn/trunk@7853 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Skia_Periodic_House_KeepingGravatar skia.committer@gmail.com2012-12-21
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@6921 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reland 6914 w/ fixes.Gravatar bsalomon@google.com2012-12-20
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@6916 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert 6914 to fix build issues.Gravatar bsalomon@google.com2012-12-20
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@6915 2bbb7eff-a529-9590-31e7-b0007b416f81
* Simplify cache IDs and keys.Gravatar bsalomon@google.com2012-12-20
| | | | | | | R=robertphillips@google.com Review URL: https://codereview.appspot.com/6954047 git-svn-id: http://skia.googlecode.com/svn/trunk@6914 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove unused type GrCacheKeyGravatar bsalomon@google.com2012-12-17
| | | | | | | R=robertphillips@google.com Review URL: https://codereview.appspot.com/6947074 git-svn-id: http://skia.googlecode.com/svn/trunk@6858 2bbb7eff-a529-9590-31e7-b0007b416f81
* Rename SkTDLinkedList to SkTInternalLinked list, add some methods useful for ↵Gravatar bsalomon@google.com2012-12-03
| | | | | | | | forthcoming SkTLList. Review URL: https://codereview.appspot.com/6858101 git-svn-id: http://skia.googlecode.com/svn/trunk@6643 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Skia_Periodic_House_KeepingGravatar skia.committer@gmail.com2012-11-01
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@6228 2bbb7eff-a529-9590-31e7-b0007b416f81
* Ganesh resource cache changesGravatar robertphillips@google.com2012-10-31
| | | | | | | | https://codereview.appspot.com/6784051/ git-svn-id: http://skia.googlecode.com/svn/trunk@6211 2bbb7eff-a529-9590-31e7-b0007b416f81
* Removed old resource locking systemGravatar robertphillips@google.com2012-09-09
| | | | | | | | https://codereview.appspot.com/6488098/ git-svn-id: http://skia.googlecode.com/svn/trunk@5453 2bbb7eff-a529-9590-31e7-b0007b416f81
* Added explicit cache clearingGravatar robertphillips@google.com2012-09-07
| | | | | | | | http://codereview.appspot.com/6492094/ git-svn-id: http://skia.googlecode.com/svn/trunk@5444 2bbb7eff-a529-9590-31e7-b0007b416f81
* Simplified stencil buffer cachingGravatar robertphillips@google.com2012-09-05
| | | | | | | | https://codereview.appspot.com/6503073/ git-svn-id: http://skia.googlecode.com/svn/trunk@5400 2bbb7eff-a529-9590-31e7-b0007b416f81
* Allow cache tracking to be enabled in releaseGravatar robertphillips@google.com2012-08-31
| | | | | | | | https://codereview.appspot.com/6500057/ git-svn-id: http://skia.googlecode.com/svn/trunk@5365 2bbb7eff-a529-9590-31e7-b0007b416f81
* Begin moving locking out of GrResourceCacheGravatar robertphillips@google.com2012-08-30
| | | | | | | | http://codereview.appspot.com/6498064/ git-svn-id: http://skia.googlecode.com/svn/trunk@5354 2bbb7eff-a529-9590-31e7-b0007b416f81
* Added find, lock to GrContext & GrResourceCache interfacesGravatar robertphillips@google.com2012-08-30
| | | | | | | | https://codereview.appspot.com/6499052/ git-svn-id: http://skia.googlecode.com/svn/trunk@5343 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove SkGpuDevice::fTexture, use new pixel ref class nameGravatar bsalomon@google.com2012-08-28
| | | | | | | Review URL: https://codereview.appspot.com/6474068/ git-svn-id: http://skia.googlecode.com/svn/trunk@5307 2bbb7eff-a529-9590-31e7-b0007b416f81
* Result of running tools/sanitize_source_files.py (which was added in ↵Gravatar rmistry@google.com2012-08-23
| | | | | | | | | https://codereview.appspot.com/6465078/) This CL is part I of IV (I broke down the 1280 files into 4 CLs). Review URL: https://codereview.appspot.com/6485054 git-svn-id: http://skia.googlecode.com/svn/trunk@5262 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixed compiler error in r5247 (unreviewed)Gravatar robertphillips@google.com2012-08-23
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@5248 2bbb7eff-a529-9590-31e7-b0007b416f81
* Refactored GrDLinkedList into SkTDLinkedListGravatar robertphillips@google.com2012-08-23
| | | | | | | | http://codereview.appspot.com/6484045/ git-svn-id: http://skia.googlecode.com/svn/trunk@5247 2bbb7eff-a529-9590-31e7-b0007b416f81
* Scratch textures are no longer removed from the cache in DebugGravatar robertphillips@google.com2012-08-22
| | | | | | | | http://codereview.appspot.com/6465079/ git-svn-id: http://skia.googlecode.com/svn/trunk@5221 2bbb7eff-a529-9590-31e7-b0007b416f81
* Added resource cache debug output to help track changesGravatar robertphillips@google.com2012-08-22
| | | | | | | | http://codereview.appspot.com/6463079/ git-svn-id: http://skia.googlecode.com/svn/trunk@5220 2bbb7eff-a529-9590-31e7-b0007b416f81