12880df2609eba09b555ca37be04b6ad89290c765Tom Hudson/* 22880df2609eba09b555ca37be04b6ad89290c765Tom Hudson * Copyright 2015 Google Inc. 32880df2609eba09b555ca37be04b6ad89290c765Tom Hudson * 42880df2609eba09b555ca37be04b6ad89290c765Tom Hudson * Use of this source code is governed by a BSD-style license that can be 52880df2609eba09b555ca37be04b6ad89290c765Tom Hudson * found in the LICENSE file. 62880df2609eba09b555ca37be04b6ad89290c765Tom Hudson */ 72880df2609eba09b555ca37be04b6ad89290c765Tom Hudson 82880df2609eba09b555ca37be04b6ad89290c765Tom Hudson#include "GrGLTextureRenderTarget.h" 92880df2609eba09b555ca37be04b6ad89290c765Tom Hudson 102880df2609eba09b555ca37be04b6ad89290c765Tom Hudson#include "SkTraceMemoryDump.h" 112880df2609eba09b555ca37be04b6ad89290c765Tom Hudson 122880df2609eba09b555ca37be04b6ad89290c765Tom Hudson// GrGLTextureRenderTarget must dump both of its superclasses. 132880df2609eba09b555ca37be04b6ad89290c765Tom Hudsonvoid GrGLTextureRenderTarget::dumpMemoryStatistics( 142880df2609eba09b555ca37be04b6ad89290c765Tom Hudson SkTraceMemoryDump* traceMemoryDump) const { 152880df2609eba09b555ca37be04b6ad89290c765Tom Hudson GrGLRenderTarget::dumpMemoryStatistics(traceMemoryDump); 162880df2609eba09b555ca37be04b6ad89290c765Tom Hudson 172880df2609eba09b555ca37be04b6ad89290c765Tom Hudson // Also dump the GrGLTexture's memory. Due to this resource having both a 182880df2609eba09b555ca37be04b6ad89290c765Tom Hudson // texture and a 192880df2609eba09b555ca37be04b6ad89290c765Tom Hudson // renderbuffer component, dump as skia/gpu_resources/resource_#/texture 202880df2609eba09b555ca37be04b6ad89290c765Tom Hudson SkString dumpName("skia/gpu_resources/resource_"); 212880df2609eba09b555ca37be04b6ad89290c765Tom Hudson dumpName.appendS32(this->getUniqueID()); 222880df2609eba09b555ca37be04b6ad89290c765Tom Hudson dumpName.append("/texture"); 232880df2609eba09b555ca37be04b6ad89290c765Tom Hudson 242880df2609eba09b555ca37be04b6ad89290c765Tom Hudson // Use the texture's gpuMemorySize, not our own, which includes the 252880df2609eba09b555ca37be04b6ad89290c765Tom Hudson // renderbuffer as well. 262880df2609eba09b555ca37be04b6ad89290c765Tom Hudson size_t size = GrGLTexture::gpuMemorySize(); 272880df2609eba09b555ca37be04b6ad89290c765Tom Hudson 282880df2609eba09b555ca37be04b6ad89290c765Tom Hudson traceMemoryDump->dumpNumericValue(dumpName.c_str(), "size", "bytes", size); 292880df2609eba09b555ca37be04b6ad89290c765Tom Hudson 302880df2609eba09b555ca37be04b6ad89290c765Tom Hudson if (this->isPurgeable()) { 312880df2609eba09b555ca37be04b6ad89290c765Tom Hudson traceMemoryDump->dumpNumericValue(dumpName.c_str(), "purgeable_size", 322880df2609eba09b555ca37be04b6ad89290c765Tom Hudson "bytes", size); 332880df2609eba09b555ca37be04b6ad89290c765Tom Hudson } 342880df2609eba09b555ca37be04b6ad89290c765Tom Hudson 352880df2609eba09b555ca37be04b6ad89290c765Tom Hudson SkString texture_id; 362880df2609eba09b555ca37be04b6ad89290c765Tom Hudson texture_id.appendU32(this->textureID()); 372880df2609eba09b555ca37be04b6ad89290c765Tom Hudson traceMemoryDump->setMemoryBacking(dumpName.c_str(), "gl_texture", 382880df2609eba09b555ca37be04b6ad89290c765Tom Hudson texture_id.c_str()); 392880df2609eba09b555ca37be04b6ad89290c765Tom Hudson} 40