diff options
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.patch | 47 |
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 + |