Mesa (master): radeonsi: emit sample locations also when nr_samples == 1

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


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

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

radeonsi: emit sample locations also when nr_samples == 1

Since the state tracker now enables MSAA in the hardware for the case
nr_samples == 1 as well, we need to set sample locations correctly for
this case.

The Polaris override is still needed for the non-MSAA case (when
nr_samples == 0).

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 | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index c64bb5b..818a393 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -2632,7 +2632,10 @@ static void si_emit_msaa_sample_locs(struct si_context *sctx,
 	/* On Polaris, the small primitive filter uses the sample locations
 	 * even when MSAA is off, so we need to make sure they're set to 0.
 	 */
-	if ((nr_samples > 1 || sctx->b.family >= CHIP_POLARIS10) &&
+	if (sctx->b.family >= CHIP_POLARIS10)
+		nr_samples = MAX2(nr_samples, 1);
+
+	if (nr_samples >= 1 &&
 	    (nr_samples != sctx->msaa_sample_locs.nr_samples)) {
 		sctx->msaa_sample_locs.nr_samples = nr_samples;
 		cayman_emit_msaa_sample_locs(cs, nr_samples);




More information about the mesa-commit mailing list