summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2018-06-25 15:02:26 -0700
committerEric Anholt <[email protected]>2018-07-27 17:08:35 -0700
commit422910d2e75063b80ffcc16aa4087880f20319c1 (patch)
treea78b5af4d1d77d955ff55dec50fb0fa362402976
parent01b4952773e874b5fa0cc8190d846f7bbb1c18b6 (diff)
v3d: Move clif dumping to a separate step from noting where the CLs are.
Now all the printing happens from the same worklist processing.
-rw-r--r--src/broadcom/clif/clif_dump.c16
-rw-r--r--src/broadcom/clif/clif_private.h4
-rw-r--r--src/gallium/drivers/v3d/v3d_job.c2
3 files changed, 19 insertions, 3 deletions
diff --git a/src/broadcom/clif/clif_dump.c b/src/broadcom/clif/clif_dump.c
index fe68b5102eb..b48a156c5fa 100644
--- a/src/broadcom/clif/clif_dump.c
+++ b/src/broadcom/clif/clif_dump.c
@@ -170,6 +170,11 @@ clif_process_worklist(struct clif_dump *clif)
}
switch (reloc->type) {
+ case reloc_cl:
+ clif_dump_cl(clif, reloc->addr, reloc->cl.end);
+ out(clif, "\n");
+ break;
+
case reloc_gl_shader_state:
clif_dump_gl_shader_state_record(clif,
reloc,
@@ -184,13 +189,18 @@ 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)
{
- clif_dump_cl(clif, start, end);
- out(clif, "\n");
+ struct reloc_worklist_entry *entry =
+ clif_dump_add_address_to_worklist(clif, reloc_cl, start);
- clif_process_worklist(clif);
+ entry->cl.end = end;
}
void
diff --git a/src/broadcom/clif/clif_private.h b/src/broadcom/clif/clif_private.h
index 0d762c4b747..da5f2a3cc29 100644
--- a/src/broadcom/clif/clif_private.h
+++ b/src/broadcom/clif/clif_private.h
@@ -50,6 +50,7 @@ struct clif_dump {
};
enum reloc_worklist_type {
+ reloc_cl,
reloc_gl_shader_state,
reloc_generic_tile_list,
};
@@ -62,6 +63,9 @@ struct reloc_worklist_entry {
union {
struct {
+ uint32_t end;
+ } cl;
+ struct {
uint32_t num_attrs;
} shader_state;
struct {
diff --git a/src/gallium/drivers/v3d/v3d_job.c b/src/gallium/drivers/v3d/v3d_job.c
index 20f8bcc3f32..54b2c8dfac7 100644
--- a/src/gallium/drivers/v3d/v3d_job.c
+++ b/src/gallium/drivers/v3d/v3d_job.c
@@ -371,6 +371,8 @@ v3d_clif_dump(struct v3d_context *v3d, struct v3d_job *job)
job->submit.rcl_start, job->submit.rcl_end);
clif_dump_add_cl(clif, job->submit.rcl_start, job->submit.rcl_end);
+ clif_dump(clif);
+
clif_dump_destroy(clif);
}