summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/softpipe/sp_tile_cache.c
diff options
context:
space:
mode:
authorBrian Paul <brianp@vmware.com>2010-07-21 16:00:42 -0600
committerBrian Paul <brianp@vmware.com>2010-07-21 16:00:52 -0600
commitef2d10cd45c0aba00aedbd7f412af0eb24385b77 (patch)
treeadbd76a103b92cb932c4277a9ce43c9333fa0795 /src/gallium/drivers/softpipe/sp_tile_cache.c
parent600c85efdb0ff498c1f62e74efbda9f7096a74d3 (diff)
softpipe: fix sp_tile_cache_flush_clear() regression
Diffstat (limited to 'src/gallium/drivers/softpipe/sp_tile_cache.c')
-rw-r--r--src/gallium/drivers/softpipe/sp_tile_cache.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/gallium/drivers/softpipe/sp_tile_cache.c b/src/gallium/drivers/softpipe/sp_tile_cache.c
index 05a3294e97..d7bc356e50 100644
--- a/src/gallium/drivers/softpipe/sp_tile_cache.c
+++ b/src/gallium/drivers/softpipe/sp_tile_cache.c
@@ -297,11 +297,17 @@ sp_tile_cache_flush_clear(struct softpipe_tile_cache *tc)
if (is_clear_flag_set(tc->clear_flags, addr)) {
/* write the scratch tile to the surface */
- pipe_put_tile_raw(tc->pipe,
- pt,
- x, y, TILE_SIZE, TILE_SIZE,
- tc->tile.data.any, 0/*STRIDE*/);
-
+ if (tc->depth_stencil) {
+ pipe_put_tile_raw(tc->pipe,
+ pt,
+ x, y, TILE_SIZE, TILE_SIZE,
+ tc->tile.data.any, 0/*STRIDE*/);
+ }
+ else {
+ pipe_put_tile_rgba(tc->pipe, pt,
+ x, y, TILE_SIZE, TILE_SIZE,
+ (float *) tc->tile.data.color);
+ }
numCleared++;
}
}