Wire up resource cache stats dumping in nanobench

TBR=bsalomon@google.com
BUG=skia:

Review URL: https://codereview.chromium.org/1495543003
This commit is contained in:
joshualitt 2015-12-02 14:08:25 -08:00 committed by Commit bot
parent 7384d07855
commit dc5685ac37
4 changed files with 29 additions and 1 deletions

View File

@ -167,6 +167,7 @@ static void draw_pic_for_stats(SkCanvas* canvas, GrContext* context, const SkPic
int offset = keys->count();
context->dumpGpuStatsKeyValuePairs(keys, values);
context->dumpCacheStatsKeyValuePairs(keys, values);
// append tag, but only to new tags
for (int i = offset; i < keys->count(); i++, offset++) {

View File

@ -335,11 +335,12 @@ public:
/** Prints cache stats to the string if GR_CACHE_STATS == 1. */
void dumpCacheStats(SkString*) const;
void dumpCacheStatsKeyValuePairs(SkTArray<SkString>* keys, SkTArray<double>* values) const;
void printCacheStats() const;
/** Prints GPU stats to the string if GR_GPU_STATS == 1. */
void dumpGpuStats(SkString*) const;
void dumpGpuStatsKeyValuePairs(SkTArray<SkString>* names, SkTArray<double>* values) const;
void dumpGpuStatsKeyValuePairs(SkTArray<SkString>* keys, SkTArray<double>* values) const;
void printGpuStats() const;
/** Specify the TextBlob cache limit. If the current cache exceeds this limit it will purge.

View File

@ -229,6 +229,8 @@ public:
void getStats(Stats*) const;
void dumpStats(SkString*) const;
void dumpStatsKeyValuePairs(SkTArray<SkString>* keys, SkTArray<double>* value) const;
#endif
// This function is for unit testing and is only defined in test tools.

View File

@ -105,6 +105,13 @@ void GrContext::dumpCacheStats(SkString* out) const {
#endif
}
void GrContext::dumpCacheStatsKeyValuePairs(SkTArray<SkString>* keys,
SkTArray<double>* values) const {
#if GR_CACHE_STATS
fResourceCache->dumpStatsKeyValuePairs(keys, values);
#endif
}
void GrContext::printCacheStats() const {
SkString out;
this->dumpCacheStats(&out);
@ -217,6 +224,23 @@ void GrResourceCache::dumpStats(SkString* out) const {
SkToInt(stats.fUnbudgetedSize), SkToInt(fHighWaterBytes));
}
void GrResourceCache::dumpStatsKeyValuePairs(SkTArray<SkString>* keys,
SkTArray<double>* values) const {
this->validate();
Stats stats;
this->getStats(&stats);
keys->push_back(SkString("gpu_cache_total_entries")); values->push_back(stats.fTotal);
keys->push_back(SkString("gpu_cache_external_entries")); values->push_back(stats.fExternal);
keys->push_back(SkString("gpu_cache_borrowed_entries")); values->push_back(stats.fBorrowed);
keys->push_back(SkString("gpu_cache_adopted_entries")); values->push_back(stats.fAdopted);
keys->push_back(SkString("gpu_cache_purgable_entries")); values->push_back(stats.fNumPurgeable);
keys->push_back(SkString("gpu_cache_non_purgable_entries")); values->push_back(stats.fNumNonPurgeable);
keys->push_back(SkString("gpu_cache_scratch_entries")); values->push_back(stats.fScratch);
keys->push_back(SkString("gpu_cache_unbudgeted_size")); values->push_back((double)stats.fUnbudgetedSize);
}
#endif
///////////////////////////////////////////////////////////////////////////////