diff options
Diffstat (limited to 'src/mesa/pipe/cell/spu/tri.c')
-rw-r--r-- | src/mesa/pipe/cell/spu/tri.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mesa/pipe/cell/spu/tri.c b/src/mesa/pipe/cell/spu/tri.c index 5d4790fe6c7..b7dfd6ab8cb 100644 --- a/src/mesa/pipe/cell/spu/tri.c +++ b/src/mesa/pipe/cell/spu/tri.c @@ -283,11 +283,13 @@ emit_quad( struct setup_stage *setup, int x, int y, unsigned mask ) eval_coeff(setup, 1, (float) x, (float) y, colors); - if (fb.depth_format == PIPE_FORMAT_Z16_UNORM) { float zvals[4]; eval_z(setup, (float) x, (float) y, zvals); + wait_on_mask(1 << TAG_READ_TILE_Z); /* XXX temporary */ + + if (mask & MASK_TOP_LEFT) { z = (uint) (zvals[0] * 65535.0); if (z < ztile[iy][ix]) @@ -321,6 +323,9 @@ emit_quad( struct setup_stage *setup, int x, int y, unsigned mask ) } } + if (mask) + wait_on_mask(1 << TAG_READ_TILE_COLOR); + if (mask & MASK_TOP_LEFT) ctile[iy][ix] = pack_color(colors[QUAD_TOP_LEFT]); if (mask & MASK_TOP_RIGHT) |