summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/softpipe/sp_tile_cache.c
diff options
context:
space:
mode:
authorMichel Dänzer <daenzer@vmware.com>2009-02-12 19:43:43 +0100
committerMichel Dänzer <daenzer@vmware.com>2009-02-12 19:43:43 +0100
commit2142bf5e17d699396772b90ee5b2592289334f28 (patch)
tree8db29cc3c223117d2e578444734d1826ad591dd3 /src/gallium/drivers/softpipe/sp_tile_cache.c
parent9ab677a84b564a00e2e1e6874dbc2c0295b3402d (diff)
softpipe: Unbreak keeping track of cached surface.
glxgears works.
Diffstat (limited to 'src/gallium/drivers/softpipe/sp_tile_cache.c')
-rw-r--r--src/gallium/drivers/softpipe/sp_tile_cache.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/gallium/drivers/softpipe/sp_tile_cache.c b/src/gallium/drivers/softpipe/sp_tile_cache.c
index c070cf68db..8534c7745b 100644
--- a/src/gallium/drivers/softpipe/sp_tile_cache.c
+++ b/src/gallium/drivers/softpipe/sp_tile_cache.c
@@ -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,