[Intel-gfx] [PATCH] drm/i915/gt: WaSetVfGuardbandPreemptionVertexCount (bdw/chv)

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Mon Jul 22 15:55:39 UTC 2019



On 22/07/2019 14:18, Chris Wilson wrote:
> As a w/a for data corruption, we are told to set the preemption vertex
> count to 0x20 on boot. As it is a counter, once contexts are active we
> do not expect the value to be retained, so hide it from the wa-list
> verification.
> 
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin at linux.intel.com>
> ---
>   drivers/gpu/drm/i915/gt/intel_workarounds.c | 24 +++++++++++++++++++++
>   1 file changed, 24 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> index 704ace01e7f5..7628f8463317 100644
> --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
> +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> @@ -647,6 +647,26 @@ int intel_engine_emit_ctx_wa(struct i915_request *rq)
>   	return 0;
>   }
>   
> +static void
> +gen8_gt_workarounds_init(struct drm_i915_private *i915,
> +			 struct i915_wa_list *wal)
> +{
> +	/* WaSetVfGuardbandPreemptionVertexCount:bdw,chv */
> +	wa_write_masked_or(wal, _MMIO(0x83A4), 0, 0xffff0020);

0x83a4 is listed in saved state for the context so have you tried 
putting it as a context workaround?

Regards,

Tvrtko

> +}
> +
> +static void
> +bdw_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
> +{
> +	gen8_gt_workarounds_init(i915, wal);
> +}
> +
> +static void
> +chv_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
> +{
> +	gen8_gt_workarounds_init(i915, wal);
> +}
> +
>   static void
>   gen9_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list *wal)
>   {
> @@ -907,6 +927,10 @@ gt_init_workarounds(struct drm_i915_private *i915, struct i915_wa_list *wal)
>   		bxt_gt_workarounds_init(i915, wal);
>   	else if (IS_SKYLAKE(i915))
>   		skl_gt_workarounds_init(i915, wal);
> +	else if (IS_CHERRYVIEW(i915))
> +		chv_gt_workarounds_init(i915, wal);
> +	else if (IS_BROADWELL(i915))
> +		bdw_gt_workarounds_init(i915, wal);
>   	else if (INTEL_GEN(i915) <= 8)
>   		return;
>   	else
> 


More information about the Intel-gfx mailing list