summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian <brian.paul@tungstengraphics.com>2007-12-07 20:31:26 -0700
committerBrian <brian.paul@tungstengraphics.com>2007-12-07 20:31:26 -0700
commit5d4b53b3afcb6014200faad8712bbb13af30469e (patch)
tree16e93306a0e3dd2f9f866cbaf31d39847cdf1b78
parentd1d9156831d390eaffefbceb8b56916b21fb6dbc (diff)
code re-org in softpipe_clear()
-rw-r--r--src/mesa/pipe/softpipe/sp_clear.c17
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 bfe4a29144..f32e834ac0 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);