aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrResourceCache.h
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
* 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
* 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
* Refactored cacheID in preparation for clip mask caching changesGravatar robertphillips@google.com2012-08-08
| | | | | | | | http://codereview.appspot.com/6458089/ git-svn-id: http://skia.googlecode.com/svn/trunk@5002 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
* GrTexture can now create its own cache keyGravatar robertphillips@google.com2012-06-04
| | | | | | | | http://codereview.appspot.com/6269047/ git-svn-id: http://skia.googlecode.com/svn/trunk@4148 2bbb7eff-a529-9590-31e7-b0007b416f81
* Expose functionality to purge the GPU texture cache while running SampleApp.Gravatar twiz@google.com2012-01-27
| | | | | | | | Press 'p' to purge the cache. A summary of the number of bytes of video memory released is output to the command prompt. Review URL: https://codereview.appspot.com/5587045 git-svn-id: http://skia.googlecode.com/svn/trunk@3097 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