On 7/12/2018 3:59 AM, Tvrtko Ursulin wrote:
> From: John Harrison
> -Timeline request view:
> +Timeline request view is $timeline_text:
> ';
> +
> + foreach my $ctx (@ctxts) {
> + $ctx_table .= "
';
> +}
>
> sub generate_ctx_colours
> {
> @@ -754,12 +780,7 @@ sub generate_ctx_colours
>
>
> generate_ctx_colours() if $html and $colour_contexts;
> -
> -my $queued_style = box_style($min_ctx, 'queue');
> -my $ready_style = box_style($min_ctx, 'ready');
> -my $execute_style = box_style($min_ctx, 'execute');
> -my $ctxsave_style = box_style($min_ctx, 'ctxsave');
> -my $incomplete_style = box_style($min_ctx, 'incomplete');
> +generate_ctx_table() if $html;
>
> print <\n";
> + $ctx_table .= " \n";
As mentioned in the email, I would definitely add something like:
my $i = 0;
...
if( $i++ > 5) {
$ctx_table .= "Context $ctx \n" if $colour_contexts;
> + foreach my $state (@states) {
> + $ctx_table .= " \n";
> + }
> + $ctx_table .= " ";
last;
}
I've had to analyse traces with hundreds of contexts in them before now.
Which would produce an HTML file swamped by a huge legend (albeit with a
beautifully smoothly shaded rainbow!).
With that...
Signed-off-by: John Harrisonetc...
> -
> -
> $timeline_text
> -
> -
> -
> -
> -
> -
> -
> -
> -
> -
> -
> -QUEUED = requests executing on the GPU
> Boxes are in format 'ctx-id/seqno'.
>
> Use Ctrl+scroll-action to zoom-in/out and scroll-action or dragging to move around the timeline.
>
> +
> +$ctx_table
> +
> +
> +QUEUE = requests executing on the GPU
> +
> +
>
> READY = runnable requests waiting for a slot on GPU
> EXECUTE = requests waiting on fences and dependencies before they are runnable
> CTXSAVE = GPU saving the context image
> -
> -
> +INCOMPLETE = request of unknown completion time
>
> GPU idle: $flat_busy{'gpu-idle'}%
>
> @@ -975,20 +988,24 @@ sub box_style
> {
> my ($ctx, $stage) = @_;
> my $deg;
> + my $text_col = 'white';
>
> if ($stage eq 'queue') {
> $deg = 90;
> + $text_col = 'black' if $colour_contexts;
> } elsif ($stage eq 'ready') {
> $deg = 45;
> } elsif ($stage eq 'execute') {
> $deg = 0;
> + $text_col = 'black' if $colour_contexts;
> } elsif ($stage eq 'ctxsave') {
> $deg = 105;
> + $text_col = 'black' if $colour_contexts;
> } elsif ($stage eq 'incomplete') {
> $deg = 0;
> }
>
> - return 'color: black; background: repeating-linear-gradient(' .
> + return "color: $text_col; background: repeating-linear-gradient(" .
> $deg . 'deg, ' .
> ctx_colour($ctx, $stage, 1.0) . ', ' .
> ctx_colour($ctx, $stage, 1.0) . ' 10px, ' .