From: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> vis library has a limited precision compared to our trace data which prevents zooming into the timeline and seeing the fine detail. Scale the HTML view by a thousand to work around it. v2: Rebase for time axis changes. v3: Another tweak for time axis changes. Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx> Suggested-by: John Harrison <John.C.Harrison@xxxxxxxxx> Cc: John Harrison <John.C.Harrison@xxxxxxxxx> Reviewed-by: John Harrison <John.C.Harrison@xxxxxxxxx> # v2 --- scripts/trace.pl | 54 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 50 insertions(+), 4 deletions(-) diff --git a/scripts/trace.pl b/scripts/trace.pl index 41f10749a153..4b5f4ef77aef 100755 --- a/scripts/trace.pl +++ b/scripts/trace.pl @@ -40,6 +40,7 @@ my $trace = 0; my $avg_delay_stats = 0; my $gpu_timeline = 0; my $colour_contexts = 0; +my $no_timeline_scaling = 0; my @args; @@ -281,6 +282,18 @@ sub arg_colour_contexts return @_; } +sub arg_no_timeline_scaling +{ + return unless scalar(@_); + + if ($_[0] eq '--no-timeline-scaling') { + shift @_; + $no_timeline_scaling = 1; + } + + return @_; +} + @args = @ARGV; while (@args) { my $left = scalar(@args); @@ -296,6 +309,7 @@ while (@args) { @args = arg_ignore_ring(@args); @args = arg_skip_box(@args); @args = arg_colour_contexts(@args); + @args = arg_no_timeline_scaling(@args); last if $left == scalar(@args); } @@ -334,6 +348,8 @@ sub ts my ($us) = @_; my ($y, $mo, $d, $h, $m, $s); + $us *= 1000 unless $no_timeline_scaling; + $s = int($us / 1000000); $us = $us % 1000000; @@ -999,11 +1015,28 @@ $first_ts = ts($first_ts); print <<ENDHTML; ]); +ENDHTML +if ($html) { + if ($no_timeline_scaling) { + say " timeDiv = 1;"; + } else { + say " timeDiv = 1000;"; + } +} + +print <<ENDHTML; function majorAxis(date, scale, step) { - var s = date / 1000; + var s = date / 1000 / timeDiv; var precision; + if (timeDiv == 1000) { + if (scale == 'second') + scale = 'millisecond'; + else if (scale == 'minute') + scale = 'second' + } + if (scale == 'millisecond') precision = 6; else if (scale == 'second') @@ -1015,14 +1048,27 @@ print <<ENDHTML; } function minorAxis(date, scale, step) { - var ms = date; + var ms = date / timeDiv; + var orig_scale = scale; var precision; var unit; + if (timeDiv == 1000) { + if (scale == 'second') + scale = 'millisecond'; + else if (scale == 'minute') + scale = 'second' + } + if (scale == 'millisecond') { - ms %= 1000; precision = 0; - unit = 'ms'; + if (orig_scale == 'millisecond' && step <= 200) { + ms = date % 1000; + unit = 'us'; + } else { + ms %= 1000; + unit = 'ms'; + } } else if (scale == 'second') { ms /= 1000; precision = 1; -- 2.17.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx