[Intel-gfx] [PATCH 3/3] drm/i915/gt: Stop invalidating the PD cachelines for gen7
Mika Kuoppala
mika.kuoppala at linux.intel.com
Thu Feb 6 16:32:22 UTC 2020
Chris Wilson <chris at chris-wilson.co.uk> writes:
> Trust that the HW does the right thing after simply updating the
> PD_DIR_BASE?
Bspec offers an invalidate before writing the base.
So, lets assume the DCLV write is superfluous as it will be
the same.
Then the sequence would be TLB_INVLIDATE followed by
PP_DIR_BASE (which will all pds)
-Mika
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Mika Kuoppala <mika.kuoppala at linux.intel.com>
> ---
> drivers/gpu/drm/i915/gt/intel_ring_submission.c | 10 +---------
> 1 file changed, 1 insertion(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/intel_ring_submission.c b/drivers/gpu/drm/i915/gt/intel_ring_submission.c
> index f915a63e1110..23f4fc2669d1 100644
> --- a/drivers/gpu/drm/i915/gt/intel_ring_submission.c
> +++ b/drivers/gpu/drm/i915/gt/intel_ring_submission.c
> @@ -1341,14 +1341,10 @@ static int load_pd_dir(struct i915_request *rq,
> const struct intel_engine_cs * const engine = rq->engine;
> u32 *cs;
>
> - cs = intel_ring_begin(rq, 12);
> + cs = intel_ring_begin(rq, 6);
> if (IS_ERR(cs))
> return PTR_ERR(cs);
>
> - *cs++ = MI_LOAD_REGISTER_IMM(1);
> - *cs++ = i915_mmio_reg_offset(RING_PP_DIR_DCLV(engine->mmio_base));
> - *cs++ = valid;
> -
> *cs++ = MI_LOAD_REGISTER_IMM(1);
> *cs++ = i915_mmio_reg_offset(RING_PP_DIR_BASE(engine->mmio_base));
> *cs++ = px_base(ppgtt->pd)->ggtt_offset << 10;
> @@ -1359,10 +1355,6 @@ static int load_pd_dir(struct i915_request *rq,
> *cs++ = intel_gt_scratch_offset(engine->gt,
> INTEL_GT_SCRATCH_FIELD_DEFAULT);
>
> - *cs++ = MI_LOAD_REGISTER_IMM(1);
> - *cs++ = i915_mmio_reg_offset(RING_INSTPM(engine->mmio_base));
> - *cs++ = _MASKED_BIT_ENABLE(INSTPM_TLB_INVALIDATE);
> -
> intel_ring_advance(rq, cs);
>
> return rq->engine->emit_flush(rq, EMIT_FLUSH);
> --
> 2.25.0
More information about the Intel-gfx
mailing list