glsl: Don't resize arrays in uniform blocks.

This is a requirement for std140 uniform blocks, and optional for
packed/shared blocks.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Eric Anholt
2012-05-01 14:43:31 -07:00
parent 0cea8a56b6
commit 9feb403b0e
+7
View File
@@ -1165,6 +1165,13 @@ update_array_sizes(struct gl_shader_program *prog)
!var->type->is_array())
continue;
/* GL_ARB_uniform_buffer_object says that std140 uniforms
* will not be eliminated. Since we always do std140, just
* don't resize arrays in UBOs.
*/
if (var->uniform_block != -1)
continue;
unsigned int size = var->max_array_access;
for (unsigned j = 0; j < MESA_SHADER_TYPES; j++) {
if (prog->_LinkedShaders[j] == NULL)