diff --git a/src/amd/common/ac_cmdbuf.c b/src/amd/common/ac_cmdbuf.c index b5212674c03..a6075aefa2e 100644 --- a/src/amd/common/ac_cmdbuf.c +++ b/src/amd/common/ac_cmdbuf.c @@ -988,6 +988,8 @@ ac_set_tracked_regs_to_clear_state(struct ac_tracked_regs *tracked_regs, tracked_regs->reg_value[AC_TRACKED_CB_DCC_CONTROL] = 0; tracked_regs->reg_value[AC_TRACKED_CB_COLOR_CONTROL] = 0; + tracked_regs->reg_value[AC_TRACKED_PA_SC_VRS_OVERRIDE_CNTL] = 0; + /* Set all cleared context registers to saved. */ BITSET_SET_COUNT(tracked_regs->reg_saved_mask, 0, AC_NUM_TRACKED_CONTEXT_REGS); } diff --git a/src/amd/common/ac_cmdbuf.h b/src/amd/common/ac_cmdbuf.h index cde3eb64451..77944e55dcb 100644 --- a/src/amd/common/ac_cmdbuf.h +++ b/src/amd/common/ac_cmdbuf.h @@ -252,6 +252,8 @@ enum ac_tracked_reg AC_TRACKED_SPI_SHADER_GS_MESHLET_EXP_ALLOC, /* GFX11+ */ AC_TRACKED_SPI_SHADER_GS_MESHLET_CTRL, /* GFX12+ */ + AC_TRACKED_PA_SC_VRS_OVERRIDE_CNTL, /* GFX11+ */ + AC_NUM_ALL_TRACKED_REGS, }; diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index 8e17954e9e3..cefd12bb765 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -3813,14 +3813,17 @@ gfx103_emit_vrs_state(struct radv_cmd_buffer *cmd_buffer) radeon_begin(cs); if (pdev->info.gfx_level >= GFX12) { gfx12_begin_context_regs(); - gfx12_set_context_reg(R_0283D0_PA_SC_VRS_OVERRIDE_CNTL, pa_sc_vrs_override_cntl); + gfx12_opt_set_context_reg(R_0283D0_PA_SC_VRS_OVERRIDE_CNTL, AC_TRACKED_PA_SC_VRS_OVERRIDE_CNTL, + pa_sc_vrs_override_cntl); gfx12_end_context_regs(); } else if (pdev->info.has_set_context_pairs_packed) { gfx11_begin_packed_context_regs(); - gfx11_set_context_reg(R_0283D0_PA_SC_VRS_OVERRIDE_CNTL, pa_sc_vrs_override_cntl); + gfx11_opt_set_context_reg(R_0283D0_PA_SC_VRS_OVERRIDE_CNTL, AC_TRACKED_PA_SC_VRS_OVERRIDE_CNTL, + pa_sc_vrs_override_cntl); gfx11_end_packed_context_regs(); } else { - radeon_set_context_reg(R_0283D0_PA_SC_VRS_OVERRIDE_CNTL, pa_sc_vrs_override_cntl); + radeon_opt_set_context_reg(R_0283D0_PA_SC_VRS_OVERRIDE_CNTL, AC_TRACKED_PA_SC_VRS_OVERRIDE_CNTL, + pa_sc_vrs_override_cntl); } radeon_end(); } else {