struct clif_dump *
clif_dump_init(const struct v3d_device_info *devinfo,
- FILE *out)
+ FILE *out, bool pretty)
{
struct clif_dump *clif = rzalloc(NULL, struct clif_dump);
clif->devinfo = devinfo;
clif->out = out;
clif->spec = v3d_spec_load(devinfo);
+ clif->pretty = pretty;
list_inithead(&clif->worklist);
ralloc_free(clif);
}
-static bool
-clif_lookup_vaddr(struct clif_dump *clif, uint32_t addr, void **vaddr)
+struct clif_bo *
+clif_lookup_bo(struct clif_dump *clif, uint32_t addr)
{
for (int i = 0; i < clif->bo_count; i++) {
struct clif_bo *bo = &clif->bo[i];
if (addr >= bo->offset &&
addr < bo->offset + bo->size) {
- *vaddr = bo->vaddr + addr - bo->offset;
- return true;
+ return bo;
}
}
- return false;
+ return NULL;
+}
+
+static bool
+clif_lookup_vaddr(struct clif_dump *clif, uint32_t addr, void **vaddr)
+{
+ struct clif_bo *bo = clif_lookup_bo(clif, addr);
+ if (!bo)
+ return false;
+
+ *vaddr = bo->vaddr + addr - bo->offset;
+ return true;
}
#define out_uint(_clif, field) out(_clif, " /* %s = */ %u\n", \
return;
}
+ out(clif, "@format ctrllist\n");
+
uint32_t size;
uint8_t *cl = start_vaddr;
while (clif_dump_packet(clif, start, cl, &size)) {
assert(state);
assert(attr);
- out(clif, "GL Shader State Record at 0x%08x\n", reloc->addr);
- v3d_print_group(clif, state, 0, vaddr, "");
+ 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);
- v3d_print_group(clif, attr, 0, vaddr, "");
+ out(clif, "@format shadrec_gl_attr /* %d */\n", i);
+ v3d_print_group(clif, attr, 0, vaddr);
vaddr += v3d_group_get_length(attr);
}
}