X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fbroadcom%2Fcle%2Fv3d_decoder.c;h=f97aa6604cb1a5218b8d93959e273332f7707e6e;hb=3c02838d2956692101ae205f1aff362fa3a93c76;hp=832ff3c7089329b371bdea5ebaefcf974f5d4f79;hpb=725561c0b6ccdf57190519c1ffcb653307ec08ec;p=mesa.git diff --git a/src/broadcom/cle/v3d_decoder.c b/src/broadcom/cle/v3d_decoder.c index 832ff3c7089..f97aa6604cb 100644 --- a/src/broadcom/cle/v3d_decoder.c +++ b/src/broadcom/cle/v3d_decoder.c @@ -37,6 +37,7 @@ #include "v3d_decoder.h" #include "v3d_packet_helpers.h" #include "v3d_xml.h" +#include "broadcom/clif/clif_private.h" struct v3d_spec { uint32_t ver; @@ -741,14 +742,12 @@ v3d_group_get_length(struct v3d_group *group) void v3d_field_iterator_init(struct v3d_field_iterator *iter, struct v3d_group *group, - const uint8_t *p, - bool print_colors) + const uint8_t *p) { memset(iter, 0, sizeof(*iter)); iter->group = group; iter->p = p; - iter->print_colors = print_colors; } static const char * @@ -858,18 +857,17 @@ v3d_field_iterator_next(struct v3d_field_iterator *iter) uint32_t value = __gen_unpack_uint(iter->p, s, e); if (iter->field->minus_one) value++; + if (strcmp(iter->field->name, "Vec size") == 0 && value == 0) + value = 1 << (e - s); snprintf(iter->value, sizeof(iter->value), "%u", value); enum_name = v3d_get_enum_name(&iter->field->inline_enum, value); break; } - case V3D_TYPE_BOOL: { - const char *true_string = - iter->print_colors ? "\e[0;35mtrue\e[0m" : "true"; + case V3D_TYPE_BOOL: snprintf(iter->value, sizeof(iter->value), "%s", __gen_unpack_uint(iter->p, s, e) ? - true_string : "false"); + "1 /* true */" : "0 /* false */"); break; - } case V3D_TYPE_FLOAT: snprintf(iter->value, sizeof(iter->value), "%f", __gen_unpack_float(iter->p, s, e)); @@ -915,26 +913,26 @@ v3d_field_iterator_next(struct v3d_field_iterator *iter) if (enum_name) { int length = strlen(iter->value); snprintf(iter->value + length, sizeof(iter->value) - length, - " (%s)", enum_name); + " /* %s */", enum_name); } return true; } void -v3d_print_group(FILE *outfile, struct v3d_group *group, - uint64_t offset, const uint8_t *p, bool color) +v3d_print_group(struct clif_dump *clif, struct v3d_group *group, + uint64_t offset, const uint8_t *p) { 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)) { - fprintf(outfile, " %s: %s\n", iter.name, iter.value); + fprintf(clif->out, " %s: %s\n", iter.name, iter.value); if (iter.struct_desc) { uint64_t struct_offset = offset + iter.offset; - v3d_print_group(outfile, iter.struct_desc, + v3d_print_group(clif, iter.struct_desc, struct_offset, - &p[iter.offset], color); + &p[iter.offset]); } } }