From: Chris Wilson Date: Sun, 18 Aug 2013 10:15:08 +0000 (+0100) Subject: overlay: Count flips per plane X-Git-Tag: intel-gpu-tools-1.4~182 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=98572f0446e62eb889f28efe39fc1501e96093c1;p=profile%2Fextras%2Fintel-gpu-tools.git overlay: Count flips per plane Stop the misleading double-accounting of flips when we have multiple displays active. Signed-off-by: Chris Wilson --- diff --git a/overlay/gpu-perf.c b/overlay/gpu-perf.c index 642d20c..d30d212 100644 --- a/overlay/gpu-perf.c +++ b/overlay/gpu-perf.c @@ -264,7 +264,9 @@ static int busy_end(struct gpu_perf *gp, const void *event) static int flip_complete(struct gpu_perf *gp, const void *event) { - gp->flip_complete++; + const struct sample_event *sample = event; + + gp->flip_complete[sample->raw[0]]++; return 1; } diff --git a/overlay/gpu-perf.h b/overlay/gpu-perf.h index c0e0030..c23d3de 100644 --- a/overlay/gpu-perf.h +++ b/overlay/gpu-perf.h @@ -11,7 +11,7 @@ struct gpu_perf { int (*func)(struct gpu_perf *, const void *); } *sample; - int flip_complete; + int flip_complete[4]; struct gpu_perf_comm { struct gpu_perf_comm *next; char name[256]; diff --git a/overlay/overlay.c b/overlay/overlay.c index 4232711..2ff9e9c 100644 --- a/overlay/overlay.c +++ b/overlay/overlay.c @@ -321,8 +321,23 @@ static void show_gpu_perf(struct overlay_context *ctx, struct overlay_gpu_perf * prev = &comm->next; } - sprintf(buf, "Flips: %d", gp->gpu_perf.flip_complete); - gp->gpu_perf.flip_complete = 0; + { + int has_flips = 0, len; + for (n = 0; n < 4; n++) { + if (gp->gpu_perf.flip_complete[n]) + has_flips = n + 1; + } + if (has_flips) { + len = sprintf(buf, "Flips:"); + for (n = 0; n < has_flips; n++) + len += sprintf(buf + len, "%s %d", + n ? "," : "", + gp->gpu_perf.flip_complete[n]); + } else { + sprintf(buf, "Flips: 0"); + } + memset(gp->gpu_perf.flip_complete, 0, sizeof(gp->gpu_perf.flip_complete)); + } cairo_set_source_rgba(ctx->cr, 1, 1, 1, 1); cairo_move_to(ctx->cr, 12, y); cairo_show_text(ctx->cr, buf);