diff --git a/.pick_status.json b/.pick_status.json index 514988be52b..8578b8cece6 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -6214,7 +6214,7 @@ "description": "radeonsi/gfx11: set CB_COLORi_INFO.MAX_COMP_FRAG on GFX1103_R2", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "caa09f66ae4e97972ec9609896b4ad64a9c9d115" }, diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c index 4c10340d8da..54eb62c8f72 100644 --- a/src/gallium/drivers/radeonsi/si_state.c +++ b/src/gallium/drivers/radeonsi/si_state.c @@ -3303,6 +3303,11 @@ static void si_emit_framebuffer_state(struct si_context *sctx) S_028C78_DISABLE_CONSTANT_ENCODE_REG(1) | S_028C78_FDCC_ENABLE(vi_dcc_enabled(tex, cb->base.u.tex.level)); + if (sctx->family >= CHIP_GFX1103_R2) { + cb_fdcc_control |= S_028C78_ENABLE_MAX_COMP_FRAG_OVERRIDE(1) | + S_028C78_MAX_COMP_FRAGS(cb->base.texture->nr_samples >= 4); + } + radeon_set_context_reg_seq(R_028C6C_CB_COLOR0_VIEW + i * 0x3C, 4); radeon_emit(cb->cb_color_view); /* CB_COLOR0_VIEW */ radeon_emit(cb_color_info); /* CB_COLOR0_INFO */