diff options
author | Iago Toral Quiroga <itoral@igalia.com> | 2014-06-08 13:16:26 +0200 |
---|---|---|
committer | Iago Toral Quiroga <itoral@igalia.com> | 2014-06-30 08:08:50 +0200 |
commit | a16043ba57501d3d91d50291135775e6650818fa (patch) | |
tree | 313bd0048b70d621cccc5ff977bdb7bd743ae5db /src/glsl/ir_reader.cpp | |
parent | 5d562588a5a1067cf80148ddad3815fdba816151 (diff) | |
download | external_mesa3d-a16043ba57501d3d91d50291135775e6650818fa.zip external_mesa3d-a16043ba57501d3d91d50291135775e6650818fa.tar.gz external_mesa3d-a16043ba57501d3d91d50291135775e6650818fa.tar.bz2 |
glsl: include streamId when reading/printing emit-vertex and end-primitive IR.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Diffstat (limited to 'src/glsl/ir_reader.cpp')
-rw-r--r-- | src/glsl/ir_reader.cpp | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/glsl/ir_reader.cpp b/src/glsl/ir_reader.cpp index 28923f3..ba166eb 100644 --- a/src/glsl/ir_reader.cpp +++ b/src/glsl/ir_reader.cpp @@ -1109,10 +1109,17 @@ ir_reader::read_texture(s_expression *expr) ir_emit_vertex * ir_reader::read_emit_vertex(s_expression *expr) { - s_pattern pat[] = { "emit-vertex" }; + s_expression *s_stream = NULL; + + s_pattern pat[] = { "emit-vertex", s_stream }; if (MATCH(expr, pat)) { - return new(mem_ctx) ir_emit_vertex(); + ir_rvalue *stream = read_dereference(s_stream); + if (stream == NULL) { + ir_read_error(NULL, "when reading stream info in emit-vertex"); + return NULL; + } + return new(mem_ctx) ir_emit_vertex(stream); } ir_read_error(NULL, "when reading emit-vertex"); return NULL; @@ -1121,10 +1128,17 @@ ir_reader::read_emit_vertex(s_expression *expr) ir_end_primitive * ir_reader::read_end_primitive(s_expression *expr) { - s_pattern pat[] = { "end-primitive" }; + s_expression *s_stream = NULL; + + s_pattern pat[] = { "end-primitive", s_stream }; if (MATCH(expr, pat)) { - return new(mem_ctx) ir_end_primitive(); + ir_rvalue *stream = read_dereference(s_stream); + if (stream == NULL) { + ir_read_error(NULL, "when reading stream info in end-primitive"); + return NULL; + } + return new(mem_ctx) ir_end_primitive(stream); } ir_read_error(NULL, "when reading end-primitive"); return NULL; |