[Mesa-dev] [PATCH 10/17] mesa/st: update MSAA enable

Marek Olšák maraeo at gmail.com
Mon Mar 21 15:41:23 UTC 2016


I think it would be better to remove the Multisample._Enabled derived
state and add a function which derives it, for example:

_mesa_is_multisample_enabled(ctx)

which should be used instead of Multisample._Enabled.

Marek

On Sat, Mar 19, 2016 at 7:41 AM, Edward O'Callaghan
<eocallaghan at alterapraxis.com> wrote:
> From: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
>
> The rasterizer state used Multisample._Enable to enable msaa. However
> that gets updated in core mesa before any st validation happens.
>
> Setting it depends on _NumSamples which happens during st validation.
> To break this cyclic dependency I replicated the check at the place
> we change _NumSamples.
>
> Signed-off-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
> ---
>  src/mesa/state_tracker/st_atom.c             | 2 +-
>  src/mesa/state_tracker/st_atom_framebuffer.c | 3 +++
>  2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/src/mesa/state_tracker/st_atom.c b/src/mesa/state_tracker/st_atom.c
> index fc80adf..d909f24 100644
> --- a/src/mesa/state_tracker/st_atom.c
> +++ b/src/mesa/state_tracker/st_atom.c
> @@ -51,7 +51,6 @@ static const struct st_tracked_state *render_atoms[] =
>     &st_update_tcp,
>     &st_update_vp,
>
> -   &st_update_rasterizer,
>     &st_update_polygon_stipple,
>     &st_update_viewport,
>     &st_update_scissor,
> @@ -68,6 +67,7 @@ static const struct st_tracked_state *render_atoms[] =
>     &st_bind_gs_images,
>     &st_bind_fs_images,
>     &st_update_framebuffer, /* depends on update_*_texture and bind_*_images */
> +   &st_update_rasterizer, /* depends on st_update_framebuffer */
>     &st_update_msaa,
>     &st_update_sample_shading,
>     &st_update_vs_constants,
> diff --git a/src/mesa/state_tracker/st_atom_framebuffer.c b/src/mesa/state_tracker/st_atom_framebuffer.c
> index 7ca6d57..797032c 100644
> --- a/src/mesa/state_tracker/st_atom_framebuffer.c
> +++ b/src/mesa/state_tracker/st_atom_framebuffer.c
> @@ -116,6 +116,9 @@ update_framebuffer_state( struct st_context *st )
>     fb->DefaultGeometry._NumSamples =
>        framebuffer_quantize_num_samples(supported_msaa_modes, fb->DefaultGeometry.NumSamples);
>
> +   st->ctx->Multisample._Enabled = st->ctx->Multisample.Enabled &&
> +                                   _mesa_geometric_samples(fb) > 0;
> +
>     framebuffer->width  = _mesa_geometric_width(fb);
>     framebuffer->height = _mesa_geometric_height(fb);
>     framebuffer->samples = _mesa_geometric_samples(fb);
> --
> 2.5.0
>
> _______________________________________________
> 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