Mesa (8.0): svga: fix synchronization bug between sampler views and surfaces

Brian Paul brianp at kemper.freedesktop.org
Mon Jun 18 19:26:30 UTC 2012


Module: Mesa
Branch: 8.0
Commit: 6dd127000887071f30ded5b39ac799b917ad88a0
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6dd127000887071f30ded5b39ac799b917ad88a0

Author: Brian Paul <brianp at vmware.com>
Date:   Mon Jun 18 10:22:06 2012 -0600

svga: fix synchronization bug between sampler views and surfaces

This fixes a bug where a sampler view was using stale texture/resource
data when the texture was modified through a surface (render to texture).
Bumping the texture and layer ages triggers sampler view revalidation.

Fixes piglit fbo-blit failure.

Reviewed-by: José Fonseca <jfonseca at vmware.com>
(cherry picked from commit 8ae93c68ea3538e9e2c2462710a87192e026238d)

---

 src/gallium/drivers/svga/svga_surface.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/svga/svga_surface.c b/src/gallium/drivers/svga/svga_surface.c
index 2f9379b..942c0ee 100644
--- a/src/gallium/drivers/svga/svga_surface.c
+++ b/src/gallium/drivers/svga/svga_surface.c
@@ -320,6 +320,11 @@ svga_mark_surface_dirty(struct pipe_surface *surf)
       else {
          /* this will happen later in svga_propagate_surface */
       }
+
+      /* Increment the view_age and texture age for this surface's slice
+       * so that any sampler views into the texture are re-validated too.
+       */
+      tex->view_age[surf->u.tex.first_layer] = ++(tex->age);
    }
 }
 




More information about the mesa-commit mailing list