Mesa (main): pan/bi: Print scoreboarding state
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Feb 22 17:10:15 UTC 2022
Module: Mesa
Branch: main
Commit: 8f25d88d907d8f767975600184b51d2754d71364
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8f25d88d907d8f767975600184b51d2754d71364
Author: Alyssa Rosenzweig <alyssa at collabora.com>
Date: Thu Dec 23 11:09:15 2021 -0500
pan/bi: Print scoreboarding state
Signed-off-by: Alyssa Rosenzweig <alyssa at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14298>
---
src/panfrost/bifrost/bi_print.c | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/src/panfrost/bifrost/bi_print.c b/src/panfrost/bifrost/bi_print.c
index c242a939dc3..801ea67b917 100644
--- a/src/panfrost/bifrost/bi_print.c
+++ b/src/panfrost/bifrost/bi_print.c
@@ -127,9 +127,37 @@ bi_print_clause(bi_clause *clause, FILE *fp)
fprintf(fp, "\n");
}
+static void
+bi_print_scoreboard_line(unsigned slot, const char *name, uint64_t mask, FILE *fp)
+{
+ if (!mask)
+ return;
+
+ fprintf(fp, "slot %u %s:", slot, name);
+
+ u_foreach_bit64(reg, mask)
+ fprintf(fp, " r%" PRId64, reg);
+
+ fprintf(fp, "\n");
+}
+
+static void
+bi_print_scoreboard(struct bi_scoreboard_state *state, FILE *fp)
+{
+ for (unsigned i = 0; i < BI_NUM_SLOTS; ++i) {
+ bi_print_scoreboard_line(i, "reads", state->read[i], fp);
+ bi_print_scoreboard_line(i, "writes", state->write[i], fp);
+ }
+}
+
void
bi_print_block(bi_block *block, FILE *fp)
{
+ if (block->scheduled) {
+ bi_print_scoreboard(&block->scoreboard_in, fp);
+ fprintf(fp, "\n");
+ }
+
fprintf(fp, "block%u {\n", block->name);
if (block->scheduled) {
@@ -156,6 +184,11 @@ bi_print_block(bi_block *block, FILE *fp)
fprintf(fp, " block%u", pred->name);
}
+ if (block->scheduled) {
+ fprintf(fp, "\n");
+ bi_print_scoreboard(&block->scoreboard_out, fp);
+ }
+
fprintf(fp, "\n\n");
}
More information about the mesa-commit
mailing list