Backport Canvas memory stats fix from 12.0.

Fixes #1642
This commit is contained in:
Alex Szpakowski
2020-11-11 15:11:00 -04:00
parent f519d2e2df
commit e32935e0f6
+10 -4
View File
@@ -287,12 +287,18 @@ bool Canvas::loadVolatile()
if (!isReadable() || actualSamples > 0)
createRenderbuffer(pixelWidth, pixelHeight, actualSamples, format, renderbuffer);
int64 memsize = getPixelFormatSize(format) * pixelWidth * pixelHeight;
if (getMipmapCount() > 1)
memsize *= 1.33334;
int64 memsize = 0;
for (int mip = 0; mip < getMipmapCount(); mip++)
{
int w = getPixelWidth(mip);
int h = getPixelHeight(mip);
int slices = getDepth(mip) * layers * (texType == TEXTURE_CUBE ? 6 : 1);
memsize += getPixelFormatSize(format) * w * h * slices;
}
if (actualSamples > 1 && isReadable())
memsize += getPixelFormatSize(format) * pixelWidth * pixelHeight * actualSamples;
memsize += memsize * actualSamples;
else if (actualSamples > 1)
memsize *= actualSamples;