From 544ee9bb7a060d6a85b5168a2de74ff1db430c89 Mon Sep 17 00:00:00 2001 From: Marc Aurele La France Date: Wed, 23 Apr 2003 21:51:18 +0000 Subject: [PATCH] =?UTF-8?q?136.=20Fix=20bug=20that=20prevented=20fbman=20f?= =?UTF-8?q?rom=20using=20the=20last=20partial=20scanline=20of=20a=20=20=20?= =?UTF-8?q?=20=20Mach64=20framebuffer=20(Marc=20La=20France).=20135.=20Mak?= =?UTF-8?q?e=20ATI=20Mach64=20FIFO=20cache=20integrity=20testing=20optiona?= =?UTF-8?q?l=20(Marc=20La=20=20=20=20=20France).=20134.=20Export=20ATI=20M?= =?UTF-8?q?ach64=20hardware=20overlay=20as=20an=20XVideo=20adaptor=20(deri?= =?UTF-8?q?ved=20from=20=20=20=20=20GATOS=20project,=20Egbert=20Eich,=20Ma?= =?UTF-8?q?rc=20La=20France).=20133.=20Reorganise=20ATI=20Mach64=20support?= =?UTF-8?q?=20into=20separate=20source=20files=20(Marc=20La=20=20=20=20=20?= =?UTF-8?q?France).=20132.=20Refine=20atimisc's=20decoding=20of=20the=20pa?= =?UTF-8?q?nel=20mode=20on=20server=20entry=20in=20an=20=20=20=20=20attemp?= =?UTF-8?q?t=20to=20reduce=20the=20effect=20of=20atyfb=20bugs=20(Marc=20La?= =?UTF-8?q?=20France).=20131.=20Make=20Rage128=20and=20Radeon=20XVideo=20a?= =?UTF-8?q?vailable=20even=20when=202D=20acceleration=20is=20=20=20=20=20d?= =?UTF-8?q?isabled=20(Marc=20La=20France).=20130.=20There=20is=20no=20long?= =?UTF-8?q?er=20any=20need=20to=20require=20hardware=20cursors=20during=20?= =?UTF-8?q?Rage128=20=20=20=20=20and=20Radeon=20XVideo=20displays=20(Marc?= =?UTF-8?q?=20La=20France).=20129.=20Initialise=20v4l's=20XVideo=20adaptor?= =?UTF-8?q?s=20last=20(Marc=20La=20France).=20128.=20Reduce=20cut&paste=20?= =?UTF-8?q?effects=20by=20adding=20more=20helpers=20to=20Xv=20(derived=20f?= =?UTF-8?q?rom=20=20=20=20=20#5645,=20Bj=F6rn=20Augustsson,=20Marc=20La=20?= =?UTF-8?q?France).=20127.=20Centralise=20a=20region=20comparison=20primit?= =?UTF-8?q?ive=20into=20'mi'=20and=20use=20it=20instead=20=20=20=20=20of?= =?UTF-8?q?=20local=20definitions=20throughout=20the=20server=20(Marc=20La?= =?UTF-8?q?=20France).=20126.=20DPMSExtension=20&=20XvExtension=20driver?= =?UTF-8?q?=20cleanups=20(Marc=20La=20France).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hw/kdrive/i810/i810_video.c | 36 +++------------------------------- hw/kdrive/mach64/mach64video.c | 36 +++------------------------------- 2 files changed, 6 insertions(+), 66 deletions(-) diff --git a/hw/kdrive/i810/i810_video.c b/hw/kdrive/i810/i810_video.c index 0d18e44d9..eb9d49d5b 100644 --- a/hw/kdrive/i810/i810_video.c +++ b/hw/kdrive/i810/i810_video.c @@ -58,7 +58,7 @@ THE USE OR OTHER DEALINGS IN THE SOFTWARE. **************************************************************************/ -/* $XFree86$ */ +/* $XFree86: xc/programs/Xserver/hw/kdrive/i810/i810_video.c,v 1.1tsi Exp $ */ /* * i810_video.c: i810 KDrive Xv driver. @@ -436,36 +436,6 @@ i810SetupImageVideo(ScreenPtr pScreen) } -static Bool -RegionsEqual(RegionPtr A, RegionPtr B) -{ - int *dataA, *dataB; - int num; - - num = REGION_NUM_RECTS(A); - if(num != REGION_NUM_RECTS(B)) - return FALSE; - - if((A->extents.x1 != B->extents.x1) || - (A->extents.x2 != B->extents.x2) || - (A->extents.y1 != B->extents.y1) || - (A->extents.y2 != B->extents.y2)) - return FALSE; - - dataA = (int*)REGION_RECTS(A); - dataB = (int*)REGION_RECTS(B); - - while(num--) { - if((dataA[0] != dataB[0]) || (dataA[1] != dataB[1])) - return FALSE; - dataA += 2; - dataB += 2; - } - - return TRUE; -} - - /* I810ClipVideo - Takes the dst box in standard X BoxRec form (top and left @@ -1056,8 +1026,8 @@ i810PutImage( } /* update cliplist */ - if(!RegionsEqual(&pPriv->clip, clipBoxes)) { - REGION_COPY(pScreen, &pPriv->clip, clipBoxes); + if(!REGION_EQUAL(screen->pScreen, &pPriv->clip, clipBoxes)) { + REGION_COPY(screen->pScreen, &pPriv->clip, clipBoxes); i810FillBoxSolid(screen, REGION_NUM_RECTS(clipBoxes), REGION_RECTS(clipBoxes), pPriv->colorKey, GXcopy, ~0); diff --git a/hw/kdrive/mach64/mach64video.c b/hw/kdrive/mach64/mach64video.c index 2c2e30866..b3cfa22c5 100644 --- a/hw/kdrive/mach64/mach64video.c +++ b/hw/kdrive/mach64/mach64video.c @@ -19,7 +19,7 @@ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ -/* $XFree86: xc/programs/Xserver/hw/kdrive/mach64/mach64video.c,v 1.8 2002/10/03 22:08:53 keithp Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/kdrive/mach64/mach64video.c,v 1.9tsi Exp $ */ #include "mach64.h" #include "Xv.h" @@ -330,36 +330,6 @@ mach64CopyPlanarData(KdScreenInfo *screen, } } -/* I really should stick this in miregion */ -static Bool -RegionsEqual(RegionPtr A, RegionPtr B) -{ - int *dataA, *dataB; - int num; - - num = REGION_NUM_RECTS(A); - if(num != REGION_NUM_RECTS(B)) - return FALSE; - - if((A->extents.x1 != B->extents.x1) || - (A->extents.x2 != B->extents.x2) || - (A->extents.y1 != B->extents.y1) || - (A->extents.y2 != B->extents.y2)) - return FALSE; - - dataA = (int*)REGION_RECTS(A); - dataB = (int*)REGION_RECTS(B); - - while(num--) { - if((dataA[0] != dataB[0]) || (dataA[1] != dataB[1])) - return FALSE; - dataA += 2; - dataB += 2; - } - - return TRUE; -} - static void mach64PaintRegion (ScreenPtr pScreen, RegionPtr pRgn, Pixel fg) { @@ -786,7 +756,7 @@ mach64PutImage(KdScreenInfo *screen, rot_src_w, rot_src_h, rot_drw_w, rot_drw_h); /* update cliplist */ - if (!RegionsEqual (&pPortPriv->clip, clipBoxes)) + if (!REGION_EQUAL (screen->pScreen, &pPortPriv->clip, clipBoxes)) { REGION_COPY (screen->pScreen, &pPortPriv->clip, clipBoxes); mach64PaintRegion (screen->pScreen, &pPortPriv->clip, pPortPriv->colorKey); @@ -919,7 +889,7 @@ mach64ReputImage (KdScreenInfo *screen, pOldExtents->y2 == pNewExtents->y2) { /* update cliplist */ - if (!RegionsEqual (&pPortPriv->clip, clipBoxes)) + if (!REGION_EQUAL (screen->pScreen, &pPortPriv->clip, clipBoxes)) { REGION_COPY (screen->pScreen, &pPortPriv->clip, clipBoxes); mach64PaintRegion (screen->pScreen, &pPortPriv->clip, pPortPriv->colorKey);