Commit f0f2ec4d authored by Chad Versace's avatar Chad Versace
Browse files

glsl: In ast_to_hir, check sampler array indexing

Raise error if a sampler array is indexed with a non-constant expression.

From section 4.1.7 of the GLSL 1.30 spec:
  "Samplers aggregated into arrays within a shader (using square
  brackets [ ]) can only be indexed with integral constant
  expressions [...]."
parent d547ab15
......@@ -1567,6 +1567,20 @@ ast_expression::hir(exec_list *instructions,
}
}
/* From section 4.1.7 of the GLSL 1.30 spec:
* "Samplers aggregated into arrays within a shader (using square
* brackets [ ]) can only be indexed with integral constant
* expressions [...]."
*/
if (array->type->is_array() &&
array->type->element_type()->is_sampler() &&
const_index == NULL) {
_mesa_glsl_error(&loc, state, "sampler arrays can only be indexed "
"with constant expressions");
error_emitted = true;
}
if (error_emitted)
result->type = glsl_type::error_type;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment