From: Eric Anholt Date: Mon, 25 Jun 2018 22:02:26 +0000 (-0700) Subject: v3d: Move clif dumping to a separate step from noting where the CLs are. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=422910d2e75063b80ffcc16aa4087880f20319c1;p=mesa.git v3d: Move clif dumping to a separate step from noting where the CLs are. Now all the printing happens from the same worklist processing. --- 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, }; @@ -61,6 +62,9 @@ struct reloc_worklist_entry { uint32_t addr; union { + struct { + uint32_t end; + } cl; struct { uint32_t num_attrs; } shader_state; 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); }