diff options
Diffstat (limited to 'src/gpu/GrGpuResource.cpp')
-rw-r--r-- | src/gpu/GrGpuResource.cpp | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/src/gpu/GrGpuResource.cpp b/src/gpu/GrGpuResource.cpp index d90498d6f4..ec7113562b 100644 --- a/src/gpu/GrGpuResource.cpp +++ b/src/gpu/GrGpuResource.cpp @@ -73,20 +73,33 @@ void GrGpuResource::dumpMemoryStatistics(SkTraceMemoryDump* traceMemoryDump) con return; } - // Dump resource as "skia/gpu_resources/resource_#". - SkString dumpName("skia/gpu_resources/resource_"); - dumpName.appendU32(this->uniqueID().asUInt()); + this->dumpMemoryStatisticsPriv(traceMemoryDump, this->getResourceName(), + this->getResourceType(), this->gpuMemorySize()); +} - traceMemoryDump->dumpNumericValue(dumpName.c_str(), "size", "bytes", this->gpuMemorySize()); +void GrGpuResource::dumpMemoryStatisticsPriv(SkTraceMemoryDump* traceMemoryDump, + const SkString& resourceName, + const char* type, size_t size) const { + const char* tag = "Scratch"; + if (fUniqueKey.isValid()) { + tag = (fUniqueKey.tag() != nullptr) ? fUniqueKey.tag() : "Other"; + } + traceMemoryDump->dumpNumericValue(resourceName.c_str(), "size", "bytes", size); + traceMemoryDump->dumpStringValue(resourceName.c_str(), "type", type); + traceMemoryDump->dumpStringValue(resourceName.c_str(), "category", tag); if (this->isPurgeable()) { - traceMemoryDump->dumpNumericValue(dumpName.c_str(), "purgeable_size", "bytes", - this->gpuMemorySize()); + traceMemoryDump->dumpNumericValue(resourceName.c_str(), "purgeable_size", "bytes", size); } - // Call setMemoryBacking to allow sub-classes with implementation specific backings (such as GL - // objects) to provide additional information. - this->setMemoryBacking(traceMemoryDump, dumpName); + this->setMemoryBacking(traceMemoryDump, resourceName); +} + +SkString GrGpuResource::getResourceName() const { + // Dump resource as "skia/gpu_resources/resource_#". + SkString resourceName("skia/gpu_resources/resource_"); + resourceName.appendU32(this->uniqueID().asUInt()); + return resourceName; } const GrContext* GrGpuResource::getContext() const { |