v3d: Emit commands to switch CLIF parser to CL/shader/attr input mode.

By default after saying you are emitting a buffer, it'll expect a buffer
size.  Once you set a format, it'll keep parsing that format until you
announce something else.
This commit is contained in:
Eric Anholt 2018-06-26 13:04:09 -07:00
parent a57770aa37
commit 3ee0ab599e
2 changed files with 5 additions and 2 deletions

View file

@ -129,6 +129,8 @@ clif_dump_cl(struct clif_dump *clif, uint32_t start, uint32_t end)
return;
}
out(clif, "@format ctrllist\n");
uint32_t size;
uint8_t *cl = start_vaddr;
while (clif_dump_packet(clif, start, cl, &size)) {
@ -152,12 +154,12 @@ clif_dump_gl_shader_state_record(struct clif_dump *clif,
assert(state);
assert(attr);
out(clif, "GL Shader State Record at 0x%08x\n", reloc->addr);
out(clif, "@format shadrec_gl_main\n");
v3d_print_group(clif, state, 0, vaddr);
vaddr += v3d_group_get_length(state);
for (int i = 0; i < reloc->shader_state.num_attrs; i++) {
out(clif, " Attribute %d\n", i);
out(clif, "@format shadrec_gl_attr /* %d */\n", i);
v3d_print_group(clif, attr, 0, vaddr);
vaddr += v3d_group_get_length(attr);
}

View file

@ -91,6 +91,7 @@ v3dX(clif_dump_packet)(struct clif_dump *clif, uint32_t offset,
cl += v3d_group_get_length(spec);
*size += v3d_group_get_length(spec);
}
out(clif, "@format ctrllist\n");
break;
}
#else /* V3D_VERSION < 40 */