[Mesa-dev] [PATCH 4/4] radeonsi: emit sample locations also when nr_samples == 1

Marek Olšák maraeo at gmail.com
Wed Nov 16 17:41:28 UTC 2016


For the series:

Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek


On Wed, Nov 16, 2016 at 10:42 AM, Nicolai Hähnle <nhaehnle at gmail.com> wrote:
> From: Nicolai Hähnle <nicolai.haehnle at amd.com>
>
> 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).
> ---
>  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
> @@ -2625,21 +2625,24 @@ static void si_emit_msaa_sample_locs(struct si_context *sctx,
>
>         /* Smoothing (only possible with nr_samples == 1) uses the same
>          * sample locations as the MSAA it simulates.
>          */
>         if (nr_samples <= 1 && sctx->smoothing_enabled)
>                 nr_samples = SI_NUM_SMOOTH_AA_SAMPLES;
>
>         /* 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);
>         }
>
>         if (sctx->b.family >= CHIP_POLARIS10) {
>                 struct si_state_rasterizer *rs = sctx->queued.named.rasterizer;
>                 unsigned small_prim_filter_cntl =
>                         S_028830_SMALL_PRIM_FILTER_ENABLE(1) |
>                         S_028830_LINE_FILTER_DISABLE(1); /* line bug */
> --
> 2.7.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list