aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrResourceCache.cpp
Commit message (Collapse)AuthorAge
* 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
* Move SkMessageBus::Get out of header, and retry crrev.com/106563002.Gravatar commit-bot@chromium.org2014-01-15
| | | | | | | | | | | BUG= R=bsalomon@google.com, kkinnunen@nvidia.com Author: mtklein@google.com Review URL: https://codereview.chromium.org/140053002 git-svn-id: http://skia.googlecode.com/svn/trunk@13104 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert of https://codereview.chromium.org/106563002/Gravatar commit-bot@chromium.org2014-01-10
| | | | | | | | | | | | | | | Reason for revert: There's a threading issue I don't quite understand yet. Objects are being deleted after we check they're deleted. Will try again. R=kkinnunen@nvidia.com, kkinnunen@nvidia.com TBR=kkinnunen@nvidia.com, kkinnunen@nvidia.com NOTREECHECKS=true NOTRY=true Author: mtklein@google.com Review URL: https://codereview.chromium.org/134363002 git-svn-id: http://skia.googlecode.com/svn/trunk@13023 2bbb7eff-a529-9590-31e7-b0007b416f81
* Delete all invalidated resources with same keyGravatar commit-bot@chromium.org2014-01-10
| | | | | | | | | | | | | Delete all invalidated resources with same key instead of deleting just the first resource. R=mtklein@google.com, kkinnunen@nvidia.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/106563002 git-svn-id: http://skia.googlecode.com/svn/trunk@13019 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
* Start cleaning up 64bit Win warningsGravatar robertphillips@google.com2013-10-14
| | | | | | | | https://codereview.chromium.org/27192003/ git-svn-id: http://skia.googlecode.com/svn/trunk@11764 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
* Replace uses of GrAssert by SkASSERT.Gravatar tfarina@chromium.org2013-08-17
| | | | | | | | R=bsalomon@google.com Review URL: https://codereview.chromium.org/22850006 git-svn-id: http://skia.googlecode.com/svn/trunk@10789 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add a 'unique' method to SkRefCnt, document the usage, and add support.Gravatar bungeman@google.com2013-07-19
| | | | | | | | | | | | | | | | | | std::shared_ptr has a method called 'unique' which captures the concept that a reference count of 1 is special, and can be used to optimize copy on write. It also has some undocumented need for memory barriers in certain situations and those needs are documented here. The motivation for looking into this is crbug.com/258499 . The use of the reference count in this manner is a benign race with both ref() and unref(). By introducing sk_atomic_unprotected_read, it is possible for Chromium to annotate this read to tell ThreadSanitizer that this is known. R=bsalomon@google.com Review URL: https://codereview.chromium.org/18770007 git-svn-id: http://skia.googlecode.com/svn/trunk@10221 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
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-07-19
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@10175 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
* 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
* Remove GR_DUMP_TEXTURE_UPLOADSGravatar bsalomon@google.com2013-02-07
| | | | | | | R=robertphillips@google.com Review URL: https://codereview.appspot.com/7300062 git-svn-id: http://skia.googlecode.com/svn/trunk@7652 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
* 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
* Sanitizing source files in Skia_Periodic_House_KeepingGravatar skia.committer@gmail.com2012-09-06
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@5410 2bbb7eff-a529-9590-31e7-b0007b416f81
* Resource cache now explicitly takes ref of managed resourcesGravatar robertphillips@google.com2012-09-05
| | | | | | | | https://codereview.appspot.com/6489085/ git-svn-id: http://skia.googlecode.com/svn/trunk@5407 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
* Don't purge resources from cache if they have > 1 refGravatar robertphillips@google.com2012-09-04
| | | | | | | | https://codereview.appspot.com/6494069/ git-svn-id: http://skia.googlecode.com/svn/trunk@5380 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
* 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
* Replaced TextureCacheEntry with GrTexture* and a back pointer to ↵Gravatar robertphillips@google.com2012-08-16
| | | | | | | | | | GrResourceEntry (in GrTexture) http://codereview.appspot.com/6460089/ git-svn-id: http://skia.googlecode.com/svn/trunk@5122 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add placement new macros to SkPostConfig, call SkNEW* from Ganesh.Gravatar tomhudson@google.com2012-07-09
| | | | | | | | | | | | TODO: unify with the placement new implementation in SkTemplatesPriv.h, once various issues there are overcome. reed@ should be taking the lead there. http://codereview.appspot.com/6384043/ git-svn-id: http://skia.googlecode.com/svn/trunk@4492 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixed Resource counting bug in AutoScratchTexture detach mechanismGravatar robertphillips@google.com2012-06-27
| | | | | | | | http://codereview.appspot.com/6356043/ git-svn-id: http://skia.googlecode.com/svn/trunk@4361 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert r4287. Large numbers of textures created by random gradients can ↵Gravatar bsalomon@google.com2012-06-22
| | | | | | | | | | cause poor driver performance (at least on Mac) BUG=670 git-svn-id: http://skia.googlecode.com/svn/trunk@4306 2bbb7eff-a529-9590-31e7-b0007b416f81
* AutoScratchTexture can now release its texture and it will return to the ↵Gravatar robertphillips@google.com2012-06-22
| | | | | | | | | | texture cache when freed http://codereview.appspot.com/6262043/ git-svn-id: http://skia.googlecode.com/svn/trunk@4301 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove count budget from resource cacheGravatar bsalomon@google.com2012-06-21
| | | | | | | | Review URL: http://codereview.appspot.com/6312052/ git-svn-id: http://skia.googlecode.com/svn/trunk@4287 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix warnings on Mac in src/gpu and include/gpuGravatar caryclark@google.com2012-06-06
| | | | | | | | | | | | | | | | | | Fix these class of warnings: - unused functions - unused locals - sign mismatch - missing function prototypes - missing newline at end of file - 64 to 32 bit truncation The changes prefer to link in dead code in the debug build with 'if (false)' than to comment it out, but trivial cases are commented out or sometimes deleted if it appears to be a copy/paste error. Review URL: https://codereview.appspot.com/6296044 git-svn-id: http://skia.googlecode.com/svn/trunk@4180 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove incorrect GrAssert calls in GrResourceCache::removeAllGravatar twiz@google.com2012-02-21
| | | | | | | | | The asserts in GrResourceCache are too aggressive, and assume that all resources are always purged. Locked resources will not be purged. BUG=114861 Review URL: https://codereview.appspot.com/5674096 git-svn-id: http://skia.googlecode.com/svn/trunk@3226 2bbb7eff-a529-9590-31e7-b0007b416f81
* [GPU] tile when large bitmap pased drawBitmap and only a small fraction is usedGravatar bsalomon@google.com2011-11-30
| | | | | | | | Review URL: http://codereview.appspot.com/5450048/ git-svn-id: http://skia.googlecode.com/svn/trunk@2760 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move gpu/include/* to include/gpu and gpu/src/* to src/gpuGravatar bsalomon@google.com2011-10-12
Review URL: http://codereview.appspot.com/5250070/ git-svn-id: http://skia.googlecode.com/svn/trunk@2471 2bbb7eff-a529-9590-31e7-b0007b416f81