--- /home/yann/via/Mesa/src/mesa/drivers/dri/unichrome/via_ioctl.c 2004-11-27 23:02:23.000000000 +0100 +++ via_ioctl.c 2004-12-12 15:11:00.000000000 +0100 @@ -1013,21 +959,21 @@ void viaFillBackBuffer(viaContextPtr vme else { int i; drm_clip_rect_t *b = vmesa->sarea->boxes; + if (bytePerPixel == 4) + offsetX = (vmesa->drawX & 7) - vmesa->drawX; + else + offsetX = (vmesa->drawX & 15) - vmesa->drawX; + for (i = 0; i < vmesa->sarea->nbox ; i++) { nDestWidth = b->x2 - b->x1 - 1; nDestHeight = b->y2 - b->y1 - 1; - if (bytePerPixel == 4) - offsetX = (b->x1 - vmesa->drawX) + (vmesa->drawX & 7); - else - offsetX = (b->x1 - vmesa->drawX) + (vmesa->drawX & 15); - /* GEFGCOLOR */ SetReg2DAGP(0x18, pixel | 0x00000000); /* GEWD */ SetReg2DAGP(0x10, nDestWidth | (nDestHeight << 16)); /* GEDST */ - SetReg2DAGP(0x0C, ((offsetX + (b->x1 - vmesa->drawX)) | ((b->y1 - vmesa->drawY) << 16))); + SetReg2DAGP(0x0C, (offsetX + b->x1) | ((b->y1 - vmesa->drawY) << 16)); /* GEDSTBASE */ SetReg2DAGP(0x34, (nDestBase >> 3)); /* GEPITCH */