Module: Mesa Branch: main Commit: fe560aeb12516e766335d416ba749b7572637274 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fe560aeb12516e766335d416ba749b7572637274
Author: Qiang Yu <[email protected]> Date: Wed Feb 9 09:40:22 2022 +0800 radeonsi: workaround Specviewperf13 Catia hang on GFX9 The root cause is unknown but PAL always update IA_MULTI_VGT_PARAM whenever primitive type change. cc: mesa-stable Reviewed-by: Marek Olšák <[email protected]> Singed-off-by: Qiang Yu <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14944> --- src/gallium/drivers/radeonsi/si_state_draw.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeonsi/si_state_draw.cpp b/src/gallium/drivers/radeonsi/si_state_draw.cpp index 114b53fa5fa..ce1836af8fa 100644 --- a/src/gallium/drivers/radeonsi/si_state_draw.cpp +++ b/src/gallium/drivers/radeonsi/si_state_draw.cpp @@ -1186,7 +1186,9 @@ static void si_emit_ia_multi_vgt_param(struct si_context *sctx, min_vertex_count); /* Draw state. */ - if (ia_multi_vgt_param != sctx->last_multi_vgt_param) { + if (ia_multi_vgt_param != sctx->last_multi_vgt_param || + /* Workaround for SpecviewPerf13 Catia hang on GFX9. */ + (GFX_VERSION == GFX9 && prim != sctx->last_prim)) { radeon_begin(cs); if (GFX_VERSION == GFX9)
