diff options
author | Brian <[email protected]> | 2007-12-07 20:31:26 -0700 |
---|---|---|
committer | Brian <[email protected]> | 2007-12-07 20:31:26 -0700 |
commit | 5d4b53b3afcb6014200faad8712bbb13af30469e (patch) | |
tree | 16e93306a0e3dd2f9f866cbaf31d39847cdf1b78 | |
parent | d1d9156831d390eaffefbceb8b56916b21fb6dbc (diff) |
code re-org in softpipe_clear()
-rw-r--r-- | src/mesa/pipe/softpipe/sp_clear.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/mesa/pipe/softpipe/sp_clear.c b/src/mesa/pipe/softpipe/sp_clear.c index bfe4a291448..f32e834ac0e 100644 --- a/src/mesa/pipe/softpipe/sp_clear.c +++ b/src/mesa/pipe/softpipe/sp_clear.c @@ -47,19 +47,28 @@ softpipe_clear(struct pipe_context *pipe, struct pipe_surface *ps, unsigned clearValue) { struct softpipe_context *softpipe = softpipe_context(pipe); + uint i; +#if 0 softpipe_update_derived(softpipe); /* not needed?? */ +#endif +#if TILE_CLEAR_OPTIMIZATION if (ps == sp_tile_cache_get_surface(softpipe->zbuf_cache)) { sp_tile_cache_clear(softpipe->zbuf_cache, clearValue); + return; } - else if (ps == sp_tile_cache_get_surface(softpipe->cbuf_cache[0])) { - sp_tile_cache_clear(softpipe->cbuf_cache[0], clearValue); + + for (i = 0; i < PIPE_MAX_COLOR_BUFS; i++) { + if (ps == sp_tile_cache_get_surface(softpipe->cbuf_cache[i])) { + sp_tile_cache_clear(softpipe->cbuf_cache[i], clearValue); + return; + } } +#endif -#if !TILE_CLEAR_OPTIMIZATION + /* non-cached surface */ pipe->surface_fill(pipe, ps, 0, 0, ps->width, ps->height, clearValue); -#endif #if 0 sp_clear_tile_cache(ps, clearValue); |