| Index: src/gpu/GrTest.cpp
|
| diff --git a/src/gpu/GrTest.cpp b/src/gpu/GrTest.cpp
|
| index 7a44942a16216f253a65154e072c92b1dfbb1037..2889e9709e08661c8b6b8d39b0c5f77ac7fa0c87 100644
|
| --- a/src/gpu/GrTest.cpp
|
| +++ b/src/gpu/GrTest.cpp
|
| @@ -140,47 +140,27 @@ void GrGpu::Stats::dump(SkString* out) {
|
| #endif
|
|
|
| #if GR_CACHE_STATS
|
| -void GrResourceCache::dumpStats(SkString* out) const {
|
| - this->validate();
|
| -
|
| - int locked = fNonpurgeableResources.count();
|
| -
|
| - struct Stats {
|
| - int fScratch;
|
| - int fExternal;
|
| - int fBorrowed;
|
| - int fAdopted;
|
| - size_t fUnbudgetedSize;
|
| -
|
| - Stats() : fScratch(0), fExternal(0), fBorrowed(0), fAdopted(0), fUnbudgetedSize(0) {}
|
| -
|
| - void update(GrGpuResource* resource) {
|
| - if (resource->cacheAccess().isScratch()) {
|
| - ++fScratch;
|
| - }
|
| - if (resource->cacheAccess().isExternal()) {
|
| - ++fExternal;
|
| - }
|
| - if (resource->cacheAccess().isBorrowed()) {
|
| - ++fBorrowed;
|
| - }
|
| - if (resource->cacheAccess().isAdopted()) {
|
| - ++fAdopted;
|
| - }
|
| - if (!resource->resourcePriv().isBudgeted()) {
|
| - fUnbudgetedSize += resource->gpuMemorySize();
|
| - }
|
| - }
|
| - };
|
| +void GrResourceCache::getStats(Stats* stats) const {
|
| + stats->reset();
|
|
|
| - Stats stats;
|
| + stats->fTotal = this->getResourceCount();
|
| + stats->fNumNonPurgeable = fNonpurgeableResources.count();
|
| + stats->fNumPurgeable = fPurgeableQueue.count();
|
|
|
| for (int i = 0; i < fNonpurgeableResources.count(); ++i) {
|
| - stats.update(fNonpurgeableResources[i]);
|
| + stats->update(fNonpurgeableResources[i]);
|
| }
|
| for (int i = 0; i < fPurgeableQueue.count(); ++i) {
|
| - stats.update(fPurgeableQueue.at(i));
|
| + stats->update(fPurgeableQueue.at(i));
|
| }
|
| +}
|
| +
|
| +void GrResourceCache::dumpStats(SkString* out) const {
|
| + this->validate();
|
| +
|
| + Stats stats;
|
| +
|
| + this->getStats(&stats);
|
|
|
| float countUtilization = (100.f * fBudgetedCount) / fMaxCount;
|
| float byteUtilization = (100.f * fBudgetedBytes) / fMaxBytes;
|
| @@ -188,8 +168,9 @@ void GrResourceCache::dumpStats(SkString* out) const {
|
| out->appendf("Budget: %d items %d bytes\n", fMaxCount, (int)fMaxBytes);
|
| out->appendf("\t\tEntry Count: current %d"
|
| " (%d budgeted, %d external(%d borrowed, %d adopted), %d locked, %d scratch %.2g%% full), high %d\n",
|
| - this->getResourceCount(), fBudgetedCount, stats.fExternal, stats.fBorrowed,
|
| - stats.fAdopted, locked, stats.fScratch, countUtilization, fHighWaterCount);
|
| + stats.fTotal, fBudgetedCount, stats.fExternal, stats.fBorrowed,
|
| + stats.fAdopted, stats.fNumNonPurgeable, stats.fScratch, countUtilization,
|
| + fHighWaterCount);
|
| out->appendf("\t\tEntry Bytes: current %d (budgeted %d, %.2g%% full, %d unbudgeted) high %d\n",
|
| SkToInt(fBytes), SkToInt(fBudgetedBytes), byteUtilization,
|
| SkToInt(stats.fUnbudgetedSize), SkToInt(fHighWaterBytes));
|
|
|