From: Timothy Arceri Date: Wed, 10 Jun 2015 09:40:07 +0000 (+1000) Subject: glsl: enforce restriction on AoA interface blocks in GLSL ES 3.10 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0d2068a92d74f421960947e589cf56a2b125035f;p=mesa.git glsl: enforce restriction on AoA interface blocks in GLSL ES 3.10 Reviewed-by: Samuel Iglesias Gonsálvez --- diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp index 1c2c7b56efa..a7811af5d0f 100644 --- a/src/glsl/ast_to_hir.cpp +++ b/src/glsl/ast_to_hir.cpp @@ -5847,6 +5847,17 @@ ast_interface_block::hir(exec_list *instructions, const glsl_type *block_array_type = process_array_type(&loc, block_type, this->array_specifier, state); + /* From section 4.3.9 (Interface Blocks) of the GLSL ES 3.10 spec: + * + * * Arrays of arrays of blocks are not allowed + */ + if (state->es_shader && block_array_type->is_array() && + block_array_type->fields.array->is_array()) { + _mesa_glsl_error(&loc, state, + "arrays of arrays interface blocks are " + "not allowed"); + } + var = new(state) ir_variable(block_array_type, this->instance_name, var_mode);