v3d: Stop doing pretty-printed colorful booleans in CLIF output.

The parser wants to see a 1 or 0.  We can put "true" and "false" in a
comment to clarify that it's a boolean and the parser will skip it.
This commit is contained in:
Eric Anholt 2018-06-25 15:18:51 -07:00
parent 422910d2e7
commit 3c02838d29
5 changed files with 15 additions and 23 deletions

View File

@ -742,14 +742,12 @@ v3d_group_get_length(struct v3d_group *group)
void void
v3d_field_iterator_init(struct v3d_field_iterator *iter, v3d_field_iterator_init(struct v3d_field_iterator *iter,
struct v3d_group *group, struct v3d_group *group,
const uint8_t *p, const uint8_t *p)
bool print_colors)
{ {
memset(iter, 0, sizeof(*iter)); memset(iter, 0, sizeof(*iter));
iter->group = group; iter->group = group;
iter->p = p; iter->p = p;
iter->print_colors = print_colors;
} }
static const char * static const char *
@ -865,14 +863,11 @@ v3d_field_iterator_next(struct v3d_field_iterator *iter)
enum_name = v3d_get_enum_name(&iter->field->inline_enum, value); enum_name = v3d_get_enum_name(&iter->field->inline_enum, value);
break; break;
} }
case V3D_TYPE_BOOL: { case V3D_TYPE_BOOL:
const char *true_string =
iter->print_colors ? "\e[0;35mtrue\e[0m" : "true";
snprintf(iter->value, sizeof(iter->value), "%s", snprintf(iter->value, sizeof(iter->value), "%s",
__gen_unpack_uint(iter->p, s, e) ? __gen_unpack_uint(iter->p, s, e) ?
true_string : "false"); "1 /* true */" : "0 /* false */");
break; break;
}
case V3D_TYPE_FLOAT: case V3D_TYPE_FLOAT:
snprintf(iter->value, sizeof(iter->value), "%f", snprintf(iter->value, sizeof(iter->value), "%f",
__gen_unpack_float(iter->p, s, e)); __gen_unpack_float(iter->p, s, e));
@ -926,18 +921,18 @@ v3d_field_iterator_next(struct v3d_field_iterator *iter)
void void
v3d_print_group(struct clif_dump *clif, struct v3d_group *group, v3d_print_group(struct clif_dump *clif, struct v3d_group *group,
uint64_t offset, const uint8_t *p, bool color) uint64_t offset, const uint8_t *p)
{ {
struct v3d_field_iterator iter; struct v3d_field_iterator iter;
v3d_field_iterator_init(&iter, group, p, color); v3d_field_iterator_init(&iter, group, p);
while (v3d_field_iterator_next(&iter)) { while (v3d_field_iterator_next(&iter)) {
fprintf(clif->out, " %s: %s\n", iter.name, iter.value); fprintf(clif->out, " %s: %s\n", iter.name, iter.value);
if (iter.struct_desc) { if (iter.struct_desc) {
uint64_t struct_offset = offset + iter.offset; uint64_t struct_offset = offset + iter.offset;
v3d_print_group(clif, iter.struct_desc, v3d_print_group(clif, iter.struct_desc,
struct_offset, struct_offset,
&p[iter.offset], color); &p[iter.offset]);
} }
} }
} }

View File

@ -58,7 +58,6 @@ struct v3d_field_iterator {
int group_iter; int group_iter;
struct v3d_field *field; struct v3d_field *field;
bool print_colors;
}; };
struct v3d_group { struct v3d_group {
@ -135,14 +134,12 @@ struct v3d_field {
void v3d_field_iterator_init(struct v3d_field_iterator *iter, void v3d_field_iterator_init(struct v3d_field_iterator *iter,
struct v3d_group *group, struct v3d_group *group,
const uint8_t *p, const uint8_t *p);
bool print_colors);
bool v3d_field_iterator_next(struct v3d_field_iterator *iter); bool v3d_field_iterator_next(struct v3d_field_iterator *iter);
void v3d_print_group(struct clif_dump *clif, void v3d_print_group(struct clif_dump *clif,
struct v3d_group *group, struct v3d_group *group,
uint64_t offset, const uint8_t *p, uint64_t offset, const uint8_t *p);
bool color);
#endif /* V3D_DECODER_H */ #endif /* V3D_DECODER_H */

View File

@ -143,12 +143,12 @@ clif_dump_gl_shader_state_record(struct clif_dump *clif,
assert(attr); assert(attr);
out(clif, "GL Shader State Record at 0x%08x\n", reloc->addr); out(clif, "GL Shader State Record at 0x%08x\n", reloc->addr);
v3d_print_group(clif, state, 0, vaddr, ""); v3d_print_group(clif, state, 0, vaddr);
vaddr += v3d_group_get_length(state); vaddr += v3d_group_get_length(state);
for (int i = 0; i < reloc->shader_state.num_attrs; i++) { for (int i = 0; i < reloc->shader_state.num_attrs; i++) {
out(clif, " Attribute %d\n", i); out(clif, " Attribute %d\n", i);
v3d_print_group(clif, attr, 0, vaddr, ""); v3d_print_group(clif, attr, 0, vaddr);
vaddr += v3d_group_get_length(attr); vaddr += v3d_group_get_length(attr);
} }
} }

View File

@ -47,7 +47,7 @@ v3dX(clif_dump_packet)(struct clif_dump *clif, uint32_t offset,
*size = v3d_group_get_length(inst); *size = v3d_group_get_length(inst);
out(clif, "%s\n", v3d_group_get_name(inst)); out(clif, "%s\n", v3d_group_get_name(inst));
v3d_print_group(clif, inst, 0, cl, ""); v3d_print_group(clif, inst, 0, cl);
switch (*cl) { switch (*cl) {
case V3DX(GL_SHADER_STATE_opcode): { case V3DX(GL_SHADER_STATE_opcode): {
@ -87,7 +87,7 @@ v3dX(clif_dump_packet)(struct clif_dump *clif, uint32_t offset,
cl += *size; cl += *size;
for (int i = 0; i < values.number_of_16_bit_output_data_specs_following; i++) { for (int i = 0; i < values.number_of_16_bit_output_data_specs_following; i++) {
v3d_print_group(clif, spec, 0, cl, ""); v3d_print_group(clif, spec, 0, cl);
cl += v3d_group_get_length(spec); cl += v3d_group_get_length(spec);
*size += v3d_group_get_length(spec); *size += v3d_group_get_length(spec);
} }
@ -107,13 +107,13 @@ v3dX(clif_dump_packet)(struct clif_dump *clif, uint32_t offset,
cl += *size; cl += *size;
for (int i = 0; i < values.number_of_16_bit_output_data_specs_following; i++) { for (int i = 0; i < values.number_of_16_bit_output_data_specs_following; i++) {
v3d_print_group(clif, spec, 0, cl, ""); v3d_print_group(clif, spec, 0, cl);
cl += v3d_group_get_length(spec); cl += v3d_group_get_length(spec);
*size += v3d_group_get_length(spec); *size += v3d_group_get_length(spec);
} }
for (int i = 0; i < values.number_of_32_bit_output_buffer_address_following; i++) { for (int i = 0; i < values.number_of_32_bit_output_buffer_address_following; i++) {
v3d_print_group(clif, addr, 0, cl, ""); v3d_print_group(clif, addr, 0, cl);
cl += v3d_group_get_length(addr); cl += v3d_group_get_length(addr);
*size += v3d_group_get_length(addr); *size += v3d_group_get_length(addr);
} }

View File

@ -63,7 +63,7 @@ vc4_dump_cl(void *cl, uint32_t size, bool is_render)
fprintf(stderr, "0x%08x 0x%08x: 0x%02x %s\n", fprintf(stderr, "0x%08x 0x%08x: 0x%02x %s\n",
offset, hw_offset, header, v3d_group_get_name(inst)); offset, hw_offset, header, v3d_group_get_name(inst));
v3d_print_group(clif, inst, offset, p, ""); v3d_print_group(clif, inst, offset, p);
switch (header) { switch (header) {
case VC4_PACKET_HALT: case VC4_PACKET_HALT: