diff options
Diffstat (limited to 'src/gallium/drivers/softpipe')
| -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 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++;           }        } | 
