[Intel-xe] [PATCH v3 13/14] drm/xe: Add missing LRC workarounds for graphics 1200

Matt Roper matthew.d.roper at intel.com
Tue Mar 14 23:39:26 UTC 2023


On Mon, Mar 13, 2023 at 05:30:11PM -0700, Lucas De Marchi wrote:
> Synchronize LRC workarounds for graphics version 1200 with i915 up to
> commit 7cdae9e9ee5e ("drm/i915: Move DG2 tuning to the right function").
> These were probably missed for TGL/RKL before because in i915 it uses a
> !IS_DG1() condition.  Avoid a similar issue by just checking the
> graphics version 1200 since DG1 is 1210.
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>

Reviewed-by: Matt Roper <matthew.d.roper at intel.com>

for the changes here.  However on the topic of LRC workarounds, it looks
like commit 6d4750630a27b ("drm/xe: Fix duplicated setting for register
0x6604") was incorrect and should probably be reverted.  That patch
moved a real workaround (handling of GS_TIMER) into the tuning function,
but dropped the tuning setting (handling of TDS timer).  The workaround
and tuning setting are updating disjoint bitfields of the register;
they're not equivalent.


Matt

> ---
>  drivers/gpu/drm/xe/regs/xe_gt_regs.h |  4 ++++
>  drivers/gpu/drm/xe/xe_wa.c           | 10 ++++++++++
>  2 files changed, 14 insertions(+)
> 
> diff --git a/drivers/gpu/drm/xe/regs/xe_gt_regs.h b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
> index 4a7ce09d6b60..4ab7860db9f2 100644
> --- a/drivers/gpu/drm/xe/regs/xe_gt_regs.h
> +++ b/drivers/gpu/drm/xe/regs/xe_gt_regs.h
> @@ -98,10 +98,14 @@
>  
>  #define HIZ_CHICKEN				_MMIO(0x7018)
>  #define   DG1_HZ_READ_SUPPRESSION_OPTIMIZATION_DISABLE	REG_BIT(14)
> +#define   HZ_DEPTH_TEST_LE_GE_OPT_DISABLE	REG_BIT(13)
>  
>  /* GEN7 chicken */
>  #define GEN7_COMMON_SLICE_CHICKEN1		_MMIO(0x7010)
>  
> +#define COMMON_SLICE_CHICKEN4			_MMIO(0x7300)
> +#define   DISABLE_TDC_LOAD_BALANCING_CALC	REG_BIT(6)
> +
>  #define GEN11_COMMON_SLICE_CHICKEN3		_MMIO(0x7304)
>  #define XEHP_COMMON_SLICE_CHICKEN3		MCR_REG(0x7304)
>  #define   DG1_FLOAT_POINT_BLEND_OPT_STRICT_MODE_EN	REG_BIT(12)
> diff --git a/drivers/gpu/drm/xe/xe_wa.c b/drivers/gpu/drm/xe/xe_wa.c
> index e21c7ec53b2f..59d2daab5929 100644
> --- a/drivers/gpu/drm/xe/xe_wa.c
> +++ b/drivers/gpu/drm/xe/xe_wa.c
> @@ -536,6 +536,16 @@ static const struct xe_rtp_entry lrc_was[] = {
>  				   GEN9_PREEMPT_GPGPU_THREAD_GROUP_LEVEL,
>  				   XE_RTP_ACTION_FLAG(MASKED_REG)))
>  	},
> +	{ XE_RTP_NAME("1806527549"),
> +	  XE_RTP_RULES(GRAPHICS_VERSION(1200)),
> +	  XE_RTP_ACTIONS(SET(HIZ_CHICKEN, HZ_DEPTH_TEST_LE_GE_OPT_DISABLE,
> +			     XE_RTP_ACTION_FLAG(MASKED_REG)))
> +	},
> +	{ XE_RTP_NAME("1606376872"),
> +	  XE_RTP_RULES(GRAPHICS_VERSION(1200)),
> +	  XE_RTP_ACTIONS(SET(COMMON_SLICE_CHICKEN4, DISABLE_TDC_LOAD_BALANCING_CALC,
> +			     XE_RTP_ACTION_FLAG(MASKED_REG)))
> +	},
>  
>  	/* DG1 */
>  
> -- 
> 2.39.0
> 

-- 
Matt Roper
Graphics Software Engineer
Linux GPU Platform Enablement
Intel Corporation


More information about the Intel-xe mailing list