From 6f74105a343d42bb6cb5a2ece7178a10d6117e8e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sat, 26 Dec 2020 21:16:28 -0500 Subject: [PATCH] radeonsi: translate pipe_prim_type only when it changes just sink it into the branch Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/gallium/drivers/radeonsi/si_state_draw.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_state_draw.cpp b/src/gallium/drivers/radeonsi/si_state_draw.cpp index 6aa448d..1ad1cf0 100644 --- a/src/gallium/drivers/radeonsi/si_state_draw.cpp +++ b/src/gallium/drivers/radeonsi/si_state_draw.cpp @@ -781,7 +781,6 @@ static void si_emit_draw_registers(struct si_context *sctx, const struct pipe_dr unsigned min_vertex_count) { struct radeon_cmdbuf *cs = &sctx->gfx_cs; - unsigned vgt_prim = si_conv_pipe_prim(prim); if (GFX_VERSION >= GFX10) gfx10_emit_ge_cntl(sctx, num_patches); @@ -790,7 +789,9 @@ static void si_emit_draw_registers(struct si_context *sctx, const struct pipe_dr (sctx, indirect, prim, num_patches, instance_count, primitive_restart, min_vertex_count, info->vertices_per_patch); - if (vgt_prim != sctx->last_prim) { + if (prim != sctx->last_prim) { + unsigned vgt_prim = si_conv_pipe_prim(prim); + if (GFX_VERSION >= GFX10) radeon_set_uconfig_reg(cs, R_030908_VGT_PRIMITIVE_TYPE, vgt_prim); else if (GFX_VERSION >= GFX7) @@ -798,7 +799,7 @@ static void si_emit_draw_registers(struct si_context *sctx, const struct pipe_dr else radeon_set_config_reg(cs, R_008958_VGT_PRIMITIVE_TYPE, vgt_prim); - sctx->last_prim = vgt_prim; + sctx->last_prim = prim; } /* Primitive restart. */ -- 2.7.4