diff options
author | Eric Anholt <[email protected]> | 2018-06-25 15:02:26 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2018-07-27 17:08:35 -0700 |
commit | 422910d2e75063b80ffcc16aa4087880f20319c1 (patch) | |
tree | a78b5af4d1d77d955ff55dec50fb0fa362402976 | |
parent | 01b4952773e874b5fa0cc8190d846f7bbb1c18b6 (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.c | 16 | ||||
-rw-r--r-- | src/broadcom/clif/clif_private.h | 4 | ||||
-rw-r--r-- | src/gallium/drivers/v3d/v3d_job.c | 2 |
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); } |