diff options
author | Robert Phillips <robertphillips@google.com> | 2016-11-03 10:19:14 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2016-11-03 16:44:50 +0000 |
commit | 29e52f13f632c701bd33d802701f5ff29a567eea (patch) | |
tree | 15678f2a2076a706f5d25dd4f898616676e3f898 /src/gpu/gl/GrGLRenderTarget.cpp | |
parent | d851795e7992565c1eb2b9474ee5ad01d1a01fad (diff) |
Centralize computation of GrRenderTarget & GrTexture VRAM consumption
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4310
Change-Id: I676749ecf1e489f825799b619a15a45fc7dcd219
Reviewed-on: https://skia-review.googlesource.com/4310
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'src/gpu/gl/GrGLRenderTarget.cpp')
-rw-r--r-- | src/gpu/gl/GrGLRenderTarget.cpp | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/src/gpu/gl/GrGLRenderTarget.cpp b/src/gpu/gl/GrGLRenderTarget.cpp index 65366bd380..2f92e0a82d 100644 --- a/src/gpu/gl/GrGLRenderTarget.cpp +++ b/src/gpu/gl/GrGLRenderTarget.cpp @@ -59,9 +59,7 @@ void GrGLRenderTarget::init(const GrSurfaceDesc& desc, const IDDesc& idDesc) { fViewport.fWidth = desc.fWidth; fViewport.fHeight = desc.fHeight; - fGpuMemorySize = this->totalSamples() * this->totalBytesPerSample(); - - SkASSERT(fGpuMemorySize <= WorstCaseSize(desc)); + fNumSamplesOwnedPerPixel = this->totalSamples(); } sk_sp<GrGLRenderTarget> GrGLRenderTarget::MakeWrapped(GrGLGpu* gpu, @@ -84,7 +82,7 @@ sk_sp<GrGLRenderTarget> GrGLRenderTarget::MakeWrapped(GrGLGpu* gpu, } size_t GrGLRenderTarget::onGpuMemorySize() const { - return fGpuMemorySize; + return GrRenderTarget::ComputeSize(fDesc, fNumSamplesOwnedPerPixel); } bool GrGLRenderTarget::completeStencilAttachment() { @@ -185,7 +183,7 @@ void GrGLRenderTarget::dumpMemoryStatistics(SkTraceMemoryDump* traceMemoryDump) // Log any renderbuffer's contribution to memory. We only do this if we own the renderbuffer // (have a fMSColorRenderbufferID). if (fMSColorRenderbufferID) { - size_t size = this->msaaSamples() * this->totalBytesPerSample(); + size_t size = GrRenderTarget::ComputeSize(fDesc, this->msaaSamples()); // Due to this resource having both a texture and a renderbuffer component, dump as // skia/gpu_resources/resource_#/renderbuffer @@ -206,15 +204,6 @@ void GrGLRenderTarget::dumpMemoryStatistics(SkTraceMemoryDump* traceMemoryDump) } } -size_t GrGLRenderTarget::totalBytesPerSample() const { - SkASSERT(kUnknown_GrPixelConfig != fDesc.fConfig); - SkASSERT(!GrPixelConfigIsCompressed(fDesc.fConfig)); - size_t colorBytes = GrBytesPerPixel(fDesc.fConfig); - SkASSERT(colorBytes > 0); - - return fDesc.fWidth * fDesc.fHeight * colorBytes; -} - int GrGLRenderTarget::msaaSamples() const { if (fTexFBOID == kUnresolvableFBOID || fTexFBOID != fRTFBOID) { // If the render target's FBO is external (fTexFBOID == kUnresolvableFBOID), or if we own |