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);