summaryrefslogtreecommitdiff
path: root/src/atidri.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/atidri.c')
-rw-r--r--src/atidri.c294
1 files changed, 0 insertions, 294 deletions
diff --git a/src/atidri.c b/src/atidri.c
index 35cbb99..6fcb1f0 100644
--- a/src/atidri.c
+++ b/src/atidri.c
@@ -126,75 +126,6 @@ static void ATIDRISwapContext( ScreenPtr pScreen,
}
}
-#ifdef USE_XAA
-static void ATIDRITransitionTo2d(ScreenPtr pScreen)
-{
- ScrnInfoPtr pScreenInfo = xf86ScreenToScrn(pScreen);
- ATIPtr pATI = ATIPTR(pScreenInfo);
-
- if (pATI->backArea) {
- xf86FreeOffscreenArea(pATI->backArea);
- pATI->backArea = NULL;
- }
- if (pATI->depthTexArea) {
- xf86FreeOffscreenArea(pATI->depthTexArea);
- pATI->depthTexArea = NULL;
- }
- pATI->have3DWindows = FALSE;
-}
-
-static void ATIDRITransitionTo3d(ScreenPtr pScreen)
-{
- ScrnInfoPtr pScreenInfo = xf86ScreenToScrn(pScreen);
- ATIPtr pATI = ATIPTR(pScreenInfo);
- FBAreaPtr fbArea;
- int width, height;
-
- xf86PurgeUnlockedOffscreenAreas(pScreen);
-
- xf86QueryLargestOffscreenArea(pScreen, &width, &height, 0, 0, 0);
-
- xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,
- "Largest offscreen area available: %d x %d\n",
- width, height);
-
- fbArea = xf86AllocateOffscreenArea(pScreen, pScreenInfo->displayWidth,
- height - pATI->depthTexLines -
- pATI->backLines,
- pScreenInfo->displayWidth, NULL, NULL, NULL);
-
- if (!fbArea)
- xf86DrvMsg(pScreen->myNum, X_ERROR, "Unable to reserve placeholder "
- "offscreen area, you might experience screen corruption\n");
-
- if (!pATI->backArea) {
- pATI->backArea =
- xf86AllocateOffscreenArea(pScreen, pScreenInfo->displayWidth,
- pATI->backLines,
- pScreenInfo->displayWidth,
- NULL, NULL, NULL);
- }
- if (!pATI->backArea)
- xf86DrvMsg(pScreen->myNum, X_ERROR, "Unable to reserve offscreen area "
- "for back buffer, you might experience screen corruption\n");
-
- if (!pATI->depthTexArea) {
- pATI->depthTexArea =
- xf86AllocateOffscreenArea(pScreen, pScreenInfo->displayWidth,
- pATI->depthTexLines,
- pScreenInfo->displayWidth,
- NULL, NULL, NULL);
- }
- if (!pATI->depthTexArea)
- xf86DrvMsg(pScreen->myNum, X_ERROR, "Unable to reserve offscreen area "
- "for depth buffer and textures, you might experience screen corruption\n");
-
- if (fbArea)
- xf86FreeOffscreenArea(fbArea);
-
- pATI->have3DWindows = TRUE;
-}
-#endif /* USE_XAA */
#ifdef USE_EXA
static void ATIDRITransitionTo2d_EXA(ScreenPtr pScreen)
@@ -232,59 +163,6 @@ static void ATIDRITransitionTo3d_EXA(ScreenPtr pScreen)
/* Initialize the state of the back and depth buffers. */
static void ATIDRIInitBuffers( WindowPtr pWin, RegionPtr prgn, CARD32 indx )
{
-#ifdef USE_XAA
- ScreenPtr pScreen = pWin->drawable.pScreen;
- ScrnInfoPtr pScreenInfo = xf86ScreenToScrn(pScreen);
- ATIPtr pATI = ATIPTR(pScreenInfo);
- ATIDRIServerInfoPtr pATIDRIServer = pATI->pDRIServerInfo;
- XAAInfoRecPtr pXAAInfo = pATI->pXAAInfo;
- BoxPtr pbox, pboxSave;
- int nbox, nboxSave;
- int depth;
-
- depth = 0x0000ffff;
-
- if (!pXAAInfo)
- return;
-
- if (!pXAAInfo->SetupForSolidFill)
- return;
-
- /* FIXME: Only initialize the back and depth buffers for contexts
- that request them */
-
- /* FIXME: Use drm clear? (see Radeon driver) */
-
- pboxSave = pbox = REGION_RECTS(prgn);
- nboxSave = nbox = REGION_NUM_RECTS(prgn);
-
- (*pXAAInfo->SetupForSolidFill)(pScreenInfo, 0, GXcopy, (CARD32)(-1));
- for (; nbox; nbox--, pbox++) {
- (*pXAAInfo->SubsequentSolidFillRect)(pScreenInfo,
- pbox->x1 + pATIDRIServer->fbX,
- pbox->y1 + pATIDRIServer->fbY,
- pbox->x2 - pbox->x1,
- pbox->y2 - pbox->y1);
- (*pXAAInfo->SubsequentSolidFillRect)(pScreenInfo,
- pbox->x1 + pATIDRIServer->backX,
- pbox->y1 + pATIDRIServer->backY,
- pbox->x2 - pbox->x1,
- pbox->y2 - pbox->y1);
- }
-
- pbox = pboxSave;
- nbox = nboxSave;
-
- (*pXAAInfo->SetupForSolidFill)(pScreenInfo, depth, GXcopy, (CARD32)(-1));
- for (; nbox; nbox--, pbox++)
- (*pXAAInfo->SubsequentSolidFillRect)(pScreenInfo,
- pbox->x1 + pATIDRIServer->depthX,
- pbox->y1 + pATIDRIServer->depthY,
- pbox->x2 - pbox->x1,
- pbox->y2 - pbox->y1);
-
- ATIDRIMarkSyncInt(pScreenInfo);
-#endif
}
/* Copy the back and depth buffers when the X server moves a window.
@@ -299,172 +177,6 @@ static void ATIDRIInitBuffers( WindowPtr pWin, RegionPtr prgn, CARD32 indx )
static void ATIDRIMoveBuffers( WindowPtr pWin, DDXPointRec ptOldOrg,
RegionPtr prgnSrc, CARD32 indx )
{
-#ifdef USE_XAA
- ScreenPtr pScreen = pWin->drawable.pScreen;
- ScrnInfoPtr pScreenInfo = xf86ScreenToScrn(pScreen);
- ATIPtr pATI = ATIPTR(pScreenInfo);
- XAAInfoRecPtr pXAAInfo = pATI->pXAAInfo;
-
- int backOffsetPitch = (((pATI->pDRIServerInfo->backPitch/8) << 22) |
- (pATI->pDRIServerInfo->backOffset >> 3));
-#if 0
- int depthOffsetPitch = (((pATI->pDRIServerInfo->depthPitch/8) << 22) |
- (pATI->pDRIServerInfo->depthOffset >> 3));
-#endif
- BoxPtr pboxTmp, pboxNext, pboxBase;
- DDXPointPtr pptTmp;
- int xdir, ydir;
-
- int screenwidth = pScreenInfo->virtualX;
- int screenheight = pScreenInfo->virtualY;
-
- BoxPtr pbox = REGION_RECTS(prgnSrc);
- int nbox = REGION_NUM_RECTS(prgnSrc);
-
- BoxPtr pboxNew1 = NULL;
- BoxPtr pboxNew2 = NULL;
- DDXPointPtr pptNew1 = NULL;
- DDXPointPtr pptNew2 = NULL;
- DDXPointPtr pptSrc = &ptOldOrg;
-
- int dx = pWin->drawable.x - ptOldOrg.x;
- int dy = pWin->drawable.y - ptOldOrg.y;
-
- if (!pXAAInfo)
- return;
-
- if (!pXAAInfo->SetupForScreenToScreenCopy)
- return;
-
- /* FIXME: Only move the back and depth buffers for contexts
- * that request them.
- */
-
- /* If the copy will overlap in Y, reverse the order */
- if (dy > 0) {
- ydir = -1;
-
- if (nbox > 1) {
- /* Keep ordering in each band, reverse order of bands */
- pboxNew1 = (BoxPtr)malloc(sizeof(BoxRec)*nbox);
- if (!pboxNew1) return;
- pptNew1 = (DDXPointPtr)malloc(sizeof(DDXPointRec)*nbox);
- if (!pptNew1) {
- free(pboxNew1);
- return;
- }
- pboxBase = pboxNext = pbox+nbox-1;
- while (pboxBase >= pbox) {
- while ((pboxNext >= pbox) && (pboxBase->y1 == pboxNext->y1))
- pboxNext--;
- pboxTmp = pboxNext+1;
- pptTmp = pptSrc + (pboxTmp - pbox);
- while (pboxTmp <= pboxBase) {
- *pboxNew1++ = *pboxTmp++;
- *pptNew1++ = *pptTmp++;
- }
- pboxBase = pboxNext;
- }
- pboxNew1 -= nbox;
- pbox = pboxNew1;
- pptNew1 -= nbox;
- pptSrc = pptNew1;
- }
- } else {
- /* No changes required */
- ydir = 1;
- }
-
- /* If the regions will overlap in X, reverse the order */
- if (dx > 0) {
- xdir = -1;
-
- if (nbox > 1) {
- /* reverse order of rects in each band */
- pboxNew2 = (BoxPtr)malloc(sizeof(BoxRec)*nbox);
- pptNew2 = (DDXPointPtr)malloc(sizeof(DDXPointRec)*nbox);
- if (!pboxNew2 || !pptNew2) {
- free(pptNew2);
- free(pboxNew2);
- free(pptNew1);
- free(pboxNew1);
- return;
- }
- pboxBase = pboxNext = pbox;
- while (pboxBase < pbox+nbox) {
- while ((pboxNext < pbox+nbox)
- && (pboxNext->y1 == pboxBase->y1))
- pboxNext++;
- pboxTmp = pboxNext;
- pptTmp = pptSrc + (pboxTmp - pbox);
- while (pboxTmp != pboxBase) {
- *pboxNew2++ = *--pboxTmp;
- *pptNew2++ = *--pptTmp;
- }
- pboxBase = pboxNext;
- }
- pboxNew2 -= nbox;
- pbox = pboxNew2;
- pptNew2 -= nbox;
- pptSrc = pptNew2;
- }
- } else {
- /* No changes are needed */
- xdir = 1;
- }
-
- (*pXAAInfo->SetupForScreenToScreenCopy)(pScreenInfo, xdir, ydir, GXcopy,
- (CARD32)(-1), -1);
-
- for (; nbox-- ; pbox++) {
- int xa = pbox->x1;
- int ya = pbox->y1;
- int destx = xa + dx;
- int desty = ya + dy;
- int w = pbox->x2 - xa + 1;
- int h = pbox->y2 - ya + 1;
-
- if (destx < 0) xa -= destx, w += destx, destx = 0;
- if (desty < 0) ya -= desty, h += desty, desty = 0;
- if (destx + w > screenwidth) w = screenwidth - destx;
- if (desty + h > screenheight) h = screenheight - desty;
-
- if (w <= 0) continue;
- if (h <= 0) continue;
-
- ATIMach64WaitForFIFO(pATI, 2);
- outf(SRC_OFF_PITCH, backOffsetPitch);
- outf(DST_OFF_PITCH, backOffsetPitch);
-
- (*pXAAInfo->SubsequentScreenToScreenCopy)(pScreenInfo,
- xa, ya,
- destx, desty,
- w, h);
-#if 0
- /* FIXME: Move depth buffers? */
- ATIMach64WaitForFIFO(pATI, 2);
- outf(SRC_OFF_PITCH, depthOffsetPitch);
- outf(DST_OFF_PITCH, depthOffsetPitch);
-
- if (pATI->depthMoves)
- ATIScreenToScreenCopyDepth(pScreenInfo,
- xa, ya,
- destx, desty,
- w, h);
-#endif
- }
-
- ATIMach64WaitForFIFO(pATI, 2);
- outf(SRC_OFF_PITCH, pATI->NewHW.dst_off_pitch);
- outf(DST_OFF_PITCH, pATI->NewHW.src_off_pitch);
-
- free(pptNew2);
- free(pboxNew2);
- free(pptNew1);
- free(pboxNew1);
-
- ATIDRIMarkSyncInt(pScreenInfo);
-#endif
}
/* Compute log base 2 of val. */
@@ -1093,12 +805,6 @@ Bool ATIDRIScreenInit( ScreenPtr pScreen )
pDRIInfo->SwapContext = ATIDRISwapContext;
pDRIInfo->InitBuffers = ATIDRIInitBuffers;
pDRIInfo->MoveBuffers = ATIDRIMoveBuffers;
-#ifdef USE_XAA
- if (!pATI->useEXA) {
- pDRIInfo->TransitionTo2d = ATIDRITransitionTo2d;
- pDRIInfo->TransitionTo3d = ATIDRITransitionTo3d;
- }
-#endif /* USE_XAA */
#ifdef USE_EXA
if (pATI->useEXA) {
pDRIInfo->TransitionTo2d = ATIDRITransitionTo2d_EXA;