diff options
Diffstat (limited to 'src/glsl/ast_type.cpp')
-rw-r--r-- | src/glsl/ast_type.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/glsl/ast_type.cpp b/src/glsl/ast_type.cpp index de4c1a4..b596cd5 100644 --- a/src/glsl/ast_type.cpp +++ b/src/glsl/ast_type.cpp @@ -168,6 +168,16 @@ ast_type_qualifier::merge_qualifier(YYLTYPE *loc, this->max_vertices = q.max_vertices; } + if (q.flags.q.invocations) { + if (this->flags.q.invocations && this->invocations != q.invocations) { + _mesa_glsl_error(loc, state, + "geometry shader set conflicting invocations " + "(%d and %d)", this->invocations, q.invocations); + return false; + } + this->invocations = q.invocations; + } + if (state->stage == MESA_SHADER_GEOMETRY && state->has_explicit_attrib_stream()) { if (q.flags.q.stream && q.stream >= state->ctx->Const.MaxVertexStreams) { |