On 03/30/2013 04:26 AM, Dragomir Ivanov wrote:
I don't know OpenGL very much, but can uniforms be more than 10? So you can have "[24]" where you will need +4, not +3.
The query gives back the name that is the base of the array, not the declaration. No matter what size the array "foo" is, you'll always get "foo[0]" as the name of the base.
On Sat, Mar 30, 2013 at 3:22 AM, Haixia Shi <h...@chromium.org <mailto:h...@chromium.org>> wrote: 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". Change-Id: Icd58cd6a73c9de7bbe5659d757b8009021846019 Signed-off-by: Haixia Shi <h...@chromium.org <mailto:h...@chromium.org>> Reviewed-by: Stéphane Marchesin <marc...@chromium.org <mailto:marc...@chromium.org>> --- src/mesa/main/shaderapi.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c index be69467..68767f4 100644 --- a/src/mesa/main/shaderapi.c +++ b/src/mesa/main/shaderapi.c @@ -519,8 +519,11 @@ get_programiv(struct gl_context *ctx, GLuint program, GLenum pname, GLint *param for (i = 0; i < shProg->NumUserUniformStorage; i++) { /* Add one for the terminating NUL character. + * However if the uniform is an array, then add three extra characters + * for the appended "[0]" suffix, in addition to the terminating NUL. */ - 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; -- 1.8.1.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org <mailto:mesa-dev@lists.freedesktop.org> http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev