glsl: Disallow primitive type layout qualifier on variables.
This only makes any sense on the GS input or output layout declaration, nowhere else. Fixes the piglit tests: * spec/glsl-1.50/compiler/incorrect-in-layout-qualifiers-with-variable-declarations.geom * spec/glsl-1.50/compiler/incorrect-out-layout-qualifiers-with-variable-declarations.geom * spec/glsl-1.50/compiler/layout-fs-no-output.frag * spec/glsl-1.50/compiler/layout-vs-no-input.vert * spec/glsl-1.50/compiler/layout-vs-no-output.vert Signed-off-by: Chris Forbes <chrisf@ijw.co.nz> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
d4703f9446
commit
91b8ecbe1c
|
@ -2469,6 +2469,13 @@ apply_type_qualifier_to_variable(const struct ast_type_qualifier *qual,
|
|||
_mesa_shader_stage_to_string(state->stage));
|
||||
}
|
||||
|
||||
/* Disallow layout qualifiers which may only appear on layout declarations. */
|
||||
if (qual->flags.q.prim_type) {
|
||||
_mesa_glsl_error(loc, state,
|
||||
"Primitive type may only be specified on GS input or output "
|
||||
"layout declaration, not on variables.");
|
||||
}
|
||||
|
||||
/* Section 6.1.1 (Function Calling Conventions) of the GLSL 1.10 spec says:
|
||||
*
|
||||
* "However, the const qualifier cannot be used with out or inout."
|
||||
|
|
Loading…
Reference in New Issue