From: Marek Olšák Date: Mon, 14 Jan 2019 23:24:08 +0000 (-0500) Subject: radeonsi: also apply the GS hang workaround to draws without tessellation X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5183e794affbbbf7dc959332619b0852c21536d6;p=mesa.git radeonsi: also apply the GS hang workaround to draws without tessellation ported from AMDVLK. Cc: 18.3 Reviewed-by: Bas Nieuwenhuizen --- diff --git a/src/gallium/drivers/radeonsi/si_state_draw.c b/src/gallium/drivers/radeonsi/si_state_draw.c index d0b2e18b4ea..dd670f3f670 100644 --- a/src/gallium/drivers/radeonsi/si_state_draw.c +++ b/src/gallium/drivers/radeonsi/si_state_draw.c @@ -350,20 +350,11 @@ si_get_init_multi_vgt_param(struct si_screen *sscreen, key->u.uses_gs) partial_vs_wave = true; - /* Needed for 028B6C_DISTRIBUTION_MODE != 0 */ + /* Needed for 028B6C_DISTRIBUTION_MODE != 0. (implies >= VI) */ if (sscreen->has_distributed_tess) { if (key->u.uses_gs) { - if (sscreen->info.chip_class <= VI) + if (sscreen->info.chip_class == VI) partial_es_wave = true; - - /* GPU hang workaround. */ - if (sscreen->info.family == CHIP_TONGA || - sscreen->info.family == CHIP_FIJI || - sscreen->info.family == CHIP_POLARIS10 || - sscreen->info.family == CHIP_POLARIS11 || - sscreen->info.family == CHIP_POLARIS12 || - sscreen->info.family == CHIP_VEGAM) - partial_vs_wave = true; } else { partial_vs_wave = true; } @@ -419,6 +410,18 @@ si_get_init_multi_vgt_param(struct si_screen *sscreen, if (sscreen->info.max_se == 4 && !wd_switch_on_eop) ia_switch_on_eoi = true; + /* HW engineers suggested that PARTIAL_VS_WAVE_ON should be set + * to work around a GS hang. + */ + if (key->u.uses_gs && + (sscreen->info.family == CHIP_TONGA || + sscreen->info.family == CHIP_FIJI || + sscreen->info.family == CHIP_POLARIS10 || + sscreen->info.family == CHIP_POLARIS11 || + sscreen->info.family == CHIP_POLARIS12 || + sscreen->info.family == CHIP_VEGAM)) + partial_vs_wave = true; + /* Required by Hawaii and, for some special cases, by VI. */ if (ia_switch_on_eoi && (sscreen->info.family == CHIP_HAWAII ||