Add an extension for querying esimated GPU memory size of resources.
BUG=892288
Change-Id: I56fc3ab00c06d711e1a21eb1ad4b2224126730dc
Reviewed-on: https://chromium-review.googlesource.com/c/1262021
Reviewed-by: Yuly Novikov <ynovikov@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/queryutils.cpp b/src/libANGLE/queryutils.cpp
index 4f606b4..d315329 100644
--- a/src/libANGLE/queryutils.cpp
+++ b/src/libANGLE/queryutils.cpp
@@ -111,6 +111,10 @@
case GL_TEXTURE_COMPRESSED:
*params = CastFromStateValue<ParamType>(pname, static_cast<GLint>(info->compressed));
break;
+ case GL_MEMORY_SIZE_ANGLE:
+ *params =
+ CastFromStateValue<ParamType>(pname, texture->getLevelMemorySize(target, level));
+ break;
default:
UNREACHABLE();
break;
@@ -200,6 +204,9 @@
case GL_GENERATE_MIPMAP:
*params = CastFromGLintStateValue<ParamType>(pname, texture->getGenerateMipmapHint());
break;
+ case GL_MEMORY_SIZE_ANGLE:
+ *params = CastFromStateValue<ParamType>(pname, texture->getMemorySize());
+ break;
default:
UNREACHABLE();
break;
@@ -461,6 +468,9 @@
case GL_BUFFER_MAP_LENGTH:
*params = CastFromStateValue<ParamType>(pname, buffer->getMapLength());
break;
+ case GL_MEMORY_SIZE_ANGLE:
+ *params = CastFromStateValue<ParamType>(pname, buffer->getMemorySize());
+ break;
default:
UNREACHABLE();
break;
@@ -1154,6 +1164,9 @@
case GL_RENDERBUFFER_SAMPLES_ANGLE:
*params = renderbuffer->getSamples();
break;
+ case GL_MEMORY_SIZE_ANGLE:
+ *params = renderbuffer->getMemorySize();
+ break;
default:
UNREACHABLE();
break;