[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