[Mesa-dev] [PATCH 05/15] radeonsi/gfx9: don't use GS scenario A for VS writing ViewportIndex
Marek Olšák
maraeo at gmail.com
Mon Aug 21 21:54:04 UTC 2017
From: Marek Olšák <marek.olsak at amd.com>
Vulkan doesn't do it anymore.
---
src/gallium/drivers/radeonsi/si_state_shaders.c | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c
index fd9828f..66cd902 100644
--- a/src/gallium/drivers/radeonsi/si_state_shaders.c
+++ b/src/gallium/drivers/radeonsi/si_state_shaders.c
@@ -850,28 +850,24 @@ static void si_shader_vs(struct si_screen *sscreen, struct si_shader *shader,
return;
/* We always write VGT_GS_MODE in the VS state, because every switch
* between different shader pipelines involving a different GS or no
* GS at all involves a switch of the VS (different GS use different
* copy shaders). On the other hand, when the API switches from a GS to
* no GS and then back to the same GS used originally, the GS state is
* not sent again.
*/
if (!gs) {
- unsigned mode = 0;
+ unsigned mode = V_028A40_GS_OFF;
- /* PrimID needs GS scenario A.
- * GFX9 also needs it when ViewportIndex is enabled.
- */
- if (enable_prim_id ||
- (sscreen->b.chip_class >= GFX9 &&
- shader->selector->info.writes_viewport_index))
+ /* PrimID needs GS scenario A. */
+ if (enable_prim_id)
mode = V_028A40_GS_SCENARIO_A;
si_pm4_set_reg(pm4, R_028A40_VGT_GS_MODE, S_028A40_MODE(mode));
si_pm4_set_reg(pm4, R_028A84_VGT_PRIMITIVEID_EN, enable_prim_id);
} else {
si_pm4_set_reg(pm4, R_028A40_VGT_GS_MODE, si_vgt_gs_mode(gs));
si_pm4_set_reg(pm4, R_028A84_VGT_PRIMITIVEID_EN, 0);
}
va = shader->bo->gpu_address;
--
2.7.4
More information about the mesa-dev
mailing list