Mesa (master): radeonsi: Fix primitive restart when index changes

Marek Olšák mareko at kemper.freedesktop.org
Tue Oct 4 14:03:35 UTC 2016


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

Author: James Legg <jlegg at feralinteractive.com>
Date:   Tue Oct  4 14:30:11 2016 +0100

radeonsi: Fix primitive restart when index changes

If primitive restart is enabled for two consecutive draws which use
different primitive restart indices, then the first draw's primitive
restart index was incorrectly used for the second draw.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98025

Cc: 11.1 11.2 12.0 <mesa-stable at lists.freedesktop.org>
Signed-off-by: Marek Olšák <marek.olsak at amd.com>

---

 src/gallium/drivers/radeonsi/si_state_draw.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c
index e44147f..10e8be4 100644
--- a/src/gallium/drivers/radeonsi/si_state_draw.c
+++ b/src/gallium/drivers/radeonsi/si_state_draw.c
@@ -509,13 +509,13 @@ static void si_emit_draw_registers(struct si_context *sctx,
 		radeon_set_context_reg(cs, R_028A94_VGT_MULTI_PRIM_IB_RESET_EN, info->primitive_restart);
 		sctx->last_primitive_restart_en = info->primitive_restart;
 
-		if (info->primitive_restart &&
-		    (info->restart_index != sctx->last_restart_index ||
-		     sctx->last_restart_index == SI_RESTART_INDEX_UNKNOWN)) {
-			radeon_set_context_reg(cs, R_02840C_VGT_MULTI_PRIM_IB_RESET_INDX,
-					       info->restart_index);
-			sctx->last_restart_index = info->restart_index;
-		}
+	}
+	if (info->primitive_restart &&
+	    (info->restart_index != sctx->last_restart_index ||
+	     sctx->last_restart_index == SI_RESTART_INDEX_UNKNOWN)) {
+		radeon_set_context_reg(cs, R_02840C_VGT_MULTI_PRIM_IB_RESET_INDX,
+				       info->restart_index);
+		sctx->last_restart_index = info->restart_index;
 	}
 }
 




More information about the mesa-commit mailing list