Index: src/gpu/GrGpuResource.cpp |
diff --git a/src/gpu/GrGpuResource.cpp b/src/gpu/GrGpuResource.cpp |
index 49212df416d8d639b143e7580fd9f507d33e2395..0c7296b76cec790196cdee1ec4924cf4e6c1ef7c 100644 |
--- a/src/gpu/GrGpuResource.cpp |
+++ b/src/gpu/GrGpuResource.cpp |
@@ -11,6 +11,7 @@ |
#include "GrResourceCache.h" |
#include "GrGpu.h" |
#include "GrGpuResourcePriv.h" |
+#include "SkTraceMemoryDump.h" |
static inline GrResourceCache* get_resource_cache(GrGpu* gpu) { |
SkASSERT(gpu); |
@@ -52,6 +53,23 @@ void GrGpuResource::abandon() { |
fGpuMemorySize = 0; |
} |
+void GrGpuResource::onMemoryDump(SkTraceMemoryDump* traceMemoryDump) const { |
+ // Dump resource as "skia/gpu_resources/resource_#". |
+ SkString dumpName("skia/gpu_resources/resource_"); |
+ dumpName.appendS32(this->getUniqueID()); |
+ |
+ traceMemoryDump->dumpNumericValue(dumpName.c_str(), "size", "bytes", this->gpuMemorySize()); |
+ |
+ if (this->isPurgeable()) { |
+ traceMemoryDump->dumpNumericValue(dumpName.c_str(), "purgeable_size", "bytes", |
+ this->gpuMemorySize()); |
+ } |
+ |
+ // Call setMemoryBacking to allow sub-classes with implementation specific backings (such as GL |
+ // objects) to provide additional information. |
+ setMemoryBacking(traceMemoryDump, dumpName); |
bsalomon
2015/08/26 16:36:00
this->
ericrk
2015/08/26 17:01:09
yup.
|
+} |
+ |
const SkData* GrGpuResource::setCustomData(const SkData* data) { |
SkSafeRef(data); |
fData.reset(data); |