glsl: reject samplers not declared as uniform/function params earlier
This improves consistency with image variables and atomic counters which are already rejected the same way. Note that opaque variables can't be treated as l-values, which means only the 'in' function parameter is allowed. v2: rewrite commit message Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com> (v1) Reviewed-by: Marek Olšák <marek.olsak@amd.com> (v2)
This commit is contained in:
@@ -3589,6 +3589,15 @@ apply_layout_qualifier_to_variable(const struct ast_type_qualifier *qual,
|
||||
}
|
||||
}
|
||||
|
||||
if (var->type->contains_sampler()) {
|
||||
if (var->data.mode != ir_var_uniform &&
|
||||
var->data.mode != ir_var_function_in) {
|
||||
_mesa_glsl_error(loc, state, "sampler variables may only be declared "
|
||||
"as function parameters or uniform-qualified "
|
||||
"global variables");
|
||||
}
|
||||
}
|
||||
|
||||
/* Is the 'layout' keyword used with parameters that allow relaxed checking.
|
||||
* Many implementations of GL_ARB_fragment_coord_conventions_enable and some
|
||||
* implementations (only Mesa?) GL_ARB_explicit_attrib_location_enable
|
||||
|
Reference in New Issue
Block a user