diff options
author | Brian Salomon <bsalomon@google.com> | 2018-07-11 20:01:19 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-07-11 20:01:28 +0000 |
commit | 143cf8e5994c54aa8c1b721f7af1d3fc9fd83602 (patch) | |
tree | 3fd8ad986ffb3bf0739532b05d0df10f863e41a9 /src/gpu/ccpr | |
parent | f4c5bb9aba485aa47c27b15905d81992b7cf4707 (diff) |
Revert "Make GPU cache invalidation SkMessageBus messages go to one GrContext."
This reverts commit f4c5bb9aba485aa47c27b15905d81992b7cf4707.
Reason for revert: Accidentally submitted without CQ
Original change's description:
> Make GPU cache invalidation SkMessageBus messages go to one GrContext.
>
> Makes it so the template param to SkMessageBus must implement:
> bool shouldSend(uint32_t inboxID) const
>
> Updates all GPU backend message types to only go to the GrContext that
> is adding a cache entry.
>
> Bug: skia:
> Change-Id: I3e8a4eb90654b7b8ac57cac9fb508c0ef1d51058
> Reviewed-on: https://skia-review.googlesource.com/140220
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Reviewed-by: Jim Van Verth <jvanverth@google.com>
TBR=jvanverth@google.com,bsalomon@google.com,robertphillips@google.com
Change-Id: Iadb667d8027341703d254325320ddaa528fb33a1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/140800
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/gpu/ccpr')
-rw-r--r-- | src/gpu/ccpr/GrCCDrawPathsOp.cpp | 8 | ||||
-rw-r--r-- | src/gpu/ccpr/GrCCPathCache.cpp | 12 | ||||
-rw-r--r-- | src/gpu/ccpr/GrCCPathCache.h | 12 |
3 files changed, 11 insertions, 21 deletions
diff --git a/src/gpu/ccpr/GrCCDrawPathsOp.cpp b/src/gpu/ccpr/GrCCDrawPathsOp.cpp index 016756a7f6..2d250deb00 100644 --- a/src/gpu/ccpr/GrCCDrawPathsOp.cpp +++ b/src/gpu/ccpr/GrCCDrawPathsOp.cpp @@ -251,8 +251,7 @@ void GrCCDrawPathsOp::setupResources(GrOnFlushResourceProvider* onFlushRP, GrCCAtlas* atlas = resources->copyPathToCachedAtlas(*cacheEntry, doEvenOddFill, &newOffset); cacheEntry->updateToCachedAtlas(atlas->getOrAssignUniqueKey(onFlushRP), - onFlushRP->contextUniqueID(), newOffset, - atlas->refOrMakeCachedAtlasInfo()); + newOffset, atlas->refOrMakeCachedAtlasInfo()); this->recordInstance(atlas->textureProxy(), resources->nextPathInstanceIdx()); resources->appendDrawPathInstance().set(*cacheEntry, draw.fCachedMaskShift, draw.fColor); @@ -297,9 +296,8 @@ void GrCCDrawPathsOp::setupResources(GrOnFlushResourceProvider* onFlushRP, const GrUniqueKey& atlasKey = resources->nextAtlasToStash()->getOrAssignUniqueKey(onFlushRP); - cacheEntry->initAsStashedAtlas(atlasKey, onFlushRP->contextUniqueID(), - devToAtlasOffset, devBounds, devBounds45, devIBounds, - draw.fCachedMaskShift); + cacheEntry->initAsStashedAtlas(atlasKey, devToAtlasOffset, devBounds, devBounds45, + devIBounds, draw.fCachedMaskShift); // Remember this atlas in case we encounter the path again during the same flush. cacheEntry->setCurrFlushAtlas(atlas); } diff --git a/src/gpu/ccpr/GrCCPathCache.cpp b/src/gpu/ccpr/GrCCPathCache.cpp index d7dc714c82..b22b1dd726 100644 --- a/src/gpu/ccpr/GrCCPathCache.cpp +++ b/src/gpu/ccpr/GrCCPathCache.cpp @@ -149,16 +149,13 @@ GrCCPathCacheEntry::~GrCCPathCacheEntry() { this->invalidateAtlas(); } -void GrCCPathCacheEntry::initAsStashedAtlas(const GrUniqueKey& atlasKey, uint32_t contextUniqueID, +void GrCCPathCacheEntry::initAsStashedAtlas(const GrUniqueKey& atlasKey, const SkIVector& atlasOffset, const SkRect& devBounds, const SkRect& devBounds45, const SkIRect& devIBounds, const SkIVector& maskShift) { - SkASSERT(contextUniqueID != SK_InvalidUniqueID); SkASSERT(atlasKey.isValid()); SkASSERT(!fCurrFlushAtlas); // Otherwise we should reuse the atlas from last time. - fContextUniqueID = contextUniqueID; - fAtlasKey = atlasKey; fAtlasOffset = atlasOffset + maskShift; SkASSERT(!fCachedAtlasInfo); // Otherwise they should have reused the cached atlas instead. @@ -169,15 +166,12 @@ void GrCCPathCacheEntry::initAsStashedAtlas(const GrUniqueKey& atlasKey, uint32_ fDevIBounds = devIBounds.makeOffset(-maskShift.fX, -maskShift.fY); } -void GrCCPathCacheEntry::updateToCachedAtlas(const GrUniqueKey& atlasKey, uint32_t contextUniqueID, +void GrCCPathCacheEntry::updateToCachedAtlas(const GrUniqueKey& atlasKey, const SkIVector& newAtlasOffset, sk_sp<GrCCAtlas::CachedAtlasInfo> info) { - SkASSERT(contextUniqueID != SK_InvalidUniqueID); SkASSERT(atlasKey.isValid()); SkASSERT(!fCurrFlushAtlas); // Otherwise we should reuse the atlas from last time. - fContextUniqueID = contextUniqueID; - fAtlasKey = atlasKey; fAtlasOffset = newAtlasOffset; @@ -194,7 +188,7 @@ void GrCCPathCacheEntry::invalidateAtlas() { fCachedAtlasInfo->fNumInvalidatedPathPixels >= fCachedAtlasInfo->fNumPathPixels / 2) { // Too many invalidated pixels: purge the atlas texture from the resource cache. SkMessageBus<GrUniqueKeyInvalidatedMessage>::Post( - GrUniqueKeyInvalidatedMessage(fAtlasKey, fContextUniqueID)); + GrUniqueKeyInvalidatedMessage(fAtlasKey)); fCachedAtlasInfo->fIsPurgedFromResourceCache = true; } } diff --git a/src/gpu/ccpr/GrCCPathCache.h b/src/gpu/ccpr/GrCCPathCache.h index 7a552bbc2a..67e7d9f571 100644 --- a/src/gpu/ccpr/GrCCPathCache.h +++ b/src/gpu/ccpr/GrCCPathCache.h @@ -121,15 +121,14 @@ public: // Called once our path has been rendered into the mainline CCPR (fp16, coverage count) atlas. // The caller will stash this atlas texture away after drawing, and during the next flush, // recover it and attempt to copy any paths that got reused into permanent 8-bit atlases. - void initAsStashedAtlas(const GrUniqueKey& atlasKey, uint32_t contextUniqueID, - const SkIVector& atlasOffset, const SkRect& devBounds, - const SkRect& devBounds45, const SkIRect& devIBounds, - const SkIVector& maskShift); + void initAsStashedAtlas(const GrUniqueKey& atlasKey, const SkIVector& atlasOffset, + const SkRect& devBounds, const SkRect& devBounds45, + const SkIRect& devIBounds, const SkIVector& maskShift); // Called once our path mask has been copied into a permanent, 8-bit atlas. This method points // the entry at the new atlas and updates the CachedAtlasInfo data. - void updateToCachedAtlas(const GrUniqueKey& atlasKey, uint32_t contextUniqueID, - const SkIVector& newAtlasOffset, sk_sp<GrCCAtlas::CachedAtlasInfo>); + void updateToCachedAtlas(const GrUniqueKey& atlasKey, const SkIVector& newAtlasOffset, + sk_sp<GrCCAtlas::CachedAtlasInfo>); const GrUniqueKey& atlasKey() const { return fAtlasKey; } @@ -163,7 +162,6 @@ private: // Called when our corresponding path is modified or deleted. void onChange() override; - uint32_t fContextUniqueID; GrCCPathCache* fCacheWeakPtr; // Gets manually reset to null by the path cache upon eviction. MaskTransform fMaskTransform; int fHitCount = 1; |