On Thu, 5 Jul 2012 21:30:34 +0100, Dave Airlie <[email protected]> wrote: > +static void dri2_copy_region(DrawablePtr pDraw, RegionPtr pRegion, > + DRI2BufferPtr pDest, DRI2BufferPtr pSrc) > +{ > + DRI2DrawablePtr pPriv = DRI2GetDrawable(pDraw); > + DRI2ScreenPtr ds; > + ScreenPtr primeScreen; > + > + primeScreen = GetScreenPrime(pDraw->pScreen, pPriv->prime_id); > + ds = DRI2GetScreen(primeScreen); > + > + if (ds->CopyRegion2) > + (*ds->CopyRegion2)(primeScreen, pDraw, pRegion, pDest, pSrc); > + else > + (*ds->CopyRegion) (pDraw, pRegion, pDest, pSrc); > + > + /* cause damage to the box */ > + if (pPriv->prime_id) { > + BoxRec box; > + RegionRec region; > + box.x1 = 0; > + box.x2 = box.x1 + pDraw->width; > + box.y1 = 0; > + box.y2 = box.y1 + pDraw->height; > + RegionInit(®ion, &box, 1); > + RegionTranslate(®ion, pDraw->x, pDraw->y);
Double translation here and this bug has been copied into the other drivers as well. > + DamageRegionAppend(pDraw, ®ion); > + DamageRegionProcessPending(pDraw); > + RegionUninit(®ion); > + } > +} Anyway I thought the drivers were going to be responsible for applying the damage as we agreed that was an existing bug? -Chris -- Chris Wilson, Intel Open Source Technology Centre _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
