Mesa (master): radeonsi: allow sample mask export for single-sample framebuffers

Nicolai Hähnle nh at kemper.freedesktop.org
Fri Nov 18 08:55:05 UTC 2016


Module: Mesa
Branch: master
Commit: 70454f5b55d72c86d9a73bb149f20f66ae43ded7
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=70454f5b55d72c86d9a73bb149f20f66ae43ded7

Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date:   Tue Nov 15 14:37:47 2016 +0100

radeonsi: allow sample mask export for single-sample framebuffers

This fixes GL45-CTS.sample_variables.mask.*.samples_1.*.

Reviewed-by: Marek Olšák <marek.olsak at amd.com>
Reviewed-by: Edward O'Callaghan <funfunctor at folklore1984.net>

---

 src/gallium/drivers/radeonsi/si_state.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index f8dfcf2..c64bb5b 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 &&




More information about the mesa-commit mailing list