[Mesa-dev] [PATCH] i965: Fix batch-last mode to properly swap BOs.
Chris Wilson
chris at chris-wilson.co.uk
Mon Jun 4 10:25:05 UTC 2018
Quoting Kenneth Graunke (2018-06-04 11:18:37)
> On pre-4.13 kernels, which don't support I915_EXEC_BATCH_FIRST, we move
> the validation list entry to the end...but incorrectly left the exec_bo
> array alone, causing a mismatch where exec_bos[0] no longer corresponded
> with validation_list[0] (and similarly for the last entry).
>
> One example of resulting breakage is that we'd update bo->gtt_offset
> based on the wrong buffer. This wreaked total havoc when trying to use
> softpin, and likely caused unnecessary relocations in the normal case.
>
> Fixes: 29ba502a4e28471f67e4e904ae503157087efd20 (i965: Use I915_EXEC_BATCH_FIRST when available.)
Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
One thing that may have helped is if we do the post-execbuf processing
in submit_batch; execbuffer() then just becomes stuffing the pointers
into struct drm_i915_gem_execbuffer2 and calling the ioctl. At the
moment, it isn't clear where batch->exec_bos was being used again, as
one expects it to be consumed by submit_batch().
-Chris
More information about the mesa-dev
mailing list