glsl: dump explicit location when printing IR

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Reviewed-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
Nicolai Hähnle 2016-10-06 23:10:10 +02:00
parent 2b460c750a
commit 14aaaa1b4b
1 changed files with 7 additions and 3 deletions

View File

@ -165,10 +165,14 @@ void ir_print_visitor::visit(ir_variable *ir)
{
fprintf(f, "(declare ");
char loc[256] = {0};
char loc[32] = {0};
if (ir->data.location != -1)
snprintf(loc, sizeof(loc), "location=%i ", ir->data.location);
char component[32] = {0};
if (ir->data.explicit_component)
snprintf(component, sizeof(component), "component=%i ", ir->data.location_frac);
const char *const cent = (ir->data.centroid) ? "centroid " : "";
const char *const samp = (ir->data.sample) ? "sample " : "";
const char *const patc = (ir->data.patch) ? "patch " : "";
@ -183,8 +187,8 @@ void ir_print_visitor::visit(ir_variable *ir)
const char *const interp[] = { "", "smooth", "flat", "noperspective" };
STATIC_ASSERT(ARRAY_SIZE(interp) == INTERP_MODE_COUNT);
fprintf(f, "(%s%s%s%s%s%s%s%s%s) ",
loc, cent, samp, patc, inv, prec, mode[ir->data.mode],
fprintf(f, "(%s%s%s%s%s%s%s%s%s%s) ",
loc, component, cent, samp, patc, inv, prec, mode[ir->data.mode],
stream[ir->data.stream],
interp[ir->data.interpolation]);