diff options
author | Brian Paul <[email protected]> | 2010-07-21 16:00:42 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2010-07-21 16:00:52 -0600 |
commit | ef2d10cd45c0aba00aedbd7f412af0eb24385b77 (patch) | |
tree | adbd76a103b92cb932c4277a9ce43c9333fa0795 /src | |
parent | 600c85efdb0ff498c1f62e74efbda9f7096a74d3 (diff) |
softpipe: fix sp_tile_cache_flush_clear() regression
Diffstat (limited to 'src')
-rw-r--r-- | src/gallium/drivers/softpipe/sp_tile_cache.c | 16 |
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 05a3294e97f..d7bc356e507 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++; } } |