From: Nicolai Hähnle Date: Sun, 22 Oct 2017 15:39:05 +0000 (+0200) Subject: radeonsi: record and dump time of flush X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1a6d9e087a2171ae4d0f2ac2697ba4042fbad4c1;p=mesa.git radeonsi: record and dump time of flush Reviewed-by: Marek Olšák --- diff --git a/src/gallium/drivers/radeonsi/si_debug.c b/src/gallium/drivers/radeonsi/si_debug.c index 88fa11acda5..447b4ef8e98 100644 --- a/src/gallium/drivers/radeonsi/si_debug.c +++ b/src/gallium/drivers/radeonsi/si_debug.c @@ -27,6 +27,7 @@ #include "gfx9d.h" #include "sid_tables.h" #include "ddebug/dd_util.h" +#include "util/u_dump.h" #include "util/u_log.h" #include "util/u_memory.h" #include "ac_debug.h" @@ -373,7 +374,9 @@ static void si_log_chunk_type_cs_print(void *data, FILE *f) } if (chunk->dump_bo_list) { - fprintf(f, "Flushing.\n\n"); + fprintf(f, "Flushing. Time: "); + util_dump_ns(f, scs->time_flush); + fprintf(f, "\n\n"); si_dump_bo_list(ctx, &scs->gfx, f); } } diff --git a/src/gallium/drivers/radeonsi/si_hw_context.c b/src/gallium/drivers/radeonsi/si_hw_context.c index 0d54b12df9e..15234d72725 100644 --- a/src/gallium/drivers/radeonsi/si_hw_context.c +++ b/src/gallium/drivers/radeonsi/si_hw_context.c @@ -24,6 +24,8 @@ #include "si_pipe.h" #include "radeon/r600_cs.h" +#include "util/os_time.h" + void si_destroy_saved_cs(struct si_saved_cs *scs) { si_clear_saved_cs(&scs->gfx); @@ -120,6 +122,7 @@ void si_context_gfx_flush(void *context, unsigned flags, /* Save the IB for debug contexts. */ si_save_cs(ws, cs, &ctx->current_saved_cs->gfx, true); ctx->current_saved_cs->flushed = true; + ctx->current_saved_cs->time_flush = os_time_get_nano(); } /* Flush the CS. */ diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index de089e351ce..751441df1bc 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -345,6 +345,7 @@ struct si_saved_cs { unsigned gfx_last_dw; bool flushed; + int64_t time_flush; }; struct si_context {