softpipe: Unbreak keeping track of cached surface.
authorMichel Dänzer <daenzer@vmware.com>
Thu, 12 Feb 2009 18:43:43 +0000 (19:43 +0100)
committerMichel Dänzer <daenzer@vmware.com>
Thu, 12 Feb 2009 18:43:43 +0000 (19:43 +0100)
glxgears works.

src/gallium/drivers/softpipe/sp_tile_cache.c

index c070cf68dbea83bec9f6d3ba111b11c2302f7c87..8534c7745bb7226dadf1e07f289252615ad673c5 100644 (file)
@@ -163,10 +163,7 @@ sp_tile_cache_set_surface(struct softpipe_tile_cache *tc,
    assert(!tc->texture);
 
    if (tc->transfer) {
-      if (ps->texture == tc->transfer->texture &&
-          ps->face == tc->transfer->face &&
-          ps->level == tc->transfer->level &&
-          ps->zslice == tc->transfer->zslice)
+      if (ps == tc->surface)
          return;
 
       if (tc->transfer_map) {
@@ -177,6 +174,8 @@ sp_tile_cache_set_surface(struct softpipe_tile_cache *tc,
       screen->tex_transfer_release(screen, &tc->transfer);
    }
 
+   tc->surface = ps;
+
    tc->transfer = screen->get_tex_transfer(screen, ps->texture, ps->face,
                                            ps->level, ps->zslice,
                                            PIPE_TRANSFER_READ_WRITE,