diff mbox series

[2/7] drm/i915: Disable compression tricks on JSL

Message ID 20240918144445.5716-3-ville.syrjala@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series drm/i915: 10bpc/fp16 + CCS support | expand

Commit Message

Ville Syrjälä Sept. 18, 2024, 2:44 p.m. UTC
From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Bspec asks us to disable some compression trick on JSL. While the
bspec description is pretty vague it looks like this is some extra
trick for 10bpc+ CCS which presumably the ICL derived display engine
doesn't support.

Note that we aren't currently exposing 10bpc CCS scanout support,
but once that gets added this presumably becomes an issue.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/gt/intel_gt_regs.h     | 1 +
 drivers/gpu/drm/i915/gt/intel_workarounds.c | 9 +++++++++
 2 files changed, 10 insertions(+)

Comments

Juha-Pekka Heikkila Oct. 4, 2024, 1:22 p.m. UTC | #1
On 18.9.2024 17.44, Ville Syrjala wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> Bspec asks us to disable some compression trick on JSL. While the
> bspec description is pretty vague it looks like this is some extra
> trick for 10bpc+ CCS which presumably the ICL derived display engine
> doesn't support.
> 
> Note that we aren't currently exposing 10bpc CCS scanout support,
> but once that gets added this presumably becomes an issue.
> 
> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>   drivers/gpu/drm/i915/gt/intel_gt_regs.h     | 1 +
>   drivers/gpu/drm/i915/gt/intel_workarounds.c | 9 +++++++++
>   2 files changed, 10 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_gt_regs.h b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> index 57a3c83d3655..67c47c8b75fb 100644
> --- a/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> +++ b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> @@ -432,6 +432,7 @@
>   #define XEHPG_INSTDONE_GEOM_SVG			MCR_REG(0x666c)
>   
>   #define CACHE_MODE_0_GEN7			_MMIO(0x7000) /* IVB+ */
> +#define   DISABLE_REPACKING_FOR_COMPRESSION	REG_BIT(15) /* jsl+ */
>   #define   RC_OP_FLUSH_ENABLE			(1 << 0)
>   #define   HIZ_RAW_STALL_OPT_DISABLE		(1 << 2)
>   #define CACHE_MODE_1				_MMIO(0x7004) /* IVB+ */
> diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> index e539a656cfc3..6972525fe6be 100644
> --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
> +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> @@ -2299,6 +2299,15 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal)
>   			     GEN8_RC_SEMA_IDLE_MSG_DISABLE);
>   	}
>   
> +	if (IS_JASPERLAKE(i915) || IS_ELKHARTLAKE(i915)) {
> +		/*
> +		 * "Disable Repacking for Compression (masked R/W access)
> +		 *  before rendering compressed surfaces for display."
> +		 */

I think here would be needed the wa number mentioned since it's on all 
the other cases.

> +		wa_masked_en(wal, CACHE_MODE_0_GEN7,
> +			     DISABLE_REPACKING_FOR_COMPRESSION);
> +	}
> +
>   	if (GRAPHICS_VER(i915) == 11) {
>   		/* This is not an Wa. Enable for better image quality */
>   		wa_masked_en(wal,
Ville Syrjälä Oct. 4, 2024, 5:54 p.m. UTC | #2
On Fri, Oct 04, 2024 at 04:22:42PM +0300, Juha-Pekka Heikkila wrote:
> On 18.9.2024 17.44, Ville Syrjala wrote:
> > From: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > 
> > Bspec asks us to disable some compression trick on JSL. While the
> > bspec description is pretty vague it looks like this is some extra
> > trick for 10bpc+ CCS which presumably the ICL derived display engine
> > doesn't support.
> > 
> > Note that we aren't currently exposing 10bpc CCS scanout support,
> > but once that gets added this presumably becomes an issue.
> > 
> > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > ---
> >   drivers/gpu/drm/i915/gt/intel_gt_regs.h     | 1 +
> >   drivers/gpu/drm/i915/gt/intel_workarounds.c | 9 +++++++++
> >   2 files changed, 10 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/gt/intel_gt_regs.h b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> > index 57a3c83d3655..67c47c8b75fb 100644
> > --- a/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> > +++ b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
> > @@ -432,6 +432,7 @@
> >   #define XEHPG_INSTDONE_GEOM_SVG			MCR_REG(0x666c)
> >   
> >   #define CACHE_MODE_0_GEN7			_MMIO(0x7000) /* IVB+ */
> > +#define   DISABLE_REPACKING_FOR_COMPRESSION	REG_BIT(15) /* jsl+ */
> >   #define   RC_OP_FLUSH_ENABLE			(1 << 0)
> >   #define   HIZ_RAW_STALL_OPT_DISABLE		(1 << 2)
> >   #define CACHE_MODE_1				_MMIO(0x7004) /* IVB+ */
> > diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> > index e539a656cfc3..6972525fe6be 100644
> > --- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
> > +++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
> > @@ -2299,6 +2299,15 @@ rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal)
> >   			     GEN8_RC_SEMA_IDLE_MSG_DISABLE);
> >   	}
> >   
> > +	if (IS_JASPERLAKE(i915) || IS_ELKHARTLAKE(i915)) {
> > +		/*
> > +		 * "Disable Repacking for Compression (masked R/W access)
> > +		 *  before rendering compressed surfaces for display."
> > +		 */
> 
> I think here would be needed the wa number mentioned since it's on all 
> the other cases.

There isn't one.

> 
> > +		wa_masked_en(wal, CACHE_MODE_0_GEN7,
> > +			     DISABLE_REPACKING_FOR_COMPRESSION);
> > +	}
> > +
> >   	if (GRAPHICS_VER(i915) == 11) {
> >   		/* This is not an Wa. Enable for better image quality */
> >   		wa_masked_en(wal,
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/gt/intel_gt_regs.h b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
index 57a3c83d3655..67c47c8b75fb 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt_regs.h
+++ b/drivers/gpu/drm/i915/gt/intel_gt_regs.h
@@ -432,6 +432,7 @@ 
 #define XEHPG_INSTDONE_GEOM_SVG			MCR_REG(0x666c)
 
 #define CACHE_MODE_0_GEN7			_MMIO(0x7000) /* IVB+ */
+#define   DISABLE_REPACKING_FOR_COMPRESSION	REG_BIT(15) /* jsl+ */
 #define   RC_OP_FLUSH_ENABLE			(1 << 0)
 #define   HIZ_RAW_STALL_OPT_DISABLE		(1 << 2)
 #define CACHE_MODE_1				_MMIO(0x7004) /* IVB+ */
diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index e539a656cfc3..6972525fe6be 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -2299,6 +2299,15 @@  rcs_engine_wa_init(struct intel_engine_cs *engine, struct i915_wa_list *wal)
 			     GEN8_RC_SEMA_IDLE_MSG_DISABLE);
 	}
 
+	if (IS_JASPERLAKE(i915) || IS_ELKHARTLAKE(i915)) {
+		/*
+		 * "Disable Repacking for Compression (masked R/W access)
+		 *  before rendering compressed surfaces for display."
+		 */
+		wa_masked_en(wal, CACHE_MODE_0_GEN7,
+			     DISABLE_REPACKING_FOR_COMPRESSION);
+	}
+
 	if (GRAPHICS_VER(i915) == 11) {
 		/* This is not an Wa. Enable for better image quality */
 		wa_masked_en(wal,