From 70454f5b55d72c86d9a73bb149f20f66ae43ded7 Mon Sep 17 00:00:00 2001 From: Nicolai Hähnle Date: Tue, 15 Nov 2016 14:37:47 +0100 Subject: radeonsi: allow sample mask export for single-sample framebuffers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This fixes GL45-CTS.sample_variables.mask.*.samples_1.*. Reviewed-by: Marek Olšák Reviewed-by: Edward O'Callaghan --- src/gallium/drivers/radeonsi/si_state.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c index f8dfcf298bd..c64bb5b0460 100644 --- a/src/gallium/drivers/radeonsi/si_state.c +++ b/src/gallium/drivers/radeonsi/si_state.c @@ -867,11 +867,12 @@ static void si_bind_rs_state(struct pipe_context *ctx, void *state) if (!state) return; - if (sctx->framebuffer.nr_samples > 1 && - (!old_rs || old_rs->multisample_enable != rs->multisample_enable)) { + if (!old_rs || old_rs->multisample_enable != rs->multisample_enable) { si_mark_atom_dirty(sctx, &sctx->db_render_state); - if (sctx->b.family >= CHIP_POLARIS10) + /* Update the small primitive filter workaround if necessary. */ + if (sctx->b.family >= CHIP_POLARIS10 && + sctx->framebuffer.nr_samples > 1) si_mark_atom_dirty(sctx, &sctx->msaa_sample_locs.atom); } @@ -1153,7 +1154,7 @@ static void si_emit_db_render_state(struct si_context *sctx, struct r600_atom *s } /* Disable the gl_SampleMask fragment shader output if MSAA is disabled. */ - if (sctx->framebuffer.nr_samples <= 1 || (rs && !rs->multisample_enable)) + if (!rs || !rs->multisample_enable) db_shader_control &= C_02880C_MASK_EXPORT_ENABLE; if (sctx->b.family == CHIP_STONEY && -- cgit v1.2.3