Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> writes: > Be sure to wait for the vma to be in place before we tell the GPU to > execute from the wa batch. Since initialisation is mostly synchronous > (or rather at some point during start up we will need to sync anyway), > we can affort to do an explicit i915_vma_sync() during wa batch > construction rather than check for a required await on every context > switch. (We don't expect to change the wa bb at run time so paying the > cost once up front seems preferrable.) > > Fixes: ee2413eeed76 ("drm/i915: Add mechanism to submit a context WA on ring submission") > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> Reviewed-by: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/gt/intel_ring_submission.c | 4 ++++ > drivers/gpu/drm/i915/gt/selftest_ring_submission.c | 6 ++++++ > 2 files changed, 10 insertions(+) > > diff --git a/drivers/gpu/drm/i915/gt/intel_ring_submission.c b/drivers/gpu/drm/i915/gt/intel_ring_submission.c > index 6881317a747e..1424582e4a9b 100644 > --- a/drivers/gpu/drm/i915/gt/intel_ring_submission.c > +++ b/drivers/gpu/drm/i915/gt/intel_ring_submission.c > @@ -2015,6 +2015,10 @@ static int gen7_ctx_switch_bb_init(struct intel_engine_cs *engine) > if (err) > goto err_private; > > + err = i915_vma_sync(vma); > + if (err) > + goto err_unpin; > + > err = gen7_ctx_switch_bb_setup(engine, vma); > if (err) > goto err_unpin; > diff --git a/drivers/gpu/drm/i915/gt/selftest_ring_submission.c b/drivers/gpu/drm/i915/gt/selftest_ring_submission.c > index fcfddcd2a63d..9995faadd7e8 100644 > --- a/drivers/gpu/drm/i915/gt/selftest_ring_submission.c > +++ b/drivers/gpu/drm/i915/gt/selftest_ring_submission.c > @@ -29,6 +29,12 @@ static struct i915_vma *create_wally(struct intel_engine_cs *engine) > return ERR_PTR(err); > } > > + err = i915_vma_sync(vma); > + if (err) { > + i915_gem_object_put(obj); > + return ERR_PTR(err); > + } > + > cs = i915_gem_object_pin_map(obj, I915_MAP_WC); > if (IS_ERR(cs)) { > i915_gem_object_put(obj); > -- > 2.20.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx