Chromium Code Reviews| Index: gpu/command_buffer/service/texture_manager.cc |
| diff --git a/gpu/command_buffer/service/texture_manager.cc b/gpu/command_buffer/service/texture_manager.cc |
| index ed0fd10e5b1e6e1ae96fc5b0316d0be8b10290fb..c3c625e883b8703f50abec848c184a70aee5885f 100644 |
| --- a/gpu/command_buffer/service/texture_manager.cc |
| +++ b/gpu/command_buffer/service/texture_manager.cc |
| @@ -1294,6 +1294,23 @@ void Texture::OnDidModifyPixels() { |
| image->DidModifyTexImage(); |
| } |
| +void Texture::DumpImageMemory(base::trace_event::ProcessMemoryDump* pmd, |
| + MemoryTracker* memory_tracker, |
| + const std::string& dump_name) const { |
|
ericrk
2015/08/18 07:39:52
David, I remember you mentioning that we never had
ericrk
2015/08/18 09:00:47
Per offline discussion, not changing this.
|
| + for (uint32_t face_index = 0; face_index < face_infos_.size(); ++face_index) { |
| + const auto& level_infos = face_infos_[face_index].level_infos; |
| + for (uint32_t level_index = 0; level_index < level_infos.size(); |
| + ++level_index) { |
| + if (level_infos[level_index].image) { |
| + level_infos[level_index].image->OnMemoryDump( |
| + pmd, memory_tracker->ClientTracingId(), |
| + base::StringPrintf("%s/face_%d/level_%d", dump_name.c_str(), |
| + face_index, level_index)); |
| + } |
| + } |
| + } |
| +} |
| + |
| TextureRef::TextureRef(TextureManager* manager, |
| GLuint client_id, |
| Texture* texture) |
| @@ -2061,10 +2078,6 @@ bool TextureManager::OnMemoryDump(const base::trace_event::MemoryDumpArgs& args, |
| void TextureManager::DumpTextureRef(base::trace_event::ProcessMemoryDump* pmd, |
| TextureRef* ref) { |
| - // TODO(ericrk): Trace image-backed textures. crbug.com/514914 |
| - if (ref->texture()->HasImages()) |
| - return; |
| - |
| uint32_t size = ref->texture()->estimated_size(); |
| // Ignore unallocated texture IDs. |
| @@ -2074,6 +2087,12 @@ void TextureManager::DumpTextureRef(base::trace_event::ProcessMemoryDump* pmd, |
| std::string dump_name = |
| base::StringPrintf("gl/textures/client_%d/texture_%d", |
| memory_tracker_->ClientId(), ref->client_id()); |
| + |
| + if (ref->texture()->HasImages()) { |
|
reveman
2015/08/18 08:32:52
refactor this as discussed
ericrk
2015/08/18 09:00:47
Done.
|
| + ref->texture()->DumpImageMemory(pmd, memory_tracker_, dump_name); |
| + return; |
| + } |
| + |
| base::trace_event::MemoryAllocatorDump* dump = |
| pmd->CreateAllocatorDump(dump_name); |
| dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize, |