From: Brian Paul Date: Thu, 11 Jan 2018 16:56:12 +0000 (-0700) Subject: gallium/hud: compute cpu load, percent with doubles X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f774f2b52f56cb10fd7e4354e7c3861d370a58a8;p=mesa.git gallium/hud: compute cpu load, percent with doubles The hud_graph_add_value() function takes a double precision value, so compute it that way. Reviewed-by: Marek Olšák --- diff --git a/src/gallium/auxiliary/hud/hud_cpu.c b/src/gallium/auxiliary/hud/hud_cpu.c index 259bb837639..b7a524330bf 100644 --- a/src/gallium/auxiliary/hud/hud_cpu.c +++ b/src/gallium/auxiliary/hud/hud_cpu.c @@ -151,7 +151,8 @@ query_cpu_load(struct hud_graph *gr, struct pipe_context *pipe) if (info->last_time) { if (info->last_time + gr->pane->period <= now) { - uint64_t cpu_busy, cpu_total, cpu_load; + uint64_t cpu_busy, cpu_total; + double cpu_load; get_cpu_stats(info->cpu_index, &cpu_busy, &cpu_total); @@ -258,15 +259,15 @@ query_api_thread_busy_status(struct hud_graph *gr, struct pipe_context *pipe) thread_now = 0; } - unsigned percent = (thread_now - info->last_thread_time) * 100 / + double percent = (thread_now - info->last_thread_time) * 100.0 / (now - info->last_time); /* Check if the context changed a thread, so that we don't show * a random value. When a thread is changed, the new thread clock * is different, which can result in "percent" being very high. */ - if (percent > 100) - percent = 0; + if (percent > 100.0) + percent = 0.0; hud_graph_add_value(gr, percent); info->last_thread_time = thread_now;