i965: disable shadow batches when batch debugging.
authorDave Airlie <airlied@gmail.com>
Fri, 1 May 2020 03:28:56 +0000 (13:28 +1000)
committerDave Airlie <airlied@redhat.com>
Sat, 2 May 2020 19:47:23 +0000 (05:47 +1000)
If you want to dump batch state, it needs to have the relocs processed
but the relocs don't get processed on the shadow batch.

Choose debugging over speed here.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4846>

src/mesa/drivers/dri/i965/intel_batchbuffer.c

index 74d2a3dc53e046d8eb8a6fa800f64dfde84f9409..bfb39c1ea86a7e99d5777493cb33775ea721786d 100644 (file)
@@ -130,7 +130,11 @@ intel_batchbuffer_init(struct brw_context *brw)
    struct intel_batchbuffer *batch = &brw->batch;
    const struct gen_device_info *devinfo = &screen->devinfo;
 
-   batch->use_shadow_copy = !devinfo->has_llc;
+   if (unlikely(INTEL_DEBUG & DEBUG_BATCH)) {
+      /* The shadow doesn't get relocs written so state decode fails. */
+      batch->use_shadow_copy = false;
+   } else
+      batch->use_shadow_copy = !devinfo->has_llc;
 
    init_reloc_list(&batch->batch_relocs, 250);
    init_reloc_list(&batch->state_relocs, 250);