X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fauxiliary%2Fhud%2Fhud_context.c;h=2deb48d18e7609ec8f72a4bebfc0a72921d183d1;hb=ec4364d57ec2990e9cc81bb5a932bc115d3e6c44;hp=ae2e0fb1bee2030d852bf274e20ef3dac9d7a9f6;hpb=11cf079b678aed0c5d4d0df9fa59949ec1d07794;p=mesa.git diff --git a/src/gallium/auxiliary/hud/hud_context.c b/src/gallium/auxiliary/hud/hud_context.c index ae2e0fb1bee..2deb48d18e7 100644 --- a/src/gallium/auxiliary/hud/hud_context.c +++ b/src/gallium/auxiliary/hud/hud_context.c @@ -204,7 +204,7 @@ hud_draw_string(struct hud_context *hud, unsigned x, unsigned y, } static void -number_to_human_readable(uint64_t num, enum pipe_driver_query_type type, +number_to_human_readable(double num, enum pipe_driver_query_type type, char *out) { static const char *byte_units[] = @@ -861,13 +861,19 @@ hud_pane_add_graph(struct hud_pane *pane, struct hud_graph *gr) } void -hud_graph_add_value(struct hud_graph *gr, uint64_t value) +hud_graph_add_value(struct hud_graph *gr, double value) { gr->current_value = value; value = value > gr->pane->ceiling ? gr->pane->ceiling : value; - if (gr->fd) - fprintf(gr->fd, "%" PRIu64 "\n", value); + if (gr->fd) { + if (fabs(value - lround(value)) > FLT_EPSILON) { + fprintf(gr->fd, "%f\n", value); + } + else { + fprintf(gr->fd, "%" PRIu64 "\n", (uint64_t) lround(value)); + } + } if (gr->index == gr->pane->max_num_vertices) { gr->vertices[0] = 0; @@ -1150,8 +1156,20 @@ hud_parse_env_var(struct hud_context *hud, const char *env) else if (sscanf(name, "cpu%u%s", &i, s) == 1) { hud_cpu_graph_install(pane, i); } + else if (strcmp(name, "API-thread-busy") == 0) { + hud_thread_busy_install(pane, name, false); + } + else if (strcmp(name, "API-thread-offloaded-slots") == 0) { + hud_thread_counter_install(pane, name, HUD_COUNTER_OFFLOADED); + } + else if (strcmp(name, "API-thread-direct-slots") == 0) { + hud_thread_counter_install(pane, name, HUD_COUNTER_DIRECT); + } + else if (strcmp(name, "API-thread-num-syncs") == 0) { + hud_thread_counter_install(pane, name, HUD_COUNTER_SYNCS); + } else if (strcmp(name, "main-thread-busy") == 0) { - hud_main_thread_busy_install(pane, name); + hud_thread_busy_install(pane, name, true); } #if HAVE_GALLIUM_EXTRA_HUD else if (sscanf(name, "nic-rx-%s", arg_name) == 1) {