summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>2020-02-28 07:25:25 -0500
committerMarge Bot <eric+marge@anholt.net>2020-03-03 00:03:50 +0000
commit3044a37a84086f4965fda46b718ce252c42b1187 (patch)
tree2f755645ec5e7452fdc665586d33e7ddf4ec863a
parentacd140c2e20dfe9f18b7b442a7af79e0f221cb57 (diff)
pan/decode: Skip analysis for Bifrost tiler structures
We don't understand the Bifrost at all yet, so let's just print and move on. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4025>
-rw-r--r--src/panfrost/pandecode/decode.c35
1 files changed, 34 insertions, 1 deletions
diff --git a/src/panfrost/pandecode/decode.c b/src/panfrost/pandecode/decode.c
index e5b7769942b..af885538f0e 100644
--- a/src/panfrost/pandecode/decode.c
+++ b/src/panfrost/pandecode/decode.c
@@ -626,6 +626,36 @@ pandecode_midgard_tiler_descriptor(
pandecode_log("}\n");
}
+/* TODO: The Bifrost tiler is not understood at all yet */
+
+static void
+pandecode_bifrost_tiler_descriptor(const struct midgard_tiler_descriptor *t)
+{
+ pandecode_log(".tiler = {\n");
+ pandecode_indent++;
+
+ pandecode_prop("polygon_list_size = 0x%" PRIx32, t->polygon_list_size);
+ pandecode_prop("hierarchy_mask = 0x%" PRIx16, t->hierarchy_mask);
+ pandecode_prop("flags = 0x%" PRIx16, t->flags);
+
+ MEMORY_PROP(t, polygon_list);
+ MEMORY_PROP(t, polygon_list_body);
+ MEMORY_PROP(t, heap_start);
+ MEMORY_PROP(t, heap_end);
+
+ pandecode_log(".weights = { ");
+
+ for (unsigned w = 0; w < ARRAY_SIZE(t->weights); ++w) {
+ pandecode_log_cont("%d, ", t->weights[w]);
+ }
+
+ pandecode_log("},\n");
+
+ pandecode_indent--;
+ pandecode_log("}\n");
+
+}
+
/* Information about the framebuffer passed back for
* additional analysis */
@@ -1152,7 +1182,10 @@ pandecode_mfbd_bfr(uint64_t gpu_va, int job_no, bool is_fragment, bool is_comput
const struct midgard_tiler_descriptor t = fb->tiler;
if (!is_compute)
- pandecode_midgard_tiler_descriptor(&t, fb->width1 + 1, fb->height1 + 1, is_fragment, true);
+ if (is_bifrost)
+ pandecode_bifrost_tiler_descriptor(&t);
+ else
+ pandecode_midgard_tiler_descriptor(&t, fb->width1 + 1, fb->height1 + 1, is_fragment, true);
else
pandecode_msg("XXX: skipping compute MFBD, fixme\n");