Quoting Kenneth Graunke (2018-02-26 23:54:59) > When anything goes wrong with this code, dumping the validation list > is a useful way to figure out what's happening. > --- > src/mesa/drivers/dri/i965/intel_batchbuffer.c | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > I've now used this code on multiple occasions to debug issues. Unless > someone NAKs it, I'm going to push it in the next few days. > > diff --git a/src/mesa/drivers/dri/i965/intel_batchbuffer.c > b/src/mesa/drivers/dri/i965/intel_batchbuffer.c > index d0999bb3caa..26718e0d1a2 100644 > --- a/src/mesa/drivers/dri/i965/intel_batchbuffer.c > +++ b/src/mesa/drivers/dri/i965/intel_batchbuffer.c > @@ -55,6 +55,26 @@ > 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 %-15s %p %s%-7s @ 0x%llu%s\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)" : "");
Would it not be useful to mention if the buffer contains any relocations? Just wondering if that helps. Follow offset with size. -Chris _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev