Mesa (master): radeonsi: fix a GPU hang with tessellation on 2-CU configs

Marek Olšák mareko at kemper.freedesktop.org
Tue Jun 6 11:02:47 UTC 2017


Module: Mesa
Branch: master
Commit: 6c655cfeb49a8142c44782c5164619a5860c7706
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6c655cfeb49a8142c44782c5164619a5860c7706

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Tue May 23 21:52:11 2017 +0200

radeonsi: fix a GPU hang with tessellation on 2-CU configs

Only harvested Stoney has 2 CUs. Tested on 2-CU Stoney and Fiji forced
to 2 CUs.

Cc: 17.0 17.1 <mesa-stable at lists.freedesktop.org>
Tested-by: Edmondo Tommasina <edmondo.tommasina at gmail.com>
Tested-by: Dieter Nützel <Dieter at nuetzel-hh.de>

---

 src/gallium/drivers/radeonsi/si_state_draw.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c
index 8651592fed..77df64397f 100644
--- a/src/gallium/drivers/radeonsi/si_state_draw.c
+++ b/src/gallium/drivers/radeonsi/si_state_draw.c
@@ -169,8 +169,12 @@ static void si_emit_derived_tess_state(struct si_context *sctx,
 
 	/* Make sure that the data fits in LDS. This assumes the shaders only
 	 * use LDS for the inputs and outputs.
+	 *
+	 * While CIK can use 64K per threadgroup, there is a hang on Stoney
+	 * with 2 CUs if we use more than 32K. The closed Vulkan driver also
+	 * uses 32K at most on all GCN chips.
 	 */
-	hardware_lds_size = sctx->b.chip_class >= CIK ? 65536 : 32768;
+	hardware_lds_size = 32768;
 	*num_patches = MIN2(*num_patches, hardware_lds_size / (input_patch_size +
 	                                                       output_patch_size));
 




More information about the mesa-commit mailing list