softpipe: fix sp_tile_cache_flush_clear() regression
authorBrian Paul <brianp@vmware.com>
Wed, 21 Jul 2010 22:00:42 +0000 (16:00 -0600)
committerBrian Paul <brianp@vmware.com>
Wed, 21 Jul 2010 22:00:52 +0000 (16:00 -0600)
src/gallium/drivers/softpipe/sp_tile_cache.c

index 05a3294e97f946582285aac722ce66f9fb831de8..d7bc356e507e26f593137ba5f5dfd6fe88e7436b 100644 (file)
@@ -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++;
          }
       }