diff options
author | Samuel Pitoiset <[email protected]> | 2017-02-24 14:46:08 +0100 |
---|---|---|
committer | Samuel Pitoiset <[email protected]> | 2017-02-27 19:42:00 +0100 |
commit | e69fd0b43cbbfa814a6af8268c5edec64387520a (patch) | |
tree | da10c8fe0b3ad53f81f93ce5a81f335e67e36089 /src | |
parent | 08a052966fff77b1d3c04f0b75fb1199988ba1fd (diff) |
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 <[email protected]>
Reviewed-by: Timothy Arceri <[email protected]> (v1)
Reviewed-by: Marek Olšák <[email protected]> (v2)
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/glsl/ast_to_hir.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp index af5e76dd3ac..0c00585a050 100644 --- a/src/compiler/glsl/ast_to_hir.cpp +++ b/src/compiler/glsl/ast_to_hir.cpp @@ -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 |