X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fbroadcom%2Fcle%2Fv3d_decoder.c;h=23ee59fd0cf1187e71dec25e0d6e6aa46508373b;hb=9d0523b569bb7208c6e74cafc0f3945415d94336;hp=084fc64d36511890a532ffecf5142a4fe97d780a;hpb=8da47b7648f6e785bb0f177d1c3824ca0e1792a4;p=mesa.git diff --git a/src/broadcom/cle/v3d_decoder.c b/src/broadcom/cle/v3d_decoder.c index 084fc64d365..23ee59fd0cf 100644 --- a/src/broadcom/cle/v3d_decoder.c +++ b/src/broadcom/cle/v3d_decoder.c @@ -453,7 +453,9 @@ start_element(void *data, const char *element_name, const char **atts) ctx->loc.line_number = XML_GetCurrentLineNumber(ctx->parser); for (i = 0; atts[i]; i += 2) { - if (strcmp(atts[i], "name") == 0) + if (strcmp(atts[i], "shortname") == 0) + name = atts[i + 1]; + else if (strcmp(atts[i], "name") == 0 && !name) name = atts[i + 1]; else if (strcmp(atts[i], "gen") == 0) ver = atts[i + 1]; @@ -649,7 +651,8 @@ v3d_spec_load(const struct v3d_device_info *devinfo) struct parser_context ctx; void *buf; uint8_t *text_data = NULL; - uint32_t text_offset = 0, text_length = 0, total_length; + uint32_t text_offset = 0, text_length = 0; + ASSERTED uint32_t total_length; for (int i = 0; i < ARRAY_SIZE(genxml_files_table); i++) { if (i != 0) { @@ -832,7 +835,7 @@ iter_advance_field(struct v3d_field_iterator *iter) iter->field = iter->group->fields[iter->field_iter++]; if (iter->field->name) - strncpy(iter->name, iter->field->name, sizeof(iter->name)); + snprintf(iter->name, sizeof(iter->name), "%s", iter->field->name); else memset(iter->name, 0, sizeof(iter->name)); iter->offset = iter_group_offset_bits(iter, iter->group_iter) / 8 + @@ -925,14 +928,24 @@ v3d_field_iterator_next(struct clif_dump *clif, struct v3d_field_iterator *iter) iter->field->type.v3d_struct->name); break; case V3D_TYPE_SFIXED: - snprintf(iter->value, sizeof(iter->value), "%f", - __gen_unpack_sfixed(iter->p, s, e, - iter->field->type.f)); + if (clif->pretty) { + snprintf(iter->value, sizeof(iter->value), "%f", + __gen_unpack_sfixed(iter->p, s, e, + iter->field->type.f)); + } else { + snprintf(iter->value, sizeof(iter->value), "%u", + (unsigned)__gen_unpack_uint(iter->p, s, e)); + } break; case V3D_TYPE_UFIXED: - snprintf(iter->value, sizeof(iter->value), "%f", - __gen_unpack_ufixed(iter->p, s, e, - iter->field->type.f)); + if (clif->pretty) { + snprintf(iter->value, sizeof(iter->value), "%f", + __gen_unpack_ufixed(iter->p, s, e, + iter->field->type.f)); + } else { + snprintf(iter->value, sizeof(iter->value), "%u", + (unsigned)__gen_unpack_uint(iter->p, s, e)); + } break; case V3D_TYPE_MBO: break;