debian/changelog | 7 + debian/patches/series | 2 debian/patches/skl-dont-use-the-pma-depth-stall-workaround.diff | 43 ++++++++++ 3 files changed, 52 insertions(+)
New commits: commit 35bd76aff111bc3f9734c47835450d6d3078729e Author: Timo Aaltonen <tjaal...@debian.org> Date: Tue Aug 18 18:28:31 2015 +0300 skl-dont-use-the-pma-depth-stall-workaround.diff: Fix GPU hangs in certain cases. diff --git a/debian/changelog b/debian/changelog index 5bf44f6..fcdb75b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +mesa (10.5.9-2ubuntu1~vivid2) UNRELEASED; urgency=medium + + * skl-dont-use-the-pma-depth-stall-workaround.diff: Fix GPU hangs in + certain cases. + + -- Timo Aaltonen <tjaal...@debian.org> Tue, 18 Aug 2015 18:28:20 +0300 + mesa (10.5.9-2ubuntu1~vivid1) vivid; urgency=medium * Backport to vivid. (LP: #1471213) diff --git a/debian/patches/series b/debian/patches/series index 9a96a43..bc69930 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -11,3 +11,5 @@ i965-store-the-gpu-revision.diff i965-refactor-simd16-to-2xsimd8-checks.diff i965-define-i915-param-revision.diff skl-break-down-simd16-3-source-instructions.diff + +skl-dont-use-the-pma-depth-stall-workaround.diff diff --git a/debian/patches/skl-dont-use-the-pma-depth-stall-workaround.diff b/debian/patches/skl-dont-use-the-pma-depth-stall-workaround.diff new file mode 100644 index 0000000..a64f864 --- /dev/null +++ b/debian/patches/skl-dont-use-the-pma-depth-stall-workaround.diff @@ -0,0 +1,43 @@ +commit 74fd226e34d0cf5e9ff43174ae69b4a66f5de1ab +Author: Ben Widawsky <benjamin.widaw...@intel.com> +Date: Wed Mar 25 16:52:46 2015 -0700 + + i965/skl: Don't use the PMA depth stall workaround + + The PMA depth stall must be enabled (optimization turned off) under certain + circumstances on gen8. This was supposedly fixed for Gen9, which means we do not + need to check, or toggle the state. The hardware is supposed to enable the + hardware optimization by default, unlike BDW, so we also don't need to set it at + init. For whatever reason this improves stability on ETQW with the bug mentioned + below. + + References: https://bugs.freedesktop.org/show_bug.cgi?id=89039 (doesn't fix) + Signed-off-by: Ben Widawsky <b...@bwidawsk.net> + Tested-by: Anuj Phogat <anuj.pho...@intel.com> + Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> + +diff --git a/src/mesa/drivers/dri/i965/gen8_depth_state.c b/src/mesa/drivers/dri/i965/gen8_depth_state.c +index c6494c9..3d126cf 100644 +--- a/src/mesa/drivers/dri/i965/gen8_depth_state.c ++++ b/src/mesa/drivers/dri/i965/gen8_depth_state.c +@@ -368,6 +368,10 @@ static void + gen8_emit_pma_stall_workaround(struct brw_context *brw) + { + uint32_t bits = 0; ++ ++ if (brw->gen >= 9) ++ return; ++ + if (pma_fix_enable(brw)) + bits |= GEN8_HIZ_NP_PMA_FIX_ENABLE | GEN8_HIZ_NP_EARLY_Z_FAILS_DISABLE; + +@@ -400,7 +404,8 @@ gen8_hiz_exec(struct brw_context *brw, struct intel_mipmap_tree *mt, + return; + + /* Disable the PMA stall fix since we're about to do a HiZ operation. */ +- write_pma_stall_bits(brw, 0); ++ if (brw->gen == 8) ++ write_pma_stall_bits(brw, 0); + + assert(mt->first_level == 0); + assert(mt->logical_depth0 >= 1);