emit messages about buffer objects
``bt``
emit messages binding tables
+ ``capture-all``
+ flag all buffers to be captured by the kernel driver when
+ generating an error stage after a gpu hang
``clip``
emit messages about the clip unit (for old gens, includes the CLIP
program)
/* By default, capture all driver-internal buffers like shader kernels,
* surface states, dynamic states, border colors, and so on.
*/
- if (memzone < IRIS_MEMZONE_OTHER)
+ if (memzone < IRIS_MEMZONE_OTHER || INTEL_DEBUG(DEBUG_CAPTURE_ALL))
bo->real.kflags |= EXEC_OBJECT_CAPTURE;
assert(bo->real.map == NULL || bo->real.mmap_mode == mmap_mode);
bo->bufmgr = bufmgr;
bo->real.kflags = EXEC_OBJECT_SUPPORTS_48B_ADDRESS | EXEC_OBJECT_PINNED;
+ if (INTEL_DEBUG(DEBUG_CAPTURE_ALL))
+ bo->real.kflags |= EXEC_OBJECT_CAPTURE;
+
simple_mtx_lock(&bufmgr->lock);
bo->address = vma_alloc(bufmgr, memzone, size, 1);
simple_mtx_unlock(&bufmgr->lock);
bo->real.imported = true;
bo->real.mmap_mode = IRIS_MMAP_NONE;
bo->real.kflags = EXEC_OBJECT_SUPPORTS_48B_ADDRESS | EXEC_OBJECT_PINNED;
+ if (INTEL_DEBUG(DEBUG_CAPTURE_ALL))
+ bo->real.kflags |= EXEC_OBJECT_CAPTURE;
bo->address = vma_alloc(bufmgr, IRIS_MEMZONE_OTHER, bo->size, 1);
if (bo->address == 0ull) {
bo->real.imported = true;
bo->real.mmap_mode = IRIS_MMAP_NONE;
bo->real.kflags = EXEC_OBJECT_SUPPORTS_48B_ADDRESS | EXEC_OBJECT_PINNED;
+ if (INTEL_DEBUG(DEBUG_CAPTURE_ALL))
+ bo->real.kflags |= EXEC_OBJECT_CAPTURE;
bo->gem_handle = handle;
/* From the Bspec, Memory Compression - Gfx12:
pdevice->supports_48bit_addresses)
bo_flags |= EXEC_OBJECT_SUPPORTS_48B_ADDRESS;
- if ((alloc_flags & ANV_BO_ALLOC_CAPTURE) && pdevice->has_exec_capture)
+ if (((alloc_flags & ANV_BO_ALLOC_CAPTURE) ||
+ INTEL_DEBUG(DEBUG_CAPTURE_ALL)) &&
+ pdevice->has_exec_capture)
bo_flags |= EXEC_OBJECT_CAPTURE;
if (alloc_flags & ANV_BO_ALLOC_IMPLICIT_WRITE) {
const struct anv_bo *bo = execbuf.bos[i];
fprintf(stderr, " BO: addr=0x%016"PRIx64"-0x%016"PRIx64" size=0x%010"PRIx64
- " handle=%05u name=%s\n",
- bo->offset, bo->offset + bo->size - 1, bo->size, bo->gem_handle, bo->name);
+ " handle=%05u capture=%u name=%s\n",
+ bo->offset, bo->offset + bo->size - 1, bo->size, bo->gem_handle,
+ (bo->flags & EXEC_OBJECT_CAPTURE) != 0, bo->name);
}
}