Cell: check tile status before wait_on_mask()
authorBrian <brian.paul@tungstengraphics.com>
Wed, 30 Jan 2008 18:56:14 +0000 (11:56 -0700)
committerBen Skeggs <skeggsb@gmail.com>
Fri, 15 Feb 2008 02:50:25 +0000 (13:50 +1100)
src/mesa/pipe/cell/spu/spu_tri.c

index 7c6a54134f8b040a00d99e8bc4f4f45cd15de307..01a47a48519708a3430d386d4e3d09f46bff75ee 100644 (file)
@@ -278,7 +278,7 @@ do_depth_test(struct setup_stage *setup, int x, int y, unsigned mask)
       /* now, _really_ clear the tile */
       clear_z_tile(&ztile);
    }
-   else {
+   else if (tile_status_z[setup->ty][setup->tx] != TILE_STATUS_DIRTY) {
       /* make sure we've got the tile from main mem */
       wait_on_mask(1 << TAG_READ_TILE_Z);
    }
@@ -403,7 +403,7 @@ emit_quad( struct setup_stage *setup, int x, int y, unsigned mask )
          /* now, _really_ clear the tile */
          clear_c_tile(&ctile);
       }
-      else {
+      else if (tile_status[setup->ty][setup->tx] != TILE_STATUS_DIRTY) {
          /* make sure we've got the tile from main mem */
          wait_on_mask(1 << TAG_READ_TILE_COLOR);
       }