Module: Mesa Branch: master Commit: f59a3a0fe2c6ae7d2e29da7b6185039ba0a03079 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f59a3a0fe2c6ae7d2e29da7b6185039ba0a03079
Author: Ian Romanick <[email protected]> Date: Fri Dec 14 19:00:32 2012 -0800 mesa: Array uniform name length includes length of [0] This is required by OpenGL ES 3.0 and desktop OpenGL 4.2. Previous version were ambiguous. This also matches the behavior of NVIDIA's closed-source driver (version 304.64). Fixed gles3conformance test uniform_buffer_object_getactiveuniformsiv and uniform_buffer_object_structure_and_array_element_names (on my in-progress branch that fixes a bunch of other stuff...YMMV). Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> --- src/mesa/main/uniform_query.cpp | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/src/mesa/main/uniform_query.cpp b/src/mesa/main/uniform_query.cpp index ec08ed4..f0ab0f0 100644 --- a/src/mesa/main/uniform_query.cpp +++ b/src/mesa/main/uniform_query.cpp @@ -122,6 +122,16 @@ _mesa_GetActiveUniformsiv(GLuint program, case GL_UNIFORM_NAME_LENGTH: params[i] = strlen(uni->name) + 1; + + /* Page 61 (page 73 of the PDF) in section 2.11 of the OpenGL ES 3.0 + * spec says: + * + * "If the active uniform is an array, the uniform name returned + * in name will always be the name of the uniform array appended + * with "[0]"." + */ + if (uni->array_elements != 0) + params[i] += 3; break; case GL_UNIFORM_BLOCK_INDEX: _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
