[Mesa-dev] [PATCH] st/xa: Bind destination before setting new state

Jakob Bornecrantz wallbraker at gmail.com
Mon Apr 7 04:38:14 PDT 2014


On Mon, Apr 7, 2014 at 12:32 PM, Thomas Hellstrom <thellstrom at vmware.com> wrote:
> Binding a new destination may cause the svga driver to emit draw calls
> while propagating the surface. Make sure this doesn't happen in the middle
> of sampler state setup where state may be incosistent.
>
> In practice, surface propagation should never happen here and even if it did,
> it wouldn't be a valid reason for the svga driver to emit partially set up
> state, but to avoid future uncertainties, make sure this doesn't happen
> anyway.
>
> Found while auditing the state tracker for inconsistent sampler state /
> sampler view setup.
>
> Signed-off-by: Thomas Hellstrom <thellstrom at vmware.com>
> ---
>  src/gallium/state_trackers/xa/xa_renderer.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)

Reviewed-by: Jakob Bornecrantz <jakob at vmware.com>

Cheers, Jakob.

>
> diff --git a/src/gallium/state_trackers/xa/xa_renderer.c b/src/gallium/state_trackers/xa/xa_renderer.c
> index b775509..d22851f 100644
> --- a/src/gallium/state_trackers/xa/xa_renderer.c
> +++ b/src/gallium/state_trackers/xa/xa_renderer.c
> @@ -406,6 +406,9 @@ renderer_copy_prepare(struct xa_context *r,
>                                        PIPE_BIND_RENDER_TARGET));
>      (void)screen;
>
> +    renderer_bind_destination(r, dst_surface,
> +                             dst_surface->width, dst_surface->height);
> +
>      /* set misc state we care about */
>      {
>         struct pipe_blend_state blend;
> @@ -435,9 +438,6 @@ renderer_copy_prepare(struct xa_context *r,
>         cso_single_sampler_done(r->cso, PIPE_SHADER_FRAGMENT);
>      }
>
> -    renderer_bind_destination(r, dst_surface,
> -                             dst_surface->width, dst_surface->height);
> -
>      /* texture/sampler view */
>      {
>         struct pipe_sampler_view templ;
> --
> 1.9.1
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list