summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2017-11-28 10:07:43 -0800
committerKenneth Graunke <[email protected]>2018-03-01 15:46:11 -0800
commitb04c5cece7764967e834f4ca0ce5d650df5f8893 (patch)
tree91b17d9d84941377432e66a2f412bbafc33566aa /src/mesa
parentff4726077d86800d33520581f154a27dac408588 (diff)
i965: Add debugging code to dump the validation list.
When anything goes wrong with this code, dumping the validation list is a useful way to figure out what's happening.
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/i965/intel_batchbuffer.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/intel_batchbuffer.c b/src/mesa/drivers/dri/i965/intel_batchbuffer.c
index 5385347dba2..c16f7c4d74b 100644
--- a/src/mesa/drivers/dri/i965/intel_batchbuffer.c
+++ b/src/mesa/drivers/dri/i965/intel_batchbuffer.c
@@ -55,6 +55,28 @@
static void
intel_batchbuffer_reset(struct brw_context *brw);
+UNUSED static void
+dump_validation_list(struct intel_batchbuffer *batch)
+{
+ fprintf(stderr, "Validation list (length %d):\n", batch->exec_count);
+
+ for (int i = 0; i < batch->exec_count; i++) {
+ uint64_t flags = batch->validation_list[i].flags;
+ assert(batch->validation_list[i].handle ==
+ batch->exec_bos[i]->gem_handle);
+ fprintf(stderr, "[%2d]: %2d %-14s %p %s%-7s @ 0x%016llu%s (%"PRIu64"B)\n",
+ i,
+ batch->validation_list[i].handle,
+ batch->exec_bos[i]->name,
+ batch->exec_bos[i],
+ (flags & EXEC_OBJECT_SUPPORTS_48B_ADDRESS) ? "(48b" : "(32b",
+ (flags & EXEC_OBJECT_WRITE) ? " write)" : ")",
+ batch->validation_list[i].offset,
+ (flags & EXEC_OBJECT_PINNED) ? " (pinned)" : "",
+ batch->exec_bos[i]->size);
+ }
+}
+
static bool
uint_key_compare(const void *a, const void *b)
{