diff options
author | Derek Sollenberger <djsollen@google.com> | 2018-03-29 14:18:44 -0400 |
---|---|---|
committer | Derek Sollenberger <djsollen@google.com> | 2018-04-02 15:37:06 -0400 |
commit | 0057db22febd44f16e83fdc521782952055d09ad (patch) | |
tree | 756c2be99954507d76b6da3a2ba7f116bf4edce0 /libs/hwui/renderthread/CacheManager.cpp | |
parent | 3f6b7714a7afd826c2e66d1baf747469145f8d77 (diff) |
Print detailed memory usage of Skia for dumpsys gfxinfo
Bug: 74435803
Test: adb shell dumpsys gfxinfo [package_name]
Change-Id: I1f2bcab500fb47c5e0b50c7459d4a876b063916b
Diffstat (limited to 'libs/hwui/renderthread/CacheManager.cpp')
-rw-r--r-- | libs/hwui/renderthread/CacheManager.cpp | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/libs/hwui/renderthread/CacheManager.cpp b/libs/hwui/renderthread/CacheManager.cpp index 907f2d2d398f..32d4c77c5fc3 100644 --- a/libs/hwui/renderthread/CacheManager.cpp +++ b/libs/hwui/renderthread/CacheManager.cpp @@ -20,10 +20,12 @@ #include "Properties.h" #include "RenderThread.h" #include "pipeline/skia/ShaderCache.h" +#include "pipeline/skia/SkiaMemoryTracer.h" #include "renderstate/RenderState.h" #include <GrContextOptions.h> #include <SkExecutor.h> +#include <SkGraphics.h> #include <gui/Surface.h> #include <math.h> #include <set> @@ -178,12 +180,29 @@ void CacheManager::dumpMemoryUsage(String8& log, const RenderState* renderState) return; } - size_t bytesCached; - mGrContext->getResourceCacheUsage(nullptr, &bytesCached); + log.appendFormat("Font Cache (CPU):\n"); + log.appendFormat(" Size: %.2f kB \n", SkGraphics::GetFontCacheUsed() / 1024.0f); + log.appendFormat(" Glyph Count: %d \n", SkGraphics::GetFontCacheCountUsed()); - log.appendFormat("Caches:\n"); + log.appendFormat("CPU Caches:\n"); + 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"}, + }; + skiapipeline::SkiaMemoryTracer cpuTracer(cpuResourceMap, false); + SkGraphics::DumpMemoryStatistics(&cpuTracer); + cpuTracer.logOutput(log); + + log.appendFormat("GPU Caches:\n"); + skiapipeline::SkiaMemoryTracer gpuTracer("category", true); + mGrContext->dumpMemoryStatistics(&gpuTracer); + gpuTracer.logOutput(log); + + log.appendFormat("Other Caches:\n"); log.appendFormat(" Current / Maximum\n"); - log.appendFormat(" VectorDrawableAtlas %6.2f kB / %6.2f kB (entries = %zu)\n", 0.0f, 0.0f, + log.appendFormat(" VectorDrawableAtlas %6.2f kB / %6.2f KB (entries = %zu)\n", 0.0f, 0.0f, (size_t)0); if (renderState) { @@ -200,14 +219,12 @@ void CacheManager::dumpMemoryUsage(String8& log, const RenderState* renderState) layer->getHeight()); layerMemoryTotal += layer->getWidth() * layer->getHeight() * 4; } - log.appendFormat(" Layers Total %6.2f kB (numLayers = %zu)\n", + log.appendFormat(" Layers Total %6.2f KB (numLayers = %zu)\n", layerMemoryTotal / 1024.0f, renderState->mActiveLayers.size()); } - log.appendFormat("Total memory usage:\n"); - log.appendFormat(" %zu bytes, %.2f MB (%.2f MB is purgeable)\n", bytesCached, - bytesCached / 1024.0f / 1024.0f, - mGrContext->getResourceCachePurgeableBytes() / 1024.0f / 1024.0f); + log.appendFormat("Total GPU memory usage:\n"); + gpuTracer.logTotals(log); } } /* namespace renderthread */ |