diff options
| author | Roland Scheidegger <sroland@vmware.com> | 2010-05-04 15:58:29 +0200 |
|---|---|---|
| committer | Roland Scheidegger <sroland@vmware.com> | 2010-05-04 15:58:29 +0200 |
| commit | 0ae2f59c0287f4baec6c7de5f2f0fdf736fba26d (patch) | |
| tree | ee14bf3e8bba80649541c4e13fc07c60baf6c248 /src/gallium/drivers/softpipe/sp_tex_tile_cache.c | |
| parent | 7662e3519bef3802024da3050b886068281e02b1 (diff) | |
| parent | 1c920c61764b17fd9fb4a89d2db7355fbe1d7565 (diff) | |
Merge commit 'origin/master' into gallium-msaa
Diffstat (limited to 'src/gallium/drivers/softpipe/sp_tex_tile_cache.c')
| -rw-r--r-- | src/gallium/drivers/softpipe/sp_tex_tile_cache.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/gallium/drivers/softpipe/sp_tex_tile_cache.c b/src/gallium/drivers/softpipe/sp_tex_tile_cache.c index fbce9e042b..b3e1c49406 100644 --- a/src/gallium/drivers/softpipe/sp_tex_tile_cache.c +++ b/src/gallium/drivers/softpipe/sp_tex_tile_cache.c @@ -115,6 +115,20 @@ sp_tex_tile_cache_validate_texture(struct softpipe_tex_tile_cache *tc) } } +static boolean +sp_tex_tile_is_compat_view(struct softpipe_tex_tile_cache *tc, + struct pipe_sampler_view *view) +{ + if (!view) + return FALSE; + return (tc->texture == view->texture && + tc->format == view->format && + tc->swizzle_r == view->swizzle_r && + tc->swizzle_g == view->swizzle_g && + tc->swizzle_b == view->swizzle_b && + tc->swizzle_a == view->swizzle_a); +} + /** * Specify the sampler view to cache. */ @@ -127,7 +141,7 @@ sp_tex_tile_cache_set_sampler_view(struct softpipe_tex_tile_cache *tc, assert(!tc->transfer); - if (tc->texture != texture) { + if (!sp_tex_tile_is_compat_view(tc, view)) { pipe_resource_reference(&tc->texture, texture); if (tc->tex_trans) { |
