On Sun, Jun 5, 2016 at 12:28 PM, Samuel Pitoiset
<samuel.pitoi...@gmail.com> wrote:
> Images invalidation is a bit weird on Fermi and there is already a hack
> which forces invalidating all images when launching a computer shader
> to help in fixing 3D<->CP interaction.
>
> However, we need to re-validate images for compute because
> nvc0_compute_invalidate_surfaces() will destroy the previous binding.
> This is not really good for performance purposes but this might be
> improved later.
>
> This fixes the following piglits:
> - spec/arb_compute_shader/execution/basic-uniform-access
> - spec/arb_compute_shader/execution/mutiple-texture-reading
> - spec/arb_compute_shader/execution/multiple-workgroups
> - spec/glsl-4.30/execution/built-in-functions/cs-* (207 tests)
>
> v2: reset CP_SUF bins
>
> Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com>
> Cc: "12.0" <mesa-sta...@lists.freedesktop.org>

Reviewed-by: Ilia Mirkin <imir...@alum.mit.edu>

> ---
>  src/gallium/drivers/nouveau/nvc0/nvc0_compute.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_compute.c 
> b/src/gallium/drivers/nouveau/nvc0/nvc0_compute.c
> index 8c88225..21c8b2e 100644
> --- a/src/gallium/drivers/nouveau/nvc0/nvc0_compute.c
> +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_compute.c
> @@ -458,4 +458,7 @@ nvc0_launch_grid(struct pipe_context *pipe, const struct 
> pipe_grid_info *info)
>
>     /* TODO: Not sure if this is really necessary. */
>     nvc0_compute_invalidate_surfaces(nvc0, 5);
> +   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@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to