summaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2016-05-10 11:56:31 +1000
committerDave Airlie <airlied@redhat.com>2016-05-10 14:26:03 +1000
commit4d8a71f7f18986f3969489ea8e94de335378a479 (patch)
tree651cbc65b1d6a569797286aff14fcd95847e1a6e /src/compiler/glsl
parent13c68e1447f90d067462ec4fa3186c5c871a56fe (diff)
glsl: check geometry output vertices limits.
This fixes: GL45-CTS.geometry_shader.limits.max_output_vertices Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'src/compiler/glsl')
-rw-r--r--src/compiler/glsl/glsl_parser_extras.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/compiler/glsl/glsl_parser_extras.cpp b/src/compiler/glsl/glsl_parser_extras.cpp
index fb64350ed39..463cb9730ea 100644
--- a/src/compiler/glsl/glsl_parser_extras.cpp
+++ b/src/compiler/glsl/glsl_parser_extras.cpp
@@ -1683,6 +1683,14 @@ set_shader_inout_layout(struct gl_shader *shader,
if (state->out_qualifier->max_vertices->
process_qualifier_constant(state, "max_vertices",
&qual_max_vertices, true)) {
+
+ if (qual_max_vertices > state->Const.MaxGeometryOutputVertices) {
+ YYLTYPE loc = state->out_qualifier->max_vertices->get_location();
+ _mesa_glsl_error(&loc, state,
+ "maximum output vertices (%d) exceeds "
+ "GL_MAX_GEOMETRY_OUTPUT_VERTICES",
+ qual_max_vertices);
+ }
shader->Geom.VerticesOut = qual_max_vertices;
}
}