Fail compile if gl_FragCoord is redeclared with different layout qualifiers in one shader. --- src/glsl/ast_to_hir.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+)
diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp index 63fbd5a..d6362b0 100644 --- a/src/glsl/ast_to_hir.cpp +++ b/src/glsl/ast_to_hir.cpp @@ -2213,6 +2213,16 @@ get_variable_being_redeclared(ir_variable *var, ast_declaration *decl, /* Allow redeclaration of gl_FragCoord for ARB_fcc layout * qualifiers. */ + + /* Prevent inconsistent redeclaration of layout qualifier. */ + if (earlier->redeclared + && (earlier->origin_upper_left != var->origin_upper_left || + earlier->pixel_center_integer != var->pixel_center_integer)) { + _mesa_glsl_error(&loc, state, + "`gl_FragCoord' redeclared with different layout " + "qualifier"); + } + earlier->origin_upper_left = var->origin_upper_left; earlier->pixel_center_integer = var->pixel_center_integer; -- 1.8.1.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev