v3d: Include commands to run the BCL and RCL in CLIF dumps.
[mesa.git] / src / broadcom / clif / clif_dump.c
index a637ba5999fe44161a6aa07eecaa43af2e885705..9562686c6d34dde3c2d4419b04b8f061b550fe0d 100644 (file)
@@ -24,6 +24,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include "drm-uapi/v3d_drm.h"
 #include "clif_dump.h"
 #include "clif_private.h"
 #include "util/list.h"
@@ -202,11 +203,6 @@ clif_process_worklist(struct clif_dump *clif)
         }
 }
 
-void clif_dump(struct clif_dump *clif)
-{
-        clif_process_worklist(clif);
-}
-
 void
 clif_dump_add_cl(struct clif_dump *clif, uint32_t start, uint32_t end)
 {
@@ -216,6 +212,35 @@ clif_dump_add_cl(struct clif_dump *clif, uint32_t start, uint32_t end)
         entry->cl.end = end;
 }
 
+void
+clif_dump(struct clif_dump *clif, const struct drm_v3d_submit_cl *submit)
+{
+        clif_dump_add_cl(clif, submit->bcl_start, submit->bcl_end);
+        clif_dump_add_cl(clif, submit->rcl_start, submit->rcl_end);
+
+        clif_process_worklist(clif);
+
+        out(clif, "@add_bin 0\n  ");
+        out_address(clif, submit->bcl_start);
+        out(clif, "\n  ");
+        out_address(clif, submit->bcl_end);
+        out(clif, "\n  ");
+        out_address(clif, submit->qma);
+        out(clif, "\n  %d\n  ", submit->qms);
+        out_address(clif, submit->qts);
+        out(clif, "\n");
+        out(clif, "@wait_bin_all_cores\n");
+
+        out(clif, "@add_render 0\n  ");
+        out_address(clif, submit->rcl_start);
+        out(clif, "\n  ");
+        out_address(clif, submit->rcl_end);
+        out(clif, "\n  ");
+        out_address(clif, submit->qma);
+        out(clif, "\n");
+        out(clif, "@wait_render_all_cores\n");
+}
+
 void
 clif_dump_add_bo(struct clif_dump *clif, const char *name,
                  uint32_t offset, uint32_t size, void *vaddr)