[Intel-gfx] [PATCH] drm/i915/gt: Disable HiZ Raw Stall Optimization on broken gen7
Rodrigo Vivi
rodrigo.vivi at intel.com
Thu May 13 11:30:17 UTC 2021
On Thu, May 13, 2021 at 10:18:49AM +1000, Dave Airlie wrote:
> Reviewed-by: Dave Airlie <airlied at redhat.com>
>
> Can we get this fix in, having a regression spanning 3 kernels isn't a
> good look, we can work out why it matters later in life if anyone
> cares.
Agreed and pushed do drm-intel-next.
This triggered me to do an archeology work here and I found a possible
alternative for ILK:
+#define HIZ_UNIT_CLOCK_GATE_DISABLE REG_BIT(5)
#define FDI_PLL_FREQ_CTL _MMIO(0x46030)
#define FDI_PLL_FREQ_CHANGE_REQUEST (1 << 24)
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 06d5b7cc8b62..6316b70978f7 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -6892,8 +6892,11 @@ static void ilk_init_clock_gating(struct drm_i915_private *dev_priv)
intel_uncore_write(&dev_priv->uncore, PCH_3DCGDIS0,
MARIUNIT_CLOCK_GATE_DISABLE |
SVSMUNIT_CLOCK_GATE_DISABLE);
+
+ /* WaDisableHizUnitClockGating:ilk */
intel_uncore_write(&dev_priv->uncore, PCH_3DCGDIS1,
- VFMUNIT_CLOCK_GATE_DISABLE);
+ VFMUNIT_CLOCK_GATE_DISABLE |
+ HIZ_UNIT_CLOCK_GATE_DISABLE);
however I couldn't find anything for Baytrail, so let's move with this
one for now.
>
> Dave.
>
> On Tue, 27 Apr 2021 at 00:31, Simon Rettberg
> <simon.rettberg at rz.uni-freiburg.de> wrote:
> >
> > When resetting CACHE_MODE registers, don't enable HiZ Raw Stall
> > Optimization on Ivybridge GT1 and Baytrail, as it causes severe glitches
> > when rendering any kind of 3D accelerated content.
> > This optimization is disabled on these platforms by default according to
> > official documentation from 01.org.
> >
> > Fixes: ef99a60ffd9b ("drm/i915/gt: Clear CACHE_MODE prior to clearing residuals")
> > Fixes: 520d05a77b28 ("drm/i915/gt: Clear CACHE_MODE prior to clearing residuals")
> > BugLink: https://gitlab.freedesktop.org/drm/intel/-/issues/3081
> > BugLink: https://gitlab.freedesktop.org/drm/intel/-/issues/3404
> > BugLink: https://gitlab.freedesktop.org/drm/intel/-/issues/3071
> > Reviewed-By: Manuel Bentele <development at manuel-bentele.de>
> > Signed-off-by: Simon Rettberg <simon.rettberg at rz.uni-freiburg.de>
> > ---
> > drivers/gpu/drm/i915/gt/gen7_renderclear.c | 5 ++++-
> > 1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/gt/gen7_renderclear.c b/drivers/gpu/drm/i915/gt/gen7_renderclear.c
> > index de575fdb0..21f08e538 100644
> > --- a/drivers/gpu/drm/i915/gt/gen7_renderclear.c
> > +++ b/drivers/gpu/drm/i915/gt/gen7_renderclear.c
> > @@ -397,7 +397,10 @@ static void emit_batch(struct i915_vma * const vma,
> > gen7_emit_pipeline_invalidate(&cmds);
> > batch_add(&cmds, MI_LOAD_REGISTER_IMM(2));
> > batch_add(&cmds, i915_mmio_reg_offset(CACHE_MODE_0_GEN7));
> > - batch_add(&cmds, 0xffff0000);
> > + batch_add(&cmds, 0xffff0000 |
> > + ((IS_IVB_GT1(i915) || IS_VALLEYVIEW(i915)) ?
> > + HIZ_RAW_STALL_OPT_DISABLE :
> > + 0));
> > batch_add(&cmds, i915_mmio_reg_offset(CACHE_MODE_1));
> > batch_add(&cmds, 0xffff0000 | PIXEL_SUBSPAN_COLLECT_OPT_DISABLE);
> > gen7_emit_pipeline_invalidate(&cmds);
> > --
> > 2.25.1
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
More information about the Intel-gfx
mailing list