glsl: include streamId when reading/printing ir_variable IR.

Signed-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Samuel Iglesias Gonsalvez 2014-06-10 08:45:44 +02:00 committed by Iago Toral Quiroga
parent a16043ba57
commit 0e58a3ef2a
2 changed files with 11 additions and 2 deletions

View File

@ -169,11 +169,14 @@ void ir_print_visitor::visit(ir_variable *ir)
"in ", "out ", "inout ",
"const_in ", "sys ", "temporary " };
STATIC_ASSERT(ARRAY_SIZE(mode) == ir_var_mode_count);
const char *const stream [] = {"", "stream1 ", "stream2 ", "stream3 "};
const char *const interp[] = { "", "smooth", "flat", "noperspective" };
STATIC_ASSERT(ARRAY_SIZE(interp) == INTERP_QUALIFIER_COUNT);
fprintf(f, "(%s%s%s%s%s) ",
cent, samp, inv, mode[ir->data.mode], interp[ir->data.interpolation]);
fprintf(f, "(%s%s%s%s%s%s) ",
cent, samp, inv, mode[ir->data.mode],
stream[ir->data.stream],
interp[ir->data.interpolation]);
print_type(f, ir->type);
fprintf(f, " %s)", unique_name(ir));

View File

@ -437,6 +437,12 @@ ir_reader::read_declaration(s_expression *expr)
var->data.mode = ir_var_function_inout;
} else if (strcmp(qualifier->value(), "temporary") == 0) {
var->data.mode = ir_var_temporary;
} else if (strcmp(qualifier->value(), "stream1") == 0) {
var->data.stream = 1;
} else if (strcmp(qualifier->value(), "stream2") == 0) {
var->data.stream = 2;
} else if (strcmp(qualifier->value(), "stream3") == 0) {
var->data.stream = 3;
} else if (strcmp(qualifier->value(), "smooth") == 0) {
var->data.interpolation = INTERP_QUALIFIER_SMOOTH;
} else if (strcmp(qualifier->value(), "flat") == 0) {