mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 13:38:06 +02:00
radeonsi/gfx10.3: add a GPU hang workaround for legacy tess+GS
Fixes:a23802bcb9- ac,radeonsi: start adding support for gfx10.3 Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27943> (cherry picked from commitea94cb95e4)
This commit is contained in:
parent
03bc6156a3
commit
822212ceda
3 changed files with 11 additions and 2 deletions
|
|
@ -1574,7 +1574,7 @@
|
|||
"description": "radeonsi/gfx10.3: add a GPU hang workaround for legacy tess+GS",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "a23802bcb9a42a02d34a5a36d6e66d6532813a0d",
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -342,7 +342,7 @@ enum si_tracked_reg
|
|||
|
||||
/* The slots below can be reused by other generations. */
|
||||
SI_TRACKED_VGT_ESGS_RING_ITEMSIZE, /* GFX6-8 (GFX9+ can reuse this slot) */
|
||||
SI_TRACKED_VGT_REUSE_OFF, /* GFX6-8 (GFX9+ can reuse this slot) */
|
||||
SI_TRACKED_VGT_REUSE_OFF, /* GFX6-8,10.3 */
|
||||
SI_TRACKED_IA_MULTI_VGT_PARAM, /* GFX6-8 (GFX9+ can reuse this slot) */
|
||||
|
||||
SI_TRACKED_VGT_GS_MAX_PRIMS_PER_SUBGROUP, /* GFX9 - the slots above can be reused */
|
||||
|
|
|
|||
|
|
@ -4345,6 +4345,15 @@ static void si_emit_vgt_pipeline_state(struct si_context *sctx, unsigned index)
|
|||
radeon_begin(cs);
|
||||
radeon_opt_set_context_reg(sctx, R_028B54_VGT_SHADER_STAGES_EN, SI_TRACKED_VGT_SHADER_STAGES_EN,
|
||||
sctx->vgt_shader_stages_en);
|
||||
if (sctx->gfx_level == GFX10_3) {
|
||||
/* Legacy Tess+GS should disable reuse to prevent hangs on GFX10.3. */
|
||||
bool has_legacy_tess_gs = G_028B54_HS_EN(sctx->vgt_shader_stages_en) &&
|
||||
G_028B54_GS_EN(sctx->vgt_shader_stages_en) &&
|
||||
!G_028B54_PRIMGEN_EN(sctx->vgt_shader_stages_en); /* !NGG */
|
||||
|
||||
radeon_opt_set_context_reg(sctx, R_028AB4_VGT_REUSE_OFF, SI_TRACKED_VGT_REUSE_OFF,
|
||||
S_028AB4_REUSE_OFF(has_legacy_tess_gs));
|
||||
}
|
||||
radeon_end_update_context_roll(sctx);
|
||||
|
||||
if (sctx->gfx_level >= GFX10) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue