[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