[Mesa-dev] [PATCH 04/12] glsl parser: reject VS+in & FS+out interface blocks
Jordan Justen
jordan.l.justen at intel.com
Tue Mar 12 13:35:42 PDT 2013
Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
---
src/glsl/glsl_parser.yy | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/src/glsl/glsl_parser.yy b/src/glsl/glsl_parser.yy
index 7adc06d..8e6b04d 100644
--- a/src/glsl/glsl_parser.yy
+++ b/src/glsl/glsl_parser.yy
@@ -1935,6 +1935,20 @@ basic_interface_block:
}
}
+ /* GLSLangSpec.1.50.11, 4.3.7 Interface Blocks:
+ * "It is illegal to have an input block in a vertex shader
+ * or an output block in a fragment shader"
+ */
+ if ((state->target == vertex_shader) && $1.flags.q.in) {
+ _mesa_glsl_error(& @1, state,
+ "in interface block is not allowed for "
+ "a vertex shader\n");
+ } else if ((state->target == fragment_shader) && $1.flags.q.out) {
+ _mesa_glsl_error(& @1, state,
+ "out interface block is not allowed for "
+ "a fragment shader\n");
+ }
+
/* Since block arrays require names, and both features are added in
* the same language versions, we don't have to explicitly
* version-check both things.
--
1.7.10.4
More information about the mesa-dev
mailing list