ccpr: Age out path cache entries
Adds a hook that gets called from GrContext::performDeferredCleanup.
Bug: skia:8452
Change-Id: I4e5f4d263528b21247fbc032a1b4881a23cbb2ff
Reviewed-on: https://skia-review.googlesource.com/c/167181
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Chris Dalton <csmartdalton@google.com>
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
index 36ce9da..c3262c9 100644
--- a/src/gpu/GrContext.cpp
+++ b/src/gpu/GrContext.cpp
@@ -38,6 +38,7 @@
#include "SkUnPreMultiplyPriv.h"
#include "effects/GrConfigConversionEffect.h"
#include "effects/GrSkSLFP.h"
+#include "ccpr/GrCoverageCountingPathRenderer.h"
#include "text/GrTextBlobCache.h"
#define ASSERT_OWNED_PROXY(P) \
@@ -305,8 +306,15 @@
void GrContext::performDeferredCleanup(std::chrono::milliseconds msNotUsed) {
ASSERT_SINGLE_OWNER
+
+ auto purgeTime = GrStdSteadyClock::now() - msNotUsed;
+
fResourceCache->purgeAsNeeded();
- fResourceCache->purgeResourcesNotUsedSince(GrStdSteadyClock::now() - msNotUsed);
+ fResourceCache->purgeResourcesNotUsedSince(purgeTime);
+
+ if (auto ccpr = fDrawingManager->getCoverageCountingPathRenderer()) {
+ ccpr->purgeCacheEntriesOlderThan(purgeTime);
+ }
fTextBlobCache->purgeStaleBlobs();
}