summaryrefslogtreecommitdiff
path: root/libre/linux-libre/0002-drm-i915-gt-Disable-HiZ-Raw-Stall-Optimization-on-br.patch
diff options
context:
space:
mode:
Diffstat (limited to 'libre/linux-libre/0002-drm-i915-gt-Disable-HiZ-Raw-Stall-Optimization-on-br.patch')
-rw-r--r--libre/linux-libre/0002-drm-i915-gt-Disable-HiZ-Raw-Stall-Optimization-on-br.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/libre/linux-libre/0002-drm-i915-gt-Disable-HiZ-Raw-Stall-Optimization-on-br.patch b/libre/linux-libre/0002-drm-i915-gt-Disable-HiZ-Raw-Stall-Optimization-on-br.patch
new file mode 100644
index 000000000..d52f522ad
--- /dev/null
+++ b/libre/linux-libre/0002-drm-i915-gt-Disable-HiZ-Raw-Stall-Optimization-on-br.patch
@@ -0,0 +1,47 @@
+From de10bb9892a9e075f4489be1495da1d6c8bc6360 Mon Sep 17 00:00:00 2001
+From: Simon Rettberg <simon.rettberg@rz.uni-freiburg.de>
+Date: Mon, 26 Apr 2021 16:11:24 +0200
+Subject: [PATCH 2/2] drm/i915/gt: Disable HiZ Raw Stall Optimization on broken
+ gen7
+
+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")
+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@manuel-bentele.de>
+Signed-off-by: Simon Rettberg <simon.rettberg@rz.uni-freiburg.de>
+Reviewed-by: Dave Airlie <airlied@redhat.com>
+Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
+[Rodrigo removed invalid Fixes line]
+Link: https://patchwork.freedesktop.org/patch/msgid/20210426161124.2b7fd708@dellnichtsogutkiste
+(cherry picked from commit 929b734ad34b717d6a1b8de97f53bb5616040147)
+Signed-off-by: Jani Nikula <jani.nikula@intel.com>
+---
+ 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 de575fdb033f..21f08e53889c 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.31.1
+