glsl: print locations of variables
authorMarek Olšák <marek.olsak@amd.com>
Thu, 19 Mar 2015 22:28:25 +0000 (23:28 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Tue, 16 Jun 2015 13:47:02 +0000 (15:47 +0200)
Reviewed-by: Brian Paul <brianp@vmware.com>
src/glsl/ir_print_visitor.cpp

index f5de6ac065b2c4d9c6830703195971a692ca19d3..c991658ab4bfba0f167123be65f3fa08d404db0b 100644 (file)
@@ -161,6 +161,10 @@ void ir_print_visitor::visit(ir_variable *ir)
 {
    fprintf(f, "(declare ");
 
+   char loc[256] = {0};
+   if (ir->data.location != -1)
+      snprintf(loc, sizeof(loc), "location=%i ", ir->data.location);
+
    const char *const cent = (ir->data.centroid) ? "centroid " : "";
    const char *const samp = (ir->data.sample) ? "sample " : "";
    const char *const inv = (ir->data.invariant) ? "invariant " : "";
@@ -172,8 +176,8 @@ void ir_print_visitor::visit(ir_variable *ir)
    const char *const interp[] = { "", "smooth", "flat", "noperspective" };
    STATIC_ASSERT(ARRAY_SIZE(interp) == INTERP_QUALIFIER_COUNT);
 
-   fprintf(f, "(%s%s%s%s%s%s) ",
-           cent, samp, inv, mode[ir->data.mode],
+   fprintf(f, "(%s%s%s%s%s%s%s) ",
+           loc, cent, samp, inv, mode[ir->data.mode],
            stream[ir->data.stream],
            interp[ir->data.interpolation]);