[Mesa-dev] [PATCH shader-db 2/2] si-report.py: print more regressed and bad shaders

Nicolai Hähnle nhaehnle at gmail.com
Tue Oct 18 09:13:52 UTC 2016


Both are:

Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>

On 17.10.2016 22:03, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak at amd.com>
>
> ---
>  si-report.py | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/si-report.py b/si-report.py
> index 144a229..620b3bd 100755
> --- a/si-report.py
> +++ b/si-report.py
> @@ -535,20 +535,21 @@ def get_shader_name(list, orig):
>      assert False
>      return "(error)"
>
>
>  def print_yellow(str):
>      print set_yellow + str + set_normal
>
>  def print_tables(before_all_results, after_all_results):
>      re_app = re.compile(r"^.*/([^/]+)/[^/]+$")
>
> +    num_listed = 20
>      apps = defaultdict(grouped_stats)
>      shaders = defaultdict(grouped_stats)
>      total = grouped_stats()
>      total_affected = grouped_stats()
>
>      all_files = set(itertools.chain(before_all_results.keys(),
>                                      after_all_results.keys()))
>
>      for file in all_files:
>          # get the application name (inner-most directory)
> @@ -587,41 +588,41 @@ def print_tables(before_all_results, after_all_results):
>
>      # worst VGPR spills
>      num = 0
>      sort_key = lambda v: -v[1].after.scratch_vgprs
>      for name, stats in sorted(shaders.items(), key = sort_key):
>          if num == 0:
>              print_yellow(" WORST VGPR SPILLS (not deltas)" + (" " * 40) +
>                           "VGPRs SpillVGPR ScratchVGPR")
>          stats.print_one_shader_vgpr_spill(name)
>          num += 1
> -        if num == 10:
> +        if num == num_listed:
>              break
>      if num > 0:
>          print
>
>      # VGPR spilling apps
>      print_yellow(" VGPR SPILLING APPS   Shaders SpillVGPR ScratchVGPR")
>      for name, stats in sorted(apps.items()):
>          stats.print_vgpr_spilling_app(name)
>      print
>
>      # worst SGPR spills
>      num = 0
>      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")
>          stats.print_one_shader_sgpr_spill(name)
>          num += 1
> -        if num == 10:
> +        if num == num_listed:
>              break
>      if num > 0:
>          print
>
>      # SGPR spilling apps
>      print_yellow(" SGPR SPILLING APPS   Shaders SpillSGPR AvgPerSh")
>      for name, stats in sorted(apps.items()):
>          stats.print_sgpr_spilling_app(name)
>      print
>
> @@ -643,21 +644,21 @@ def print_tables(before_all_results, after_all_results):
>                      continue
>              else:
>                  if stats.diff.__dict__[field] <= 0:
>                      continue
>
>              if num == 0:
>                  print_yellow(" WORST REGRESSIONS - {:49}".format(metrics[i][1]) +
>                               "Before     After     Delta Percentage")
>              stats.print_regression(name, field)
>              num += 1
> -            if num == 10:
> +            if num == num_listed:
>                  break
>          if num > 0:
>              print
>
>      # percentages
>      legend = "Shaders     SGPRs     VGPRs SpillSGPR SpillVGPR   Scratch  CodeSize  MaxWaves     Waits"
>      print_yellow(" PERCENTAGE DELTAS    " + legend)
>      for name, stats in sorted(apps.items()):
>          stats.print_percentages(name)
>      print " " + ("-" * (21 + len(legend)))
>


More information about the mesa-dev mailing list