Reduce the amount of validation in GrResourceCache2
BUG=chromium:433711
Review URL: https://codereview.chromium.org/737533002
diff --git a/src/gpu/GrResourceCache2.cpp b/src/gpu/GrResourceCache2.cpp
index 9764e62..d3039733 100644
--- a/src/gpu/GrResourceCache2.cpp
+++ b/src/gpu/GrResourceCache2.cpp
@@ -90,8 +90,6 @@
}
void GrResourceCache2::insertResource(GrGpuResource* resource) {
- AutoValidate av(this);
-
SkASSERT(resource);
SkASSERT(!resource->wasDestroyed());
SkASSERT(!this->isInCache(resource));
@@ -122,8 +120,6 @@
}
void GrResourceCache2::removeResource(GrGpuResource* resource) {
- AutoValidate av(this);
-
SkASSERT(this->isInCache(resource));
size_t size = resource->gpuMemorySize();
@@ -141,6 +137,7 @@
if (const GrResourceKey* contentKey = resource->cacheAccess().getContentKey()) {
fContentHash.remove(*contentKey);
}
+ this->validate();
}
void GrResourceCache2::abandonAll() {
@@ -195,8 +192,6 @@
GrGpuResource* GrResourceCache2::findAndRefScratchResource(const GrResourceKey& scratchKey,
uint32_t flags) {
- AutoValidate av(this);
-
SkASSERT(!fPurging);
SkASSERT(scratchKey.isScratch());
@@ -204,8 +199,10 @@
if (flags & (kPreferNoPendingIO_ScratchFlag | kRequireNoPendingIO_ScratchFlag)) {
resource = fScratchMap.find(scratchKey, AvailableForScratchUse(true));
if (resource) {
+ resource->ref();
this->makeResourceMRU(resource);
- return SkRef(resource);
+ this->validate();
+ return resource;
} else if (flags & kRequireNoPendingIO_ScratchFlag) {
return NULL;
}
@@ -216,6 +213,7 @@
if (resource) {
resource->ref();
this->makeResourceMRU(resource);
+ this->validate();
}
return resource;
}
@@ -238,13 +236,11 @@
}
void GrResourceCache2::makeResourceMRU(GrGpuResource* resource) {
- AutoValidate av(this);
-
SkASSERT(!fPurging);
SkASSERT(resource);
SkASSERT(this->isInCache(resource));
fResources.remove(resource);
- fResources.addToHead(resource);
+ fResources.addToHead(resource);
}
void GrResourceCache2::notifyPurgable(GrGpuResource* resource) {
@@ -329,8 +325,6 @@
fPurging = true;
- AutoValidate av(this); // Put this after setting fPurging so we're allowed to be over budget.
-
bool overBudget = true;
do {
fNewlyPurgableResourceWhilePurging = false;
@@ -358,6 +352,7 @@
fNewlyPurgableResourceWhilePurging = false;
fPurging = false;
+ this->validate();
}
void GrResourceCache2::purgeAllUnlocked() {
@@ -366,8 +361,6 @@
fPurging = true;
- AutoValidate av(this); // Put this after setting fPurging so we're allowed to be over budget.
-
do {
fNewlyPurgableResourceWhilePurging = false;
ResourceList::Iter resourceIter;
@@ -387,6 +380,7 @@
}
} while (fNewlyPurgableResourceWhilePurging);
fPurging = false;
+ this->validate();
}
#ifdef SK_DEBUG