diff options
author | Brian Orr <brianorr@google.com> | 2021-06-15 12:47:53 -0700 |
---|---|---|
committer | Daniel Norman <danielnorman@google.com> | 2021-06-17 13:37:54 -0700 |
commit | 71c831703ae59baf47e0afe611fecd714c481cdf (patch) | |
tree | 06731a987032723085b9e1a65951cf96abbc19cf /libs/hwui/renderthread/CacheManager.cpp | |
parent | 065c9e9a6e9d61d4383a91721eb56a3de253bdbe (diff) | |
parent | 81833820d54b9a6b27894f9f8dfd72222d416992 (diff) |
Merge SP1A.210604.001
Change-Id: I5200ee05285ae422d5e9c1c00f45709a5d6188be
Diffstat (limited to 'libs/hwui/renderthread/CacheManager.cpp')
-rw-r--r-- | libs/hwui/renderthread/CacheManager.cpp | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/libs/hwui/renderthread/CacheManager.cpp b/libs/hwui/renderthread/CacheManager.cpp index 5047be979e41..46e806081c0c 100644 --- a/libs/hwui/renderthread/CacheManager.cpp +++ b/libs/hwui/renderthread/CacheManager.cpp @@ -130,27 +130,43 @@ void CacheManager::trimStaleResources() { mGrContext->purgeResourcesNotUsedInMs(std::chrono::seconds(30)); } +void CacheManager::getMemoryUsage(size_t* cpuUsage, size_t* gpuUsage) { + *cpuUsage = 0; + *gpuUsage = 0; + if (!mGrContext) { + return; + } + + skiapipeline::SkiaMemoryTracer cpuTracer("category", true); + SkGraphics::DumpMemoryStatistics(&cpuTracer); + *cpuUsage += cpuTracer.total(); + + skiapipeline::SkiaMemoryTracer gpuTracer("category", true); + mGrContext->dumpMemoryStatistics(&gpuTracer); + *gpuUsage += gpuTracer.total(); +} + void CacheManager::dumpMemoryUsage(String8& log, const RenderState* renderState) { if (!mGrContext) { log.appendFormat("No valid cache instance.\n"); return; } - log.appendFormat("Font Cache (CPU):\n"); - log.appendFormat(" Size: %.2f kB \n", SkGraphics::GetFontCacheUsed() / 1024.0f); - log.appendFormat(" Glyph Count: %d \n", SkGraphics::GetFontCacheCountUsed()); - std::vector<skiapipeline::ResourcePair> cpuResourceMap = { {"skia/sk_resource_cache/bitmap_", "Bitmaps"}, {"skia/sk_resource_cache/rrect-blur_", "Masks"}, {"skia/sk_resource_cache/rects-blur_", "Masks"}, {"skia/sk_resource_cache/tessellated", "Shadows"}, + {"skia/sk_glyph_cache", "Glyph Cache"}, }; skiapipeline::SkiaMemoryTracer cpuTracer(cpuResourceMap, false); SkGraphics::DumpMemoryStatistics(&cpuTracer); if (cpuTracer.hasOutput()) { log.appendFormat("CPU Caches:\n"); cpuTracer.logOutput(log); + log.appendFormat(" Glyph Count: %d \n", SkGraphics::GetFontCacheCountUsed()); + log.appendFormat("Total CPU memory usage:\n"); + cpuTracer.logTotals(log); } skiapipeline::SkiaMemoryTracer gpuTracer("category", true); |