[Mesa-dev] [PATCH] nvc0: do not clear surfaces bins in the validate function

Ilia Mirkin imirkin at alum.mit.edu
Sun Jun 5 16:59:30 UTC 2016


Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>

On Sun, Jun 5, 2016 at 12:56 PM, Samuel Pitoiset
<samuel.pitoiset at gmail.com> wrote:
> We should not call nouveau_bufctx_reset() inside a validate function.
> This only affects Fermi where images are aliased between 3D and CP.
>
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> Cc: "12.0" <mesa-stable at lists.freedesktop.org>
> ---
>  src/gallium/drivers/nouveau/nvc0/nvc0_compute.c | 1 +
>  src/gallium/drivers/nouveau/nvc0/nvc0_tex.c     | 6 +-----
>  2 files changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_compute.c b/src/gallium/drivers/nouveau/nvc0/nvc0_compute.c
> index 21c8b2e..59bbe1e 100644
> --- a/src/gallium/drivers/nouveau/nvc0/nvc0_compute.c
> +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_compute.c
> @@ -324,6 +324,7 @@ nvc0_compute_validate_surfaces(struct nvc0_context *nvc0)
>     nvc0_validate_suf(nvc0, 5);
>
>     /* Invalidate all FRAGMENT images because they are aliased with COMPUTE. */
> +   nouveau_bufctx_reset(nvc0->bufctx_3d, NVC0_BIND_3D_SUF);
>     nvc0->dirty_3d |= NVC0_NEW_3D_SURFACES;
>     nvc0->images_dirty[4] |= nvc0->images_valid[4];
>  }
> diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_tex.c b/src/gallium/drivers/nouveau/nvc0/nvc0_tex.c
> index b54de0f..1a5d8ec 100644
> --- a/src/gallium/drivers/nouveau/nvc0/nvc0_tex.c
> +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_tex.c
> @@ -994,11 +994,6 @@ nvc0_validate_suf(struct nvc0_context *nvc0, int s)
>     struct nouveau_pushbuf *push = nvc0->base.pushbuf;
>     struct nvc0_screen *screen = nvc0->screen;
>
> -   if (s == 5)
> -      nouveau_bufctx_reset(nvc0->bufctx_cp, NVC0_BIND_CP_SUF);
> -   else
> -      nouveau_bufctx_reset(nvc0->bufctx_3d, NVC0_BIND_3D_SUF);
> -
>     for (int i = 0; i < NVC0_MAX_IMAGES; ++i) {
>        struct pipe_image_view *view = &nvc0->images[s][i];
>        int width, height, depth;
> @@ -1099,6 +1094,7 @@ nvc0_update_surface_bindings(struct nvc0_context *nvc0)
>     nvc0_validate_suf(nvc0, 4);
>
>     /* Invalidate all COMPUTE images because they are aliased with FRAGMENT. */
> +   nouveau_bufctx_reset(nvc0->bufctx_cp, NVC0_BIND_CP_SUF);
>     nvc0->dirty_cp |= NVC0_NEW_CP_SURFACES;
>     nvc0->images_dirty[5] |= nvc0->images_valid[5];
>  }
> --
> 2.8.3
>
> _______________________________________________
> 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