drm/i915/selftests: Add the usual batch vma managements to st_workarounds
To properly handle asynchronous migration of batch objects, we need to couple the fences on the incoming batch into the request and should not assume that they always start idle. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Cc: Matthew Auld <matthew.auld@intel.com> Reviewed-by: Matthew Auld <matthew.auld@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20190826072149.9447-1-chris@chris-wilson.co.uk
This commit is contained in:
parent
acd674af95
commit
1d5b777331
|
@ -565,6 +565,14 @@ static int check_dirty_whitelist(struct i915_gem_context *ctx,
|
|||
goto err_request;
|
||||
}
|
||||
|
||||
i915_vma_lock(batch);
|
||||
err = i915_request_await_object(rq, batch->obj, false);
|
||||
if (err == 0)
|
||||
err = i915_vma_move_to_active(batch, rq, 0);
|
||||
i915_vma_unlock(batch);
|
||||
if (err)
|
||||
goto err_request;
|
||||
|
||||
err = engine->emit_bb_start(rq,
|
||||
batch->node.start, PAGE_SIZE,
|
||||
0);
|
||||
|
@ -850,6 +858,14 @@ static int scrub_whitelisted_registers(struct i915_gem_context *ctx,
|
|||
goto err_request;
|
||||
}
|
||||
|
||||
i915_vma_lock(batch);
|
||||
err = i915_request_await_object(rq, batch->obj, false);
|
||||
if (err == 0)
|
||||
err = i915_vma_move_to_active(batch, rq, 0);
|
||||
i915_vma_unlock(batch);
|
||||
if (err)
|
||||
goto err_request;
|
||||
|
||||
/* Perform the writes from an unprivileged "user" batch */
|
||||
err = engine->emit_bb_start(rq, batch->node.start, 0, 0);
|
||||
|
||||
|
|
Loading…
Reference in New Issue