Mesa (master): radv: only mask 1 CU for GS/VS waves on GFX10.3

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Nov 30 09:42:43 UTC 2020


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

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Wed Nov 25 08:16:14 2020 +0100

radv: only mask 1 CU for GS/VS waves on GFX10.3

Ported from Radeonsi and PAL.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7769>

---

 src/amd/vulkan/si_cmd_buffer.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/amd/vulkan/si_cmd_buffer.c b/src/amd/vulkan/si_cmd_buffer.c
index ee521f3a880..c20a39a01bb 100644
--- a/src/amd/vulkan/si_cmd_buffer.c
+++ b/src/amd/vulkan/si_cmd_buffer.c
@@ -347,12 +347,18 @@ si_emit_graphics(struct radv_device *device,
 			} else {
 				late_alloc_wave64 = (num_cu_per_sh - 2) * 4;
 
-				/* CU2 & CU3 disabled because of the dual CU design */
-				cu_mask_vs = 0xfff3;
+				/* Gfx10: CU2 & CU3 must be disabled to
+				 * prevent a hw deadlock.  Others: CU1 must be
+				 * disabled to prevent a hw deadlock.
+				 *
+				 * The deadlock is caused by late alloc, which
+				 * usually increases performance.
+				 */
+				cu_mask_vs &= physical_device->rad_info.chip_class == GFX10 ?
+					      ~BITFIELD_RANGE(2, 2) : ~BITFIELD_RANGE(1, 1);
+
 				if (physical_device->use_ngg) {
-					cu_mask_gs = 0xfff3;
-				} else {
-					cu_mask_gs = 0xffff;
+					cu_mask_gs = cu_mask_vs;
 				}
 			}
 



More information about the mesa-commit mailing list