radeonsi: record and dump time of flush
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Sun, 22 Oct 2017 15:39:05 +0000 (17:39 +0200)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Thu, 9 Nov 2017 13:01:04 +0000 (14:01 +0100)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeonsi/si_debug.c
src/gallium/drivers/radeonsi/si_hw_context.c
src/gallium/drivers/radeonsi/si_pipe.h

index 88fa11acda51d2c5eb0ddf554f4951cee5f80d48..447b4ef8e98d29d28035e6419ba81c13da651efd 100644 (file)
@@ -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);
        }
 }
index 0d54b12df9e40898907e1be6591882570e7c21fd..15234d72725217c16b076c39ad992d1bdc1f1862 100644 (file)
@@ -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. */
index de089e351ce1c59c489773ff3fa5fad42b6fef1c..751441df1bc180ee5bccba418fd16d0fb1b38d44 100644 (file)
@@ -345,6 +345,7 @@ struct si_saved_cs {
 
        unsigned                gfx_last_dw;
        bool                    flushed;
+       int64_t                 time_flush;
 };
 
 struct si_context {