From: Vitaliy Triang3l Kuzmin Date: Mon, 3 Apr 2023 19:14:39 +0000 (+0300) Subject: radeonsi: Remove unconditional POPS_DRAIN_PS_ON_OVERLAP setting X-Git-Tag: upstream/23.3.3~6508 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=266ad83acd164a7dae5b29a727fd223381d60d20;p=platform%2Fupstream%2Fmesa.git radeonsi: Remove unconditional POPS_DRAIN_PS_ON_OVERLAP setting This hardware hang workaround (PAL waMiscPopsMissedOverlap) is needed only on some Vega chips, and only for 8 or more samples per pixel. It has a significant performance cost (around 1.5x-2x in nvpro-samples/vk_order_independent_transparency), so it should be precisely configured when setting up Primitive Ordered Pixel Shading. It was added in 47b780be21d917eaa6a6a6c9e30ba9fba52d9acd, when POPS was not used in Mesa, with the change being described as "this may not be needed yet, but let's set it now". Reviewed-by: Marek Olšák Signed-off-by: Vitaliy Triang3l Kuzmin Part-of: --- diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c index 29c53a0..e7a56f1 100644 --- a/src/gallium/drivers/radeonsi/si_state.c +++ b/src/gallium/drivers/radeonsi/si_state.c @@ -5762,9 +5762,7 @@ static void gfx6_init_gfx_preamble_state(struct si_context *sctx) si_pm4_set_reg(pm4, R_030924_VGT_MIN_VTX_INDX, 0); si_pm4_set_reg(pm4, R_030928_VGT_INDX_OFFSET, 0); - si_pm4_set_reg(pm4, R_028060_DB_DFSM_CONTROL, - S_028060_PUNCHOUT_MODE(V_028060_FORCE_OFF) | - S_028060_POPS_DRAIN_PS_ON_OVERLAP(1)); + si_pm4_set_reg(pm4, R_028060_DB_DFSM_CONTROL, S_028060_PUNCHOUT_MODE(V_028060_FORCE_OFF)); si_pm4_set_reg_idx3(pm4, R_00B41C_SPI_SHADER_PGM_RSRC3_HS, ac_apply_cu_en(S_00B41C_CU_EN(0xffff) | S_00B41C_WAVE_LIMIT(0x3F), @@ -5967,9 +5965,7 @@ static void gfx10_init_gfx_preamble_state(struct si_context *sctx) /* Context registers. */ if (sctx->gfx_level < GFX11) { - si_pm4_set_reg(pm4, R_028038_DB_DFSM_CONTROL, - S_028038_PUNCHOUT_MODE(V_028038_FORCE_OFF) | - S_028038_POPS_DRAIN_PS_ON_OVERLAP(1)); + si_pm4_set_reg(pm4, R_028038_DB_DFSM_CONTROL, S_028038_PUNCHOUT_MODE(V_028038_FORCE_OFF)); } si_pm4_set_reg(pm4, R_02807C_DB_RMI_L2_CACHE_CONTROL, S_02807C_Z_WR_POLICY(V_02807C_CACHE_STREAM) |