r200: fix CS section size mismatch
authorRoland Scheidegger <sroland@tungstengraphics.com>
Thu, 21 Jan 2010 22:30:16 +0000 (17:30 -0500)
committerAlex Deucher <alexdeucher@gmail.com>
Thu, 21 Jan 2010 22:33:51 +0000 (17:33 -0500)
Partial fix for fdo bug 25544

The tex handling will still need CS drm changes,
see bug 25544 for more.

src/mesa/drivers/dri/r200/r200_state_init.c

index 6c5a0b79eed737ff71725a19d8c4b3b1d4739b18..80b08dcc99207fba856a02add9f73478531e8368 100644 (file)
@@ -698,7 +698,8 @@ static void tex_emit_mm(GLcontext *ctx, struct radeon_state_atom *atom)
    uint32_t dwords = atom->check(ctx, atom);
    int i = atom->idx;
    radeonTexObj *t = r200->state.texture.unit[i].texobj;
-   if (!r200->state.texture.unit[i].unitneeded)
+
+   if (!r200->state.texture.unit[i].unitneeded && !(dwords <= atom->cmd_size))
         dwords -= 4;
    BEGIN_BATCH_NO_AUTOSTATE(dwords);