aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorNicolai Hähnle <[email protected]>2017-10-22 17:39:05 +0200
committerNicolai Hähnle <[email protected]>2017-11-09 14:01:04 +0100
commit1a6d9e087a2171ae4d0f2ac2697ba4042fbad4c1 (patch)
treef8d3571be0645d3e66d8efbe5d2f1e5f6969146b /src/gallium
parentb07569ad8b7bbe6ea33c984013a2f2607cd7ddaf (diff)
radeonsi: record and dump time of flush
Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/radeonsi/si_debug.c5
-rw-r--r--src/gallium/drivers/radeonsi/si_hw_context.c3
-rw-r--r--src/gallium/drivers/radeonsi/si_pipe.h1
3 files changed, 8 insertions, 1 deletions
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 {