[Mesa-dev] [PATCH] Revert "gallium/hud: automatically print % if max_value == 100"
Brian Paul
brianp at vmware.com
Fri Sep 30 19:37:40 UTC 2016
On 09/30/2016 12:17 PM, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak at amd.com>
>
> This reverts commit dbfeb0ec12d6550e68de1bcd164e422e79bccf2d.
>
> With max_value being rounded to 100, it's often wrong.
Yeah, I noticed that too.
Reviewed-by: Brian Paul <brianp at vmware.com>
> ---
> src/gallium/auxiliary/hud/hud_context.c | 18 ++++++------------
> 1 file changed, 6 insertions(+), 12 deletions(-)
>
> diff --git a/src/gallium/auxiliary/hud/hud_context.c b/src/gallium/auxiliary/hud/hud_context.c
> index 3445488..31e81f0 100644
> --- a/src/gallium/auxiliary/hud/hud_context.c
> +++ b/src/gallium/auxiliary/hud/hud_context.c
> @@ -238,22 +238,22 @@ hud_draw_string(struct hud_context *hud, unsigned x, unsigned y,
> vertices[num++] = (float) ty1;
>
> x += hud->font.glyph_width;
> s++;
> }
>
> hud->text.num_vertices += num/4;
> }
>
> static void
> -number_to_human_readable(uint64_t num, uint64_t max_value,
> - enum pipe_driver_query_type type, char *out)
> +number_to_human_readable(uint64_t num, enum pipe_driver_query_type type,
> + char *out)
> {
> static const char *byte_units[] =
> {" B", " KB", " MB", " GB", " TB", " PB", " EB"};
> static const char *metric_units[] =
> {"", " k", " M", " G", " T", " P", " E"};
> static const char *time_units[] =
> {" us", " ms", " s"}; /* based on microseconds */
> static const char *hz_units[] =
> {" Hz", " KHz", " MHz", " GHz"};
> static const char *percent_units[] = {"%"};
> @@ -300,27 +300,22 @@ number_to_human_readable(uint64_t num, uint64_t max_value,
> break;
> case PIPE_DRIVER_QUERY_TYPE_HZ:
> max_unit = ARRAY_SIZE(hz_units)-1;
> units = hz_units;
> break;
> case PIPE_DRIVER_QUERY_TYPE_WATTS:
> max_unit = ARRAY_SIZE(watt_units)-1;
> units = watt_units;
> break;
> default:
> - if (max_value == 100) {
> - max_unit = ARRAY_SIZE(percent_units)-1;
> - units = percent_units;
> - } else {
> - max_unit = ARRAY_SIZE(metric_units)-1;
> - units = metric_units;
> - }
> + max_unit = ARRAY_SIZE(metric_units)-1;
> + units = metric_units;
> }
>
> while (d > divisor && unit < max_unit) {
> d /= divisor;
> unit++;
> }
>
> /* Round to 3 decimal places so as not to print trailing zeros. */
> if (d*1000 != (int)(d*1000))
> d = round(d * 1000) / 1000;
> @@ -376,33 +371,32 @@ hud_pane_accumulate_vertices(struct hud_context *hud,
> pane->x1, pane->y1,
> pane->x2, pane->y2);
>
> /* draw numbers on the right-hand side */
> for (i = 0; i <= last_line; i++) {
> unsigned x = pane->x2 + 2;
> unsigned y = pane->inner_y1 +
> pane->inner_height * (last_line - i) / last_line -
> hud->font.glyph_height / 2;
>
> - number_to_human_readable(pane->max_value * i / last_line, pane->max_value,
> + number_to_human_readable(pane->max_value * i / last_line,
> pane->type, str);
> hud_draw_string(hud, x, y, "%s", str);
> }
>
> /* draw info below the pane */
> i = 0;
> LIST_FOR_EACH_ENTRY(gr, &pane->graph_list, head) {
> unsigned x = pane->x1 + 2;
> unsigned y = pane->y2 + 2 + i*hud->font.glyph_height;
>
> - number_to_human_readable(gr->current_value, pane->max_value,
> - pane->type, str);
> + number_to_human_readable(gr->current_value, pane->type, str);
> hud_draw_string(hud, x, y, " %s: %s", gr->name, str);
> i++;
> }
>
> /* draw border */
> assert(hud->whitelines.num_vertices + num/2 + 8 <= hud->whitelines.max_num_vertices);
> line_verts[num++] = (float) pane->x1;
> line_verts[num++] = (float) pane->y1;
> line_verts[num++] = (float) pane->x2;
> line_verts[num++] = (float) pane->y1;
>
More information about the mesa-dev
mailing list