Mesa (master): glsl: check geometry output vertices limits.

Dave Airlie airlied at kemper.freedesktop.org
Tue May 10 04:26:32 UTC 2016


Module: Mesa
Branch: master
Commit: 4d8a71f7f18986f3969489ea8e94de335378a479
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4d8a71f7f18986f3969489ea8e94de335378a479

Author: Dave Airlie <airlied at redhat.com>
Date:   Tue May 10 11:56:31 2016 +1000

glsl: check geometry output vertices limits.

This fixes:
GL45-CTS.geometry_shader.limits.max_output_vertices

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Signed-off-by: Dave Airlie <airlied at redhat.com>

---

 src/compiler/glsl/glsl_parser_extras.cpp | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/compiler/glsl/glsl_parser_extras.cpp b/src/compiler/glsl/glsl_parser_extras.cpp
index fb64350..463cb97 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;
          }
       }




More information about the mesa-commit mailing list