summaryrefslogtreecommitdiffstats
path: root/src/glsl/link_varyings.cpp
diff options
context:
space:
mode:
authorIago Toral Quiroga <itoral@igalia.com>2014-06-06 13:28:32 +0200
committerIago Toral Quiroga <itoral@igalia.com>2014-06-30 08:08:50 +0200
commit598c2e2c83447cf222f96f833569eeb0bd179871 (patch)
tree1c4c9f865234a430bc38f70f65acf41b36a36298 /src/glsl/link_varyings.cpp
parente2dd717616757a74ab2835602dd7c1a6256805ed (diff)
downloadexternal_mesa3d-598c2e2c83447cf222f96f833569eeb0bd179871.zip
external_mesa3d-598c2e2c83447cf222f96f833569eeb0bd179871.tar.gz
external_mesa3d-598c2e2c83447cf222f96f833569eeb0bd179871.tar.bz2
glsl: Only geometry shader outputs can be associated with non-zero streams.
This should be ensured by the parser, so assert on that. Reviewed-by: Chris Forbes <chrisf@ijw.co.nz> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Diffstat (limited to 'src/glsl/link_varyings.cpp')
-rw-r--r--src/glsl/link_varyings.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/glsl/link_varyings.cpp b/src/glsl/link_varyings.cpp
index 3d5a680..520a51a 100644
--- a/src/glsl/link_varyings.cpp
+++ b/src/glsl/link_varyings.cpp
@@ -1347,6 +1347,11 @@ assign_varying_locations(struct gl_context *ctx,
(output_var->data.mode != ir_var_shader_out))
continue;
+ /* Only geometry shaders can use non-zero streams */
+ assert(output_var->data.stream == 0 ||
+ (output_var->data.stream < MAX_VERTEX_STREAMS &&
+ producer->Stage == MESA_SHADER_GEOMETRY));
+
tfeedback_candidate_generator g(mem_ctx, tfeedback_candidates);
g.process(output_var);