Some comments on patches 1 & 3. Apart from that: Reviewed-by: Nicolai Hähnle <nicolai.haeh...@amd.com>
On 20.02.2017 18:44, Marek Olšák wrote:
From: Marek Olšák <marek.ol...@amd.com> --- src/gallium/auxiliary/hud/hud_cpu.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/gallium/auxiliary/hud/hud_cpu.c b/src/gallium/auxiliary/hud/hud_cpu.c index 1cba353..302445d 100644 --- a/src/gallium/auxiliary/hud/hud_cpu.c +++ b/src/gallium/auxiliary/hud/hud_cpu.c @@ -237,24 +237,30 @@ struct thread_info { static void query_api_thread_busy_status(struct hud_graph *gr) { struct thread_info *info = gr->query_data; int64_t now = os_time_get_nano(); if (info->last_time) { if (info->last_time + gr->pane->period*1000 <= now) { int64_t thread_now = pipe_current_thread_get_time_nano(); - - hud_graph_add_value(gr, - (thread_now - info->last_thread_time) * 100 / - (now - info->last_time)); + unsigned percent = (thread_now - info->last_thread_time) * 100 / + (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; + hud_graph_add_value(gr, percent); info->last_thread_time = thread_now; info->last_time = now; } } else { /* initialize */ info->last_time = now; info->last_thread_time = pipe_current_thread_get_time_nano(); } }
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev