Fix the incorrect calculation for MAX_NAME_LENGTH
The old implementation forgot to consider the instance array situation.
This change will use unified method to calculate the interface block's
MAX_NAME_LENGTH. It also removes some cases which have already passed
from expectation files.
BUG=angleproject:1920
TEST=angle_end2end_tests
*program_interface_query.uniform_block.resource_list.block_array*
*program_interface_query.shader_storage_block.resource_list.block_array*
Change-Id: I6ef53951487e6366d69ecaa43e4df6824baad042
Reviewed-on: https://chromium-review.googlesource.com/890386
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/libANGLE/queryutils.cpp b/src/libANGLE/queryutils.cpp
index eb97859..c9d75ce 100644
--- a/src/libANGLE/queryutils.cpp
+++ b/src/libANGLE/queryutils.cpp
@@ -598,9 +598,7 @@
break;
case GL_UNIFORM_BLOCK:
- maxNameLength =
- FindMaxSize(program->getState().getUniformBlocks(), &InterfaceBlock::name);
- break;
+ return program->getActiveUniformBlockMaxNameLength();
case GL_BUFFER_VARIABLE:
maxNameLength =
@@ -608,13 +606,10 @@
break;
case GL_SHADER_STORAGE_BLOCK:
- maxNameLength =
- FindMaxSize(program->getState().getShaderStorageBlocks(), &InterfaceBlock::name);
- break;
+ return program->getActiveShaderStorageBlockMaxNameLength();
case GL_TRANSFORM_FEEDBACK_VARYING:
- maxNameLength = clampCast<GLint>(program->getTransformFeedbackVaryingMaxLength() - 1);
- break;
+ return clampCast<GLint>(program->getTransformFeedbackVaryingMaxLength());
default:
UNREACHABLE();
@@ -981,7 +976,7 @@
*params = program->getActiveUniformBlockCount();
return;
case GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH:
- *params = program->getActiveUniformBlockMaxLength();
+ *params = program->getActiveUniformBlockMaxNameLength();
break;
case GL_TRANSFORM_FEEDBACK_BUFFER_MODE:
*params = program->getTransformFeedbackBufferMode();