@@ -740,6 +740,29 @@ my $timeline_text = $colour_contexts ?
'Per context coloured shading like:' : 'Box shading like:';
my %ctx_colours;
+my $ctx_table;
+
+sub generate_ctx_table
+{
+ my @states = ("queue", "ready", "execute", "ctxsave", "incomplete");
+ my @ctxts;
+
+ if( $colour_contexts ) {
+ @ctxts = sort keys %ctxdb;
+ } else {
+ @ctxts = ($min_ctx);
+ }
+
+ $ctx_table = "";
+ foreach my $ctx (@ctxts) {
+ $ctx_table .= "<tr>\n";
+ $ctx_table .= " <td>Context: $ctx</td>\n" if $colour_contexts;
+ foreach my $state (@states) {
+ $ctx_table .= " <td align='center'><div style='" . box_style($ctx, $state) . "'> " . uc($state) . " <p> </div></td>\n";
+ }
+ $ctx_table .= "</tr>";
+ }
+}
sub generate_ctx_colours
{
@@ -753,12 +776,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 <<ENDHTML if $html;
<!DOCTYPE HTML>
@@ -780,24 +798,16 @@ print <<ENDHTML if $html;
<b>Timeline request view:</b>
<table>
<tr><td colspan='4'>$timeline_text</td></tr>
-<tr>
-<td align='center'><div style='$queued_style'>QUEUED</div></td>
-<td align='center'><div style='$ready_style'>READY</div></td>
-<td align='center'><div style='$execute_style'>EXECUTE</div></td>
-<td align='center'><div style='$ctxsave_style'>CTXSAVE</div></td>
-</tr><tr>
-<td></td>
-<td></td>
-<td align='center'><div style='$incomplete_style'>(INCOMPLETE)</div></td>
-<td></td>
-</tr/></table>
+$ctx_table
+</table>
</p>
<p>
<small>
-QUEUED = requests executing on the GPU<br>
+QUEUE = requests executing on the GPU<br>
READY = runnable requests waiting for a slot on GPU<br>
EXECUTE = requests waiting on fences and dependencies before they are runnable<br>
CTXSAVE = GPU saving the context image<br>
+INCOMPLETE = request has stopped executing but is not yet complete (e.g. it was pre-empted)
</small>
</p>
<p>
@@ -974,9 +984,11 @@ 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') {
@@ -987,7 +999,7 @@ sub box_style
$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, ' .