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