[igt-dev] [PATCH i-g-t 1/9] trace.pl: Improve time axis labels

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Thu Jul 12 12:42:10 UTC 2018


On 12/07/2018 11:59, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> 
> It is possible to customize the axis display so change it to display
> timestamps in seconds on the major axis (with six decimal spaces) and
> relative millisecond offsets on the minor axis.
> 
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> Suggested-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: John Harrison <John.C.Harrison at Intel.com>
> ---
>   scripts/trace.pl | 32 ++++++++++++++++++++++++++++++++
>   1 file changed, 32 insertions(+)
> 
> diff --git a/scripts/trace.pl b/scripts/trace.pl
> index fc1713e4f9a7..89491125490d 100755
> --- a/scripts/trace.pl
> +++ b/scripts/trace.pl
> @@ -1000,6 +1000,37 @@ $first_ts = ts($first_ts);
>   print <<ENDHTML;
>     ]);
>   
> +  var last_major_ms;
> +
> +  function majorAxis(date, scale, step) {
> +	var s = date / 1000;
> +
> +	last_major_ms = date;
> +
> +	if (scale == 'millisecond')
> +		return s.toFixed(6) + "s";
> +	else if (scale == 'second')
> +		return s.toFixed(3) + "s";
> +	else
> +		return s.toFixed(0) + "s";
> +  }
> +
> +  function minorAxis(date, scale, step) {
> +	var ms = date;
> +
> +	ms -= last_major_ms;

This logic is unfortunately a bit dodgy. It looked like major label is 
getting called before the minor ones, so I thought I could calculate the 
relative offset for the minor for a more readable display. But after 
scrolling and zooming around timelines some more I can see cases where 
that doesn't seem to be the case.

Please have a play and if you think it is bad they only option will be 
to absolute time for minor labels as well.

Regards,

Tvrtko

> +
> +	if (ms < 0)
> +		return '';
> +
> +	if (scale == 'millisecond')
> +		return "+" + ms.toFixed(3) + "ms";
> +	else if (scale == 'second')
> +		return ms.toFixed(3) + "s";
> +	else
> +		return ms.toFixed(0) + "s";
> +  }
> +
>     // Configuration for the Timeline
>     var options = { groupOrder: 'content',
>   		  horizontalScroll: true,
> @@ -1007,6 +1038,7 @@ print <<ENDHTML;
>   		  stackSubgroups: false,
>   		  zoomKey: 'ctrlKey',
>   		  orientation: 'top',
> +		  format: { majorLabels: majorAxis, minorLabels: minorAxis },
>   		  start: '$first_ts',
>   		  end: '$end_ts'};
>   
> 


More information about the igt-dev mailing list