diff options
author | Michel Dänzer <[email protected]> | 2009-02-12 19:43:43 +0100 |
---|---|---|
committer | Michel Dänzer <[email protected]> | 2009-02-12 19:43:43 +0100 |
commit | 2142bf5e17d699396772b90ee5b2592289334f28 (patch) | |
tree | 8db29cc3c223117d2e578444734d1826ad591dd3 /src/gallium/drivers/softpipe | |
parent | 9ab677a84b564a00e2e1e6874dbc2c0295b3402d (diff) |
softpipe: Unbreak keeping track of cached surface.
glxgears works.
Diffstat (limited to 'src/gallium/drivers/softpipe')
-rw-r--r-- | src/gallium/drivers/softpipe/sp_tile_cache.c | 7 |
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 c070cf68dbe..8534c7745bb 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, |