diff options
Diffstat (limited to 'src/gpu/GrResourceCache.h')
-rw-r--r-- | src/gpu/GrResourceCache.h | 47 |
1 files changed, 46 insertions, 1 deletions
diff --git a/src/gpu/GrResourceCache.h b/src/gpu/GrResourceCache.h index 2412174121..ed2affeae3 100644 --- a/src/gpu/GrResourceCache.h +++ b/src/gpu/GrResourceCache.h @@ -182,7 +182,52 @@ public: void notifyFlushOccurred(); -#if GR_GPU_STATS +#if GR_CACHE_STATS + struct Stats { + int fTotal; + int fNumPurgeable; + int fNumNonPurgeable; + + int fScratch; + int fExternal; + int fBorrowed; + int fAdopted; + size_t fUnbudgetedSize; + + Stats() { this->reset(); } + + void reset() { + fTotal = 0; + fNumPurgeable = 0; + fNumNonPurgeable = 0; + 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 getStats(Stats*) const; + void dumpStats(SkString*) const; #endif |