[Mesa-dev] [PATCH 1/2] i965: Add debugging code to dump the validation list.

Chris Wilson chris at chris-wilson.co.uk
Tue Feb 27 10:03:52 UTC 2018


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


More information about the mesa-dev mailing list