i965: Use the object label when available for shader_time output.
authorEric Anholt <eric@anholt.net>
Thu, 20 Feb 2014 21:26:45 +0000 (13:26 -0800)
committerEric Anholt <eric@anholt.net>
Sun, 23 Feb 2014 03:23:20 +0000 (19:23 -0800)
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Matt Turner <mattst88@gmail.com>
src/mesa/drivers/dri/i965/brw_program.c

index 58a7e811e3a856e76bb5c2120a1b01b6245763ba..2145d7b6a66da0746e77104e409c056e5f062a46 100644 (file)
@@ -318,7 +318,7 @@ static void
 print_shader_time_line(const char *stage, const char *name,
                        int shader_num, uint64_t time, uint64_t total)
 {
-   printf("%-6s%-6s", stage, name);
+   printf("%-6s%-18s", stage, name);
 
    if (shader_num != -1)
       printf("%4d: ", shader_num);
@@ -406,24 +406,27 @@ brw_report_shader_time(struct brw_context *brw)
    qsort(sorted, brw->shader_time.num_entries, sizeof(sorted[0]), compare_time);
 
    printf("\n");
-   printf("type          ID      cycles spent                   %% of total\n");
+   printf("type          ID                  cycles spent                   %% of total\n");
    for (int s = 0; s < brw->shader_time.num_entries; s++) {
       const char *shader_name;
       const char *stage;
       /* Work back from the sorted pointers times to a time to print. */
       int i = sorted[s] - scaled;
+      struct gl_shader_program *prog = brw->shader_time.shader_programs[i];
 
       if (scaled[i] == 0)
          continue;
 
       int shader_num = -1;
-      if (brw->shader_time.shader_programs[i]) {
-         shader_num = brw->shader_time.shader_programs[i]->Name;
+      if (prog) {
+         shader_num = prog->Name;
 
          /* The fixed function fragment shader generates GLSL IR with a Name
           * of 0, and nothing else does.
           */
-         if (shader_num == 0 &&
+         if (prog->Label) {
+            shader_name = prog->Label;
+         } else if (shader_num == 0 &&
              (brw->shader_time.types[i] == ST_FS8 ||
               brw->shader_time.types[i] == ST_FS16)) {
             shader_name = "ff";