Attached patch fixes flag corruption at beginning of RTCW.
-- Michael.
Index: radeon_state.c =================================================================== RCS file: /cvsroot/dri/xc/xc/lib/GL/mesa/src/drv/radeon/radeon_state.c,v retrieving revision 1.9.6.7 diff -u -3 -p -r1.9.6.7 radeon_state.c --- radeon_state.c 2001/11/21 13:34:03 1.9.6.7 +++ radeon_state.c 2002/01/28 18:22:10 @@ -309,15 +309,16 @@ static void radeonUpdateScissor( GLconte if ( rmesa->dri.drawable ) { __DRIdrawablePrivate *dPriv = rmesa->dri.drawable; - int x = ctx->Scissor.X; - int y = dPriv->h - ctx->Scissor.Y - ctx->Scissor.Height; - int w = ctx->Scissor.X + ctx->Scissor.Width - 1; - int h = dPriv->h - ctx->Scissor.Y - 1; + int x, y, w, h; + x = MAX2(ctx->Scissor.X, dPriv->x); + y = MAX2(dPriv->h - ctx->Scissor.Y - ctx->Scissor.Height, 0); + w = MIN2(ctx->Scissor.X + ctx->Scissor.Width, dPriv->w); + h = MIN2(dPriv->h - ctx->Scissor.Y, dPriv->h); rmesa->state.scissor.rect.x1 = x + dPriv->x; rmesa->state.scissor.rect.y1 = y + dPriv->y; - rmesa->state.scissor.rect.x2 = w + dPriv->x + 1; - rmesa->state.scissor.rect.y2 = h + dPriv->y + 1; + rmesa->state.scissor.rect.x2 = w + dPriv->x; + rmesa->state.scissor.rect.y2 = h + dPriv->y; if ( ctx->Scissor.Enabled ) rmesa->upload_cliprects = 1;