When using sha as part of the captured shader name that name can get so
long that part of it is cut off and not visible anymore (although this
also happens when using long directory names etc.) So this is a general
improvement.

---
 si-report.py | 72 ++++++++++++++++++++++++++++++++++++++----------------------
 1 file changed, 46 insertions(+), 26 deletions(-)

diff --git a/si-report.py b/si-report.py
index 0756081..fba652c 100755
--- a/si-report.py
+++ b/si-report.py
@@ -482,39 +482,53 @@ class grouped_stats:
     def print_vgpr_spilling_app(self, name):
         if (self.after.spilled_vgprs > 0 or
             self.after.privmem_vgprs > 0):
-            print " {:22}{:6}{:10}{:10}{:10}".format(
-                name,
+            print " {:6}{:6}     {:6}   {:6}   {:22}".format(
                 self.num_shaders,
                 self.after.spilled_vgprs,
                 self.after.privmem_vgprs,
-                self.after.scratch_size)
+                self.after.scratch_size,
+                name)

     def print_one_shader_vgpr_spill(self, name):
         if (self.after.spilled_vgprs > 0 or
             self.after.privmem_vgprs > 0):
-            print " {:65}{:10}{:10}{:10}{:10}".format(
-                name,
+            print " {:6}{:6}{:6}   {:6}    {:22}".format(
                 self.after.vgprs,
                 self.after.spilled_vgprs,
                 self.after.privmem_vgprs,
-                self.after.scratch_size)
+                self.after.scratch_size,
+                name)

     def print_sgpr_spilling_app(self, name):
         if self.after.spilled_sgprs > 0:
-            print " {:22}{:6}{:10}{:>9.1f}".format(
-                name,
+            print " {:6} {:6}     {:>5.1f}      {:22}".format(
                 self.num_shaders,
                 self.after.spilled_sgprs,
-                float(self.after.spilled_sgprs) / float(self.num_shaders))
+                float(self.after.spilled_sgprs) / float(self.num_shaders),
+                name)

     def print_one_shader_sgpr_spill(self, name):
         if self.after.spilled_sgprs > 0:
-            print " {:65}{:10}{:10}".format(
-                name,
+            print " {:6}{:6}   {:90}".format(
                 self.after.sgprs,
-                self.after.spilled_sgprs)
+                self.after.spilled_sgprs,
+                name)

     def print_percentages(self, name):
+        print " {:6}{:6}{}{}{}{}{}{}{}{}{}".format(
+            name,
+            self.num_shaders,
+            format_percent_change(self.before.sgprs, self.after.sgprs),
+            format_percent_change(self.before.vgprs, self.after.vgprs),
+            format_percent_change(self.before.spilled_sgprs, 
self.after.spilled_sgprs),
+            format_percent_change(self.before.spilled_vgprs, 
self.after.spilled_vgprs),
+            format_percent_change(self.before.privmem_vgprs, 
self.after.privmem_vgprs),
+            format_percent_change(self.before.scratch_size, 
self.after.scratch_size),
+            format_percent_change(self.before.code_size, self.after.code_size),
+            format_percent_change(self.before.maxwaves, self.after.maxwaves, 
more_is_better = True),
+            format_percent_change(self.before.waitstates, 
self.after.waitstates))
+
+    def print_percentages_end(self, name):
         print " {:22}{:6}{}{}{}{}{}{}{}{}{}".format(
             name,
             self.num_shaders,
@@ -530,14 +544,14 @@ class grouped_stats:

     def print_regression(self, name, field):
         more_is_better = field == "maxwaves"
-        print " {:65}{:10}{:10}{}{}".format(
-            name,
+        print " {:6}{:6}{}{}   {:90}".format(
             self.before.__dict__[field],
             self.after.__dict__[field],
             format_table_cell(self.after.__dict__[field] - 
self.before.__dict__[field],
                               more_is_better = more_is_better),
             format_percent_change(self.before.__dict__[field], 
self.after.__dict__[field],
-                                  more_is_better = more_is_better))
+                                  more_is_better = more_is_better),
+            name)

 """
 Return "filename [index]", because files can contain multiple shaders.
@@ -608,8 +622,8 @@ def print_tables(before_all_results, after_all_results):
     sort_key = lambda v: -v[1].after.scratch_size
     for name, stats in sorted(shaders.items(), key = sort_key):
         if num == 0:
-            print_yellow(" WORST VGPR SPILLS (not deltas)" + (" " * 40) +
-                         "VGPRs SpillVGPR  PrivVGPR ScratchSize")
+            print_yellow("WORST VGPR SPILLS (not deltas)" + (" " * 64))
+            print_yellow("  VGPRs Spills Private Scratch")
         stats.print_one_shader_vgpr_spill(name)
         num += 1
         if num == num_listed:
@@ -618,7 +632,7 @@ def print_tables(before_all_results, after_all_results):
         print

     # VGPR spilling apps
-    print_yellow(" VGPR SPILLING APPS   Shaders SpillVGPR  PrivVGPR 
ScratchSize")
+    print_yellow("VGPR SPILLING APPS\nShaders SpillVGPR  PrivVGPR ScratchSize")
     for name, stats in sorted(apps.items()):
         stats.print_vgpr_spilling_app(name)
     print
@@ -628,8 +642,8 @@ def print_tables(before_all_results, after_all_results):
     sort_key = lambda v: -v[1].after.spilled_sgprs
     for name, stats in sorted(shaders.items(), key = sort_key):
         if num == 0:
-            print_yellow(" WORST SGPR SPILLS (not deltas)" + (" " * 40) +
-                         "SGPRs SpillSGPR")
+            print_yellow("WORST SGPR SPILLS (not deltas)" + (" " * 64))
+            print_yellow("  SGPRs Spills")
         stats.print_one_shader_sgpr_spill(name)
         num += 1
         if num == num_listed:
@@ -638,7 +652,7 @@ def print_tables(before_all_results, after_all_results):
         print

     # SGPR spilling apps
-    print_yellow(" SGPR SPILLING APPS   Shaders SpillSGPR AvgPerSh")
+    print_yellow(" SGPR SPILLING APPS\nShaders SpillSGPR AvgPerSh")
     for name, stats in sorted(apps.items()):
         stats.print_sgpr_spilling_app(name)
     print
@@ -664,8 +678,14 @@ def print_tables(before_all_results, after_all_results):
                     continue

             if num == 0:
-                print_yellow(" WORST REGRESSIONS - 
{:49}".format(metrics[i][1]) +
-                             "Before     After     Delta Percentage")
+                print_yellow(" WORST REGRESSIONS - 
{:64}".format(metrics[i][1]))
+                print_yellow(" Before After     Delta Percentage")
+            stats.print_regression(name, field)
+            num += 1
+            if num == num_listed:
+                break
+        if num > 0:
+            print
             stats.print_regression(name, field)
             num += 1
             if num == num_listed:
@@ -677,11 +697,11 @@ def print_tables(before_all_results, after_all_results):
     legend = "Shaders     SGPRs     VGPRs SpillSGPR SpillVGPR  PrivVGPR   
Scratch  CodeSize  MaxWaves     Waits"
     print_yellow(" PERCENTAGE DELTAS    " + legend)
     for name, stats in sorted(apps.items()):
-        stats.print_percentages(name)
+        stats.print_percentages_end(name)
     print " " + ("-" * (21 + len(legend)))
-    total_affected.print_percentages("All affected")
+    total_affected.print_percentages_end("All affected")
     print " " + ("-" * (21 + len(legend)))
-    total.print_percentages("Total")
+    total.print_percentages_end("Total")
     print

 def main():
-- 
2.14.1
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to