pan/decode: Skip analysis for Bifrost tiler structures
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fri, 28 Feb 2020 12:25:25 +0000 (07:25 -0500)
committerMarge Bot <eric+marge@anholt.net>
Tue, 3 Mar 2020 00:03:50 +0000 (00:03 +0000)
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>

src/panfrost/pandecode/decode.c

index e5b7769942bf2855b651e0e8e1d92b50af71cd7a..af885538f0ed2ec4341849533e60bf3946b00d56 100644 (file)
@@ -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");