aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrResourceCache.cpp
Commit message (Collapse)AuthorAge
* Add unit test for pinned SkImagesGravatar Robert Phillips2017-09-29
| | | | | | | Change-Id: I2e14353bc865b5994cc90ad643a6a58604955957 Reviewed-on: https://skia-review.googlesource.com/53500 Reviewed-by: Derek Sollenberger <djsollen@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Clear uniquely keyed texture proxies out of ResourceCache when it is deletedGravatar Robert Phillips2017-09-29
| | | | | | | | Change-Id: Ice135dd4b6316b791276eefd522be6bd90b8b5eb Reviewed-on: https://skia-review.googlesource.com/53261 Reviewed-by: Brian Osman <brianosman@google.com> Reviewed-by: Stan Iliev <stani@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Add ability to remove unique key from proxy and underlying surface.Gravatar Greg Daniel2017-09-26
| | | | | | | | Bug: skia: Change-Id: I66b891ce9ca35906fdbddb36f565b35b25825112 Reviewed-on: https://skia-review.googlesource.com/51240 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Add native caching of uniquely keyed GrTextureProxies (take 2)Gravatar Robert Phillips2017-09-21
| | | | | | | | | TBR=bsalomon@google.com Change-Id: I590dcdc85fb60706c7eb06277694791dc04c9141 Reviewed-on: https://skia-review.googlesource.com/49543 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Revert "Add native caching of uniquely keyed GrTextureProxies"Gravatar Robert Phillips2017-09-20
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit d4f100dad90ed5beb1b614464d8c4fcb22c0a993. Reason for revert: ASAN Original change's description: > Add native caching of uniquely keyed GrTextureProxies > > Change-Id: I303fe025b7856b8d681a2d35b416c015bd468e1d > Reviewed-on: https://skia-review.googlesource.com/48300 > Commit-Queue: Robert Phillips <robertphillips@google.com> > Reviewed-by: Brian Salomon <bsalomon@google.com> TBR=bsalomon@google.com,robertphillips@google.com,brianosman@google.com Change-Id: I7bbf549d4855ce6d985867c3880eef80080bd3d1 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://skia-review.googlesource.com/49442 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Add native caching of uniquely keyed GrTextureProxiesGravatar Robert Phillips2017-09-20
| | | | | | | Change-Id: I303fe025b7856b8d681a2d35b416c015bd468e1d Reviewed-on: https://skia-review.googlesource.com/48300 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Update GrResourceCache changeUniqueKey to stay in valid state after each stepGravatar Greg Daniel2017-09-08
| | | | | | | | | | | | The issues are that we are intertwining removing things from the old and new resource. This changes it so we do all the removal on the old resource first then start updating the new resource. Bug: skia: Change-Id: I7ce4a309290cd499cdc4398c87d1cfd42ef6994d Reviewed-on: https://skia-review.googlesource.com/44242 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Greg Daniel <egdaniel@google.com>
* Replace SkFAIL with SK_ABORT.Gravatar Ben Wagner2017-08-16
| | | | | | | | | | | | SkFAIL is a legacy macro which is just SK_ABORT. This CL mechanically changes uses of SkFAIL to SK_ABORT in preparation for its removal. The related sk_throw macro will be changed independently, due to needing to actually clean up its users. Change-Id: Id70b5c111a02d2458dc60c8933f444df27d9cebb Reviewed-on: https://skia-review.googlesource.com/35284 Reviewed-by: Derek Sollenberger <djsollen@google.com> Commit-Queue: Ben Wagner <bungeman@google.com>
* Automatically prepend "disabled-by-default-" to TRACE categoriesGravatar Brian Osman2017-07-26
| | | | | | | | | | | Ensures that all Skia events are disabled by default in Chrome, and eliminates redundant typing. Bug: skia: Change-Id: I289c5e5a01084fcf4cccf512da65a4727f4aeca2 Reviewed-on: https://skia-review.googlesource.com/26880 Commit-Queue: Mike Klein <mtklein@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org>
* Remove ImmediateFlush modeGravatar Robert Phillips2017-06-02
| | | | | | | Change-Id: I7db113e66d81516b2beb5eefeddf488d9bfed2e5 Reviewed-on: https://skia-review.googlesource.com/18488 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com>
* Add method to GrContext to purge unlocked resources.Gravatar Derek Sollenberger2017-05-26
| | | | | | | | | | | Beyond setting the total cache limits this method enables clients to request to purge a specific number of bytes, as well as specify their preference to purge scratch resources over resources of other types. Change-Id: I9259d5544d34251575d77eebe599388f213ff3ce Reviewed-on: https://skia-review.googlesource.com/17987 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Derek Sollenberger <djsollen@google.com>
* Add GrContext API to report the number of purgeable bytes in the cache.Gravatar Derek Sollenberger2017-05-24
| | | | | | | Change-Id: I1457eec9831736f386e3b3b80d9eac8dbb337a9b Reviewed-on: https://skia-review.googlesource.com/17829 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Derek Sollenberger <djsollen@google.com>
* Added SkImage::MakeCrossContextFromEncodedGravatar Brian Osman2017-05-09
| | | | | | | | | | | | | | | Designed for Flutter's threading architecture, with an eye to being useful to other clients. Under the hood, uses a new image generator class to lazily wrap a texture for multiple GrContexts. Re-land of https://skia-review.googlesource.com/c/14180/ Bug: skia: Change-Id: I3dd382640629b79b3058f18fee68d043566e43e5 Reviewed-on: https://skia-review.googlesource.com/15895 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
* Revert "Added SkImage::MakeCrossContextFromEncoded"Gravatar Brian Salomon2017-05-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 83b1b3db36e8622f4bbc8c391d5c714e258d1e03. Reason for revert: unit test failing and asan leaks Original change's description: > Added SkImage::MakeCrossContextFromEncoded > > Designed for Flutter's threading architecture, with > an eye to being useful to other clients. Under the > hood, uses a new image generator class to lazily wrap > a texture for multiple GrContexts. > > Bug: skia: > Change-Id: I6c37b12c8ab5bce94b91190e5f0beb91d31ae81b > Reviewed-on: https://skia-review.googlesource.com/14180 > Commit-Queue: Brian Osman <brianosman@google.com> > Reviewed-by: Brian Salomon <bsalomon@google.com> > TBR=egdaniel@google.com,bsalomon@google.com,robertphillips@google.com,brianosman@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I1f0bf580aa0ea2d132e18b64ff610ddac9d073a7 Reviewed-on: https://skia-review.googlesource.com/15892 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Added SkImage::MakeCrossContextFromEncodedGravatar Brian Osman2017-05-08
| | | | | | | | | | | | | Designed for Flutter's threading architecture, with an eye to being useful to other clients. Under the hood, uses a new image generator class to lazily wrap a texture for multiple GrContexts. Bug: skia: Change-Id: I6c37b12c8ab5bce94b91190e5f0beb91d31ae81b Reviewed-on: https://skia-review.googlesource.com/14180 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Allow wrapped resources to have unique keysGravatar Brian Osman2017-05-08
| | | | | | | | | | | | | | | Previously, wrapped resources were never budgeted. Now we explicitly allow wrapped, unbudgeted resources with unique keys. This allows code that wraps (and re-wraps) external resources with a deterministic key to find the same wrapped resource - saving time and ensuring a single wrapped copy, to preserve state on the resource (like texture sampler state). Bug: skia: Change-Id: I1dd7642f1ed8bb6c620029d46203cf5cb6b3c160 Reviewed-on: https://skia-review.googlesource.com/15241 Commit-Queue: Brian Osman <brianosman@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com> Reviewed-by: Brian Salomon <bsalomon@google.com>
* Revert "Revert "Add a new GrResourceCache purging mechanism for purging ↵Gravatar Brian Salomon2017-03-22
| | | | | | | | | | | unused resources."" This reverts commit 20c322ef0cd04cf8e2592879d05d9f4e6cb19596. Change-Id: I6df9a8594484837672308dc2c21c7c29b76ffa2c Reviewed-on: https://skia-review.googlesource.com/10013 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
* Revert "Add a new GrResourceCache purging mechanism for purging unused ↵Gravatar Brian Salomon2017-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | resources." This reverts commit fbb56ce83fc717b7c6722324bbccd1ae73c350a4. Reason for revert: Chrome's ancient libstdc++ doesn't like use of steady_clock Original change's description: > Add a new GrResourceCache purging mechanism for purging unused resources. > > The client may call GrContext::purgeResourceNotUsedSince() with a stead_clock::time_point and all resources that have been purgeable since before that time point are purged. > > This is intended to replace the "max unused flushes" purging mechanism once Chrome adopts it. > > Change-Id: I28881dd2959cc01c0acca81b2d6001ee5626439d > Reviewed-on: https://skia-review.googlesource.com/8920 > Commit-Queue: Brian Salomon <bsalomon@google.com> > Reviewed-by: Robert Phillips <robertphillips@google.com> > Reviewed-by: Eric Karl <ericrk@google.com> > TBR=bsalomon@google.com,robertphillips@google.com,ericrk@google.com,reviews@skia.org,ericrk@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Change-Id: I3baa3b2e80302315b757d4d625732459e13795d4 Reviewed-on: https://skia-review.googlesource.com/10004 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com>
* Add a new GrResourceCache purging mechanism for purging unused resources.Gravatar Brian Salomon2017-03-22
| | | | | | | | | | | | The client may call GrContext::purgeResourceNotUsedSince() with a stead_clock::time_point and all resources that have been purgeable since before that time point are purged. This is intended to replace the "max unused flushes" purging mechanism once Chrome adopts it. Change-Id: I28881dd2959cc01c0acca81b2d6001ee5626439d Reviewed-on: https://skia-review.googlesource.com/8920 Commit-Queue: Brian Salomon <bsalomon@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com> Reviewed-by: Eric Karl <ericrk@google.com>
* Revert of Make GrResourceCache dynamically change between LRU and random ↵Gravatar robertphillips2016-10-04
| | | | | | | | | | | | | | | | | | | | | | | | | replacement strategies. (patchset #8 id:140001 of https://codereview.chromium.org/2321563006/ ) Reason for revert: Causing problems on Mac & Windows bots. Original issue's description: > Make GrResourceCache dynamically change between LRU and random replacement strategies. > > Random performs significantly better when each frame exceeds the budget by a small margin whereas LRU has worst case behavior. > > The decision of which to use is made based on the history from a few frames of the ratio of total unique key cache misses to unique key cache misses of resources purged in the last 2 frames. > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2321563006 > > Committed: https://skia.googlesource.com/skia/+/0f147ac2ae575bbad3515a526f13700bc5c8e9d7 TBR=bsalomon@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2386993004
* Make GrResourceCache dynamically change between LRU and random replacement ↵Gravatar bsalomon2016-10-03
| | | | | | | | | | | strategies. Random performs significantly better when each frame exceeds the budget by a small margin whereas LRU has worst case behavior. The decision of which to use is made based on the history from a few frames of the ratio of total unique key cache misses to unique key cache misses of resources purged in the last 2 frames. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2321563006 Review-Url: https://codereview.chromium.org/2321563006
* Change implementation of flush-count based GrGpuResource purgingGravatar bsalomon2016-09-22
| | | | | | | Change default to approx 30seconds (given some API usage assumptions) GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2361093002 Review-Url: https://codereview.chromium.org/2361093002
* Restructure flushing relationship between GrContext, GrDrawingManager, and ↵Gravatar bsalomon2016-09-07
| | | | | | | | | | | | | | | | | | GrResourceCache. Consolidates all flush actions into GrDrawingManager and makes GrContext::flush a passthrough. Removes the unused and untested discard flush variation. Replaces the indirect overbudget callback mechanism of GrResourceCache with a flag set by resource cache when it wants to flush that is checked after each draw by GrDrawContext. Modifies GrResourceCache::notifyFlushOccurred() to take a param indicating whether it triggered the flush that just occurred. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2307053002 Committed: https://skia.googlesource.com/skia/+/1dbb207babecdae8f1f74ed9d9900c73064df744 Review-Url: https://codereview.chromium.org/2307053002
* Revert of Restructure flushing relationship between GrContext, ↵Gravatar bsalomon2016-09-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GrDrawingManager, and GrResourceCache. (patchset #4 id:60001 of https://codereview.chromium.org/2307053002/ ) Reason for revert: Causing assertions on bots Original issue's description: > Restructure flushing relationship between GrContext, GrDrawingManager, and GrResourceCache. > > Consolidates all flush actions into GrDrawingManager and makes GrContext::flush a passthrough. > > Removes the unused and untested discard flush variation. > > Replaces the indirect overbudget callback mechanism of GrResourceCache with a flag set by resource cache when it wants to flush that is checked after each draw by GrDrawContext. > > Modifies GrResourceCache::notifyFlushOccurred() to take a param indicating whether it triggered the > flush that just occurred. > > GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2307053002 > > Committed: https://skia.googlesource.com/skia/+/1dbb207babecdae8f1f74ed9d9900c73064df744 TBR=robertphillips@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2312123003
* Restructure flushing relationship between GrContext, GrDrawingManager, and ↵Gravatar bsalomon2016-09-06
| | | | | | | | | | | | | | | | | GrResourceCache. Consolidates all flush actions into GrDrawingManager and makes GrContext::flush a passthrough. Removes the unused and untested discard flush variation. Replaces the indirect overbudget callback mechanism of GrResourceCache with a flag set by resource cache when it wants to flush that is checked after each draw by GrDrawContext. Modifies GrResourceCache::notifyFlushOccurred() to take a param indicating whether it triggered the flush that just occurred. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2307053002 Review-Url: https://codereview.chromium.org/2307053002
* Use sse4.2 CRC32 instructions to hash when available.Gravatar mtklein2016-08-08
| | | | | | | | | | | | About 9x faster than Murmur3 for long inputs. Most of this is a mechanical change from SkChecksum::Murmur3(...) to SkOpts::hash(...). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2208903002 CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot;master.client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot Review-Url: https://codereview.chromium.org/2208903002
* Move GrPipelineBuilder out of gms & reduce use of GrPipelineBuilder.hGravatar robertphillips2016-06-23
| | | | | | | | Just another step in reining in the GrPLB GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2086293006 Review-Url: https://codereview.chromium.org/2086293006
* Don't store resources with a unique key in GrResourceCache's fScratchMapGravatar robertphillips2016-05-24
| | | | | | | | | | | The reasoning here is that resources with a unique key are never selected from fScratchMap and just clog up the search for an available resource. This knocks a 200x loop over the SVGbouncingrects case from 264ms down to 164ms. BUG=603969 GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2008083002 Review-Url: https://codereview.chromium.org/2008083002
* Refactor to separate backend object lifecycle and GpuResource budget decisionGravatar kkinnunen2016-04-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor GrGpuResource to contain two different pieces of state: a) instance is budgeted or not budgeted b) instance references wrapped backend objects or not The "object lifecycle" was also attached to backend object handles (ids), which made the code a bit unclear. Backend objects would be associated with GrGpuResource::LifeCycle, even though GrGpuResource::LifeCycle refers to the GpuResource, and individual backend objects in one GpuResource might be governed with different "lifecycle". Mark the budgeted/not budgeted with SkBudgeted::kYes, SkBudgeted::kNo. This was previously GrGpuResource::kCached_LifeCycle, GrGpuResource::kUncached_LifeCycle. Mark the "references wrapped object" with boolean. This was previously GrGpuResource::kBorrowed_LifeCycle, GrGpuResource::kAdopted_LifeCycle for GrGpuResource. Associate the backend object ownership status with GrBackendObjectOwnership for the backend object handles. The resource type leaf constuctors, such has GrGLTexture or GrGLTextureRenderTarget take "budgeted" parameter. This parameter is passed to GrGpuResource::registerWithCache(). The resource type intermediary constructors, such as GrGLTexture constructors for class GrGLTextureRenderTarget do not take "budgeted" parameters, intermediary construtors do not call registerWithCache. Removes the need for tagging GrGpuResource -derived subclass constructors with "Derived" parameter. Makes instances that wrap backend objects be registered with a new function GrGpuResource::registerWithCacheWrapped(). Removes "budgeted" parameter from classes such as StencilAttahment, as they are always cached and never wrap any external backend objects. Removes the use of concept "external" from the member function names. The API refers to the objects as "wrapped", so make all related functions use the term consistently. No change in functionality. Resources referencing wrapped objects are always inserted to the cache with budget decision kNo. BUG=594928 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1862043002 Review URL: https://codereview.chromium.org/1862043002
* Style bikeshed - remove extraneous whitespaceGravatar halcanary2016-03-29
| | | | | | GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1842753002 Review URL: https://codereview.chromium.org/1842753002
* When a surface is backed by an external render target force a copy on image snapGravatar bsalomon2016-02-26
| | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1694943002 Review URL: https://codereview.chromium.org/1694943002
* Move Budgeted enum out of SkSurface, use in GrTextureProviderGravatar bsalomon2016-02-25
| | | | | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1728093005 DOCS_PREVIEW= https://skia.org/?cl=1728093005 Committed: https://skia.googlesource.com/skia/+/57599fe6c0336feaeeeb9b1996e77b70219b483c CQ_EXTRA_TRYBOTS=client.skia.compile:Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot,Build-Mac-Clang-x86_64-Release-CMake-Trybot Review URL: https://codereview.chromium.org/1728093005
* Revert of Move Budgeted enum out of SkSurface, use in GrTextureProvider ↵Gravatar bsalomon2016-02-25
| | | | | | | | | | | | | | | | | | | | | | | | | (patchset #6 id:100001 of https://codereview.chromium.org/1728093005/ ) Reason for revert: Need workaround for chrome to build Original issue's description: > Move Budgeted enum out of SkSurface, use in GrTextureProvider > > BUG=skia: > GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1728093005 > DOCS_PREVIEW= https://skia.org/?cl=1728093005 > > Committed: https://skia.googlesource.com/skia/+/57599fe6c0336feaeeeb9b1996e77b70219b483c TBR=reed@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1734043002
* Move Budgeted enum out of SkSurface, use in GrTextureProviderGravatar bsalomon2016-02-25
| | | | | | | | BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1728093005 DOCS_PREVIEW= https://skia.org/?cl=1728093005 Review URL: https://codereview.chromium.org/1728093005
* Switch uses of SkChecksum::Compute to Murmur3.Gravatar mtklein2015-11-16
| | | | | | | | | | | | | | | SkChecksum::Compute is a very, very poorly distributed hash function. This replaces all remaining uses with Murmur3. The only interesting stuff is in src/gpu. BUG=skia: Committed: https://skia.googlesource.com/skia/+/1d024a3c909ae5cefa5e8b339e2b52dc73ee85ac Committed: https://skia.googlesource.com/skia/+/540e95483d285b555e9b1a73d18c16e7d7c0deba Review URL: https://codereview.chromium.org/1436973003
* Revert of Switch uses of SkChecksum::Compute to Murmur3. (patchset #2 ↵Gravatar mtklein2015-11-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:20001 of https://codereview.chromium.org/1436973003/ ) Reason for revert: gotta put back *compute = 0. Original issue's description: > Switch uses of SkChecksum::Compute to Murmur3. > > SkChecksum::Compute is a very, very poorly distributed hash function. > This replaces all remaining uses with Murmur3. > > The only interesting stuff is in src/gpu. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/1d024a3c909ae5cefa5e8b339e2b52dc73ee85ac > > Committed: https://skia.googlesource.com/skia/+/540e95483d285b555e9b1a73d18c16e7d7c0deba TBR=bsalomon@google.com,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1448023005
* Switch uses of SkChecksum::Compute to Murmur3.Gravatar mtklein2015-11-16
| | | | | | | | | | | | | SkChecksum::Compute is a very, very poorly distributed hash function. This replaces all remaining uses with Murmur3. The only interesting stuff is in src/gpu. BUG=skia: Committed: https://skia.googlesource.com/skia/+/1d024a3c909ae5cefa5e8b339e2b52dc73ee85ac Review URL: https://codereview.chromium.org/1436973003
* Revert of Switch uses of SkChecksum::Compute to Murmur3. (patchset #2 ↵Gravatar mtklein2015-11-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:20001 of https://codereview.chromium.org/1436973003/ ) Reason for revert: I would not have expected this to change any images. Looks like it's changed both MSAA and non-MSAA GMs: https://gold.skia.org/search2?blame=1d024a3c909ae5cefa5e8b339e2b52dc73ee85ac&unt=true&head=true&query=source_type%3Dgm Original issue's description: > Switch uses of SkChecksum::Compute to Murmur3. > > SkChecksum::Compute is a very, very poorly distributed hash function. > This replaces all remaining uses with Murmur3. > > The only interesting stuff is in src/gpu. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/1d024a3c909ae5cefa5e8b339e2b52dc73ee85ac TBR=bsalomon@google.com,mtklein@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=skia: Review URL: https://codereview.chromium.org/1445523003
* Switch uses of SkChecksum::Compute to Murmur3.Gravatar mtklein2015-11-12
| | | | | | | | | | | SkChecksum::Compute is a very, very poorly distributed hash function. This replaces all remaining uses with Murmur3. The only interesting stuff is in src/gpu. BUG=skia: Review URL: https://codereview.chromium.org/1436973003
* Add onMemoryDump to GrContextGravatar ericrk2015-09-15
| | | | | | | | | | | | | Adds an entry point to GrContext to allow enumeration and tracing of GPU resources via the newly added SkTraceMemoryDump. Plan is for Chrome to call this on each of its GrContexts. Dumps both the total size of GPU resources, as well as the total purgeable size. BUG=526261 Review URL: https://codereview.chromium.org/1313743002
* 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
* Add ANGLE workaround to prefer flushes over VRAM usageGravatar robertphillips2015-08-20
| | | | | | | | | | | On the whole, https://codereview.chromium.org/1286203002/ (Defer flushes if kPreferNoIO is specified) improved performance but it did cause a performance regression on ANGLE. This CL disables the deferral of flushes on ANGLE until we can add a separate incremental flushing mechanism. TBR=bsalomon@google.com BUG=skia:4201 BUG=521529 Review URL: https://codereview.chromium.org/1287193008
* Defer flushes if kPreferNoIO is specifiedGravatar robertphillips2015-08-13
| | | | | | Prior to this patch clients who were solely uploading to textures (e.g., SW Mask Mgr) would cause extra flushes b.c., even though kPreferNoIO was being specified, resources with pending IO would still be returned even though there was plenty of space in the resource cache. Review URL: https://codereview.chromium.org/1286203002
* Add support for creating texture backed images where Skia will delete the ↵Gravatar bsalomon2015-06-18
| | | | | | texture. Review URL: https://codereview.chromium.org/1187523005
* Valgrind sez: new[] wants delete[].Gravatar mtklein2015-04-09
| | | | | | | | | | https://uberchromegw.corp.google.com/i/client.skia/builders/Test-Ubuntu-GCC-ShuttleA-GPU-GTX550Ti-x86_64-Release-Valgrind/builds/17/steps/dm/logs/stdio TBR=bsalomon@google.com BUG=skia: Review URL: https://codereview.chromium.org/1075853002
* Add mechanism to proactively purge old resources in GrResourceCache.Gravatar bsalomon2015-04-08
| | | | | | This change leaves the feature turned off by default. Review URL: https://codereview.chromium.org/1032873002
* Increase maximum gpu resources from 1024 to 4096Gravatar kkinnunen2015-03-09
| | | | | | | | | | | Pictures with many drawn paths benefit from the increase of the count. As an example, chalkboard testcase has ~2500 paths, tiger has ~300. Bigger objects, like textures, tend to be limited by the cache byte limit, not item count. Review URL: https://codereview.chromium.org/991783003
* skia: Add tracing for skia's budgetGravatar hendrikw2015-03-04
| | | | | | | | We've run into several places where GPU rasterization slows down a lot, and in some cases, it's due to use reaching skia's budget. This shows a graph of skia's used and free budgeted memory. Review URL: https://codereview.chromium.org/977143002
* Handle the case when the GrResourceCache timestamp wraps.Gravatar bsalomon2015-02-19
| | | | | | NOTREECHECKS=true Review URL: https://codereview.chromium.org/916103006