mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-22 11:20:11 +01:00
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 [...]."
This commit is contained in:
parent
d547ab150a
commit
f0f2ec4d8a
1 changed files with 14 additions and 0 deletions
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue