diff --git a/src/gpu/vk/GrVkTexture.cpp b/src/gpu/vk/GrVkTexture.cpp index ed1c52abb9a6226a5d6678210bdbff8c79eeeab1..ac55fda89aec99728f7dd9c889896c7330f388a8 100644 --- a/src/gpu/vk/GrVkTexture.cpp +++ b/src/gpu/vk/GrVkTexture.cpp @@ -179,3 +179,11 @@ void GrVkTexture::addDescriptorSetToCache(const GrVkDescriptorSet* descSet, GrSa descSet->ref(); fDescSetCache.insert(state, std::make_unique(descSet, this->getVkGpu())); } + +void GrVkTexture::dumpMemoryStatistics(SkTraceMemoryDump* traceMemoryDump) const { + size_t size = GrSurface::ComputeSize(this->backendFormat(), this->dimensions(), 1, + this->mipmapped()); + SkString resourceName = this->getResourceName(); + resourceName.append("/texture"); + this->dumpMemoryStatisticsPriv(traceMemoryDump, resourceName, "Texture", size); +} diff --git a/src/gpu/vk/GrVkTexture.h b/src/gpu/vk/GrVkTexture.h index cbae00e4cfc8143fcd095be4babcb29ad0750ce8..bfb0b09d6d73f4da3254274c92a2772a79ee6abc 100644 --- a/src/gpu/vk/GrVkTexture.h +++ b/src/gpu/vk/GrVkTexture.h @@ -57,6 +57,8 @@ public: void addDescriptorSetToCache(const GrVkDescriptorSet*, GrSamplerState); + void dumpMemoryStatistics(SkTraceMemoryDump* traceMemoryDump) const override; + protected: GrVkTexture(GrVkGpu*, SkISize dimensions, diff --git a/src/gpu/vk/GrVkTextureRenderTarget.cpp b/src/gpu/vk/GrVkTextureRenderTarget.cpp index b05af936adb0d0aea405a055712b00fc90379e30..b1e12f61028cc679faf68995c28db42251495b39 100644 --- a/src/gpu/vk/GrVkTextureRenderTarget.cpp +++ b/src/gpu/vk/GrVkTextureRenderTarget.cpp @@ -174,3 +174,10 @@ size_t GrVkTextureRenderTarget::onGpuMemorySize() const { return GrSurface::ComputeSize(this->backendFormat(), this->dimensions(), 1 /*colorSamplesPerPixel*/, this->mipmapped()); } + +void GrVkTextureRenderTarget::dumpMemoryStatistics(SkTraceMemoryDump* traceMemoryDump) const { + SkString resourceName = this->getResourceName(); + resourceName.append("/texture_renderbuffer"); + this->dumpMemoryStatisticsPriv(traceMemoryDump, resourceName, "RenderTarget", + this->gpuMemorySize()); +} \ No newline at end of file diff --git a/src/gpu/vk/GrVkTextureRenderTarget.h b/src/gpu/vk/GrVkTextureRenderTarget.h index d089d441848181925a691c101446865d7416e093..90b36588e432a20d10862c1920a9978d5ac96991 100644 --- a/src/gpu/vk/GrVkTextureRenderTarget.h +++ b/src/gpu/vk/GrVkTextureRenderTarget.h @@ -47,6 +47,8 @@ public: GrBackendFormat backendFormat() const override { return GrVkTexture::backendFormat(); } + void dumpMemoryStatistics(SkTraceMemoryDump* traceMemoryDump) const override; + protected: void onAbandon() override { // In order to correctly handle calling texture idle procs, GrVkTexture must go first.