mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-24 06:00:22 +01:00
ACTIVE_UNIFORM_MAX_LENGTH should include 3 extra characters for arrays.
If the active uniform is an array, then the length of the uniform name should include the three extra characters for the "[0]" suffix, which is required by the GL 4.2 spec to be appended to the uniform name in glGetActiveUniform(). This avoids the situation where the output buffer does not have enough space to hold the "[0]" suffix, resulting in an incomplete array specification like "foobar[0". NOTE: This is a candidate for the 9.1 branch. Change-Id: I41e87ba347a7169eec8c575596cc3416adbe0728 Signed-off-by: Haixia Shi <hshi@chromium.org> Reviewed-by: Stéphane Marchesin <marcheu@chromium.org> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
parent
e2b40e253b
commit
bc0cc2944f
1 changed files with 4 additions and 2 deletions
|
|
@ -518,9 +518,11 @@ get_programiv(struct gl_context *ctx, GLuint program, GLenum pname, GLint *param
|
|||
GLint max_len = 0;
|
||||
|
||||
for (i = 0; i < shProg->NumUserUniformStorage; i++) {
|
||||
/* Add one for the terminating NUL character.
|
||||
/* Add one for the terminating NUL character for a non-array, and
|
||||
* 4 for the "[0]" and the NUL for an array.
|
||||
*/
|
||||
const GLint len = strlen(shProg->UniformStorage[i].name) + 1;
|
||||
const GLint len = strlen(shProg->UniformStorage[i].name) + 1 +
|
||||
((shProg->UniformStorage[i].array_elements != 0) ? 3 : 0);
|
||||
|
||||
if (len > max_len)
|
||||
max_len = len;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue