v3d: Dump the contents off all the buffers in CLIF mode.
[mesa.git] / src / broadcom / clif / clif_private.h
index 8753ba229f8a3217220df5a57434796b033f2888..597d0b5067392f8550de6df8ccffcb4a675ead04 100644 (file)
@@ -33,6 +33,7 @@ struct clif_bo {
         uint32_t offset;
         uint32_t size;
         void *vaddr;
+        bool dumped;
 };
 
 struct clif_dump {
@@ -89,11 +90,11 @@ clif_dump_add_address_to_worklist(struct clif_dump *clif,
                                   uint32_t addr);
 
 bool v3d33_clif_dump_packet(struct clif_dump *clif, uint32_t offset,
-                            const uint8_t *cl, uint32_t *size);
+                            const uint8_t *cl, uint32_t *size, bool reloc_mode);
 bool v3d41_clif_dump_packet(struct clif_dump *clif, uint32_t offset,
-                            const uint8_t *cl, uint32_t *size);
+                            const uint8_t *cl, uint32_t *size, bool reloc_mode);
 bool v3d42_clif_dump_packet(struct clif_dump *clif, uint32_t offset,
-                            const uint8_t *cl, uint32_t *size);
+                            const uint8_t *cl, uint32_t *size, bool reloc_mode);
 
 static inline void
 out(struct clif_dump *clif, const char *fmt, ...)
@@ -105,4 +106,18 @@ out(struct clif_dump *clif, const char *fmt, ...)
         va_end(args);
 }
 
+static inline void
+out_address(struct clif_dump *clif, uint32_t addr)
+{
+        struct clif_bo *bo = clif_lookup_bo(clif, addr);
+        if (bo) {
+                out(clif, "[%s+0x%08x] /* 0x%08x */",
+                    bo->name, addr - bo->offset, addr);
+        } else if (addr) {
+                out(clif, "/* XXX: BO unknown */ 0x%08x", addr);
+        } else {
+                out(clif, "[null]");
+        }
+}
+
 #endif /* CLIF_PRIVATE_H */