ir_to_mesa: Pretty up the printing of MESA_GLSL=dump
authorEric Anholt <eric@anholt.net>
Thu, 22 Jul 2010 19:25:39 +0000 (12:25 -0700)
committerEric Anholt <eric@anholt.net>
Thu, 22 Jul 2010 19:37:43 +0000 (12:37 -0700)
src/mesa/shader/ir_to_mesa.cpp

index c92fe49a2079537a19b85617b6ed2237e183741d..ba45c87e59ceb129f1e95d867cb46e055edd795c 100644 (file)
@@ -1885,19 +1885,29 @@ print_program(struct prog_instruction *mesa_instructions,
 {
    ir_instruction *last_ir = NULL;
    int i;
+   int indent = 0;
 
    for (i = 0; i < num_instructions; i++) {
       struct prog_instruction *mesa_inst = mesa_instructions + i;
       ir_instruction *ir = mesa_instruction_annotation[i];
 
+      fprintf(stdout, "%3d: ", i);
+
       if (last_ir != ir && ir) {
-        ir_print_visitor print;
-        ir->accept(&print);
+        int j;
+
+        for (j = 0; j < indent; j++) {
+           fprintf(stdout, " ");
+        }
+        ir->print();
         printf("\n");
         last_ir = ir;
+
+        fprintf(stdout, "     "); /* line number spacing. */
       }
 
-      _mesa_print_instruction(mesa_inst);
+      indent = _mesa_fprint_instruction_opt(stdout, mesa_inst, indent,
+                                           PROG_PRINT_DEBUG, NULL);
    }
 }