[Mesa-dev] [PATCH 06/61] radeonsi/gfx9: don't set deprecated field PARTIAL_ES_WAVE_ON

Marek Olšák maraeo at gmail.com
Mon Apr 24 08:45:03 UTC 2017


From: Marek Olšák <marek.olsak at amd.com>

Cc: 17.1 <mesa-stable at lists.freedesktop.org>
---
 src/gallium/drivers/radeonsi/si_state_draw.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c
index 193187b..a354c69 100644
--- a/src/gallium/drivers/radeonsi/si_state_draw.c
+++ b/src/gallium/drivers/radeonsi/si_state_draw.c
@@ -284,21 +284,22 @@ si_get_init_multi_vgt_param(struct si_screen *sscreen,
 		/* Bug with tessellation and GS on Bonaire and older 2 SE chips. */
 		if ((sscreen->b.family == CHIP_TAHITI ||
 		     sscreen->b.family == CHIP_PITCAIRN ||
 		     sscreen->b.family == CHIP_BONAIRE) &&
 		    key->u.uses_gs)
 			partial_vs_wave = true;
 
 		/* Needed for 028B6C_DISTRIBUTION_MODE != 0 */
 		if (sscreen->has_distributed_tess) {
 			if (key->u.uses_gs) {
-				partial_es_wave = true;
+				if (sscreen->b.chip_class <= VI)
+					partial_es_wave = true;
 
 				/* GPU hang workaround. */
 				if (sscreen->b.family == CHIP_TONGA ||
 				    sscreen->b.family == CHIP_FIJI ||
 				    sscreen->b.family == CHIP_POLARIS10 ||
 				    sscreen->b.family == CHIP_POLARIS11)
 					partial_vs_wave = true;
 			} else {
 				partial_vs_wave = true;
 			}
@@ -364,21 +365,21 @@ si_get_init_multi_vgt_param(struct si_screen *sscreen,
 		/* Instancing bug on Bonaire. */
 		if (sscreen->b.family == CHIP_BONAIRE && ia_switch_on_eoi &&
 		    key->u.uses_instancing)
 			partial_vs_wave = true;
 
 		/* If the WD switch is false, the IA switch must be false too. */
 		assert(wd_switch_on_eop || !ia_switch_on_eop);
 	}
 
 	/* If SWITCH_ON_EOI is set, PARTIAL_ES_WAVE must be set too. */
-	if (ia_switch_on_eoi)
+	if (sscreen->b.chip_class <= VI && ia_switch_on_eoi)
 		partial_es_wave = true;
 
 	return S_028AA8_SWITCH_ON_EOP(ia_switch_on_eop) |
 		S_028AA8_SWITCH_ON_EOI(ia_switch_on_eoi) |
 		S_028AA8_PARTIAL_VS_WAVE_ON(partial_vs_wave) |
 		S_028AA8_PARTIAL_ES_WAVE_ON(partial_es_wave) |
 		S_028AA8_WD_SWITCH_ON_EOP(sscreen->b.chip_class >= CIK ? wd_switch_on_eop : 0) |
 		/* The following field was moved to VGT_SHADER_STAGES_EN in GFX9. */
 		S_028AA8_MAX_PRIMGRP_IN_WAVE(sscreen->b.chip_class == VI ?
 					     max_primgroup_in_wave : 0) |
-- 
2.7.4



More information about the mesa-dev mailing list