summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@gmail.com>2012-07-16 19:01:23 +1000
committerDave Airlie <airlied@gmail.com>2012-07-16 19:01:23 +1000
commit42706433782656adcf831588cf9dde203e50402b (patch)
treebe83eb79be7c077a69d87f8ac379a4c9c2c0bc2b
parentabeb6ba8edac356b510ae6e8427c3cb8a0cf6e7a (diff)
tdfx: fix build against XAA-less server.
Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r--configure.ac18
-rw-r--r--src/tdfx.h5
-rw-r--r--src/tdfx_accel.c16
-rw-r--r--src/tdfx_dga.c10
-rw-r--r--src/tdfx_dri.c6
-rw-r--r--src/tdfx_driver.c2
6 files changed, 56 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 3ccb489..ff9f9ff 100644
--- a/configure.ac
+++ b/configure.ac
@@ -110,6 +110,24 @@ if test "x$XSERVER_LIBPCIACCESS" = xyes; then
fi
AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes)
+AC_ARG_ENABLE(xaa,
+ AS_HELP_STRING([--enable-xaa],
+ [Enable legacy X Acceleration Architecture (XAA) [default=auto]]),
+ [XAA="$enableval"],
+ [XAA=auto])
+if test "x$XAA" != xno; then
+ save_CFLAGS=$CFLAGS
+ save_CPPFLAGS=$CPPFLAGS
+ CFLAGS=$XORG_CFLAGS
+ CPPFLAGS="$XORG_CFLAGS"
+ AC_CHECK_HEADERS([xaa.h], XAA=yes, XAA=no)
+ CFLAGS=$save_CFLAGS
+ CPPFLAGS=$save_CPPFLAGS
+fi
+AC_MSG_CHECKING([whether to include XAA support])
+AM_CONDITIONAL(XAA, test "x$XAA" = xyes)
+AC_MSG_RESULT([$XAA])
+
AC_SUBST([moduledir])
DRIVER_NAME=tdfx
diff --git a/src/tdfx.h b/src/tdfx.h
index 64506bc..7782473 100644
--- a/src/tdfx.h
+++ b/src/tdfx.h
@@ -120,7 +120,10 @@ extern void FillPrivateDRI(TDFXPtr pTDFX, TDFXDRIPtr pTDFXDRI);
#define TDFXTRACEREG if(0) ErrorF
#endif
+#ifdef HAVE_XAA_H
#include "xaa.h"
+#endif
+#include "xf86fbman.h"
#include "xf86Cursor.h"
#include "compat-api.h"
@@ -226,7 +229,9 @@ typedef struct _TDFXRec {
BoxRec prevBlitDest;
TDFXRegRec SavedReg;
TDFXRegRec ModeReg;
+#ifdef HAVE_XAA_H
XAAInfoRecPtr AccelInfoRec;
+#endif
xf86CursorInfoPtr CursorInfoRec;
CloseScreenProcPtr CloseScreen;
Bool usePIO;
diff --git a/src/tdfx_accel.c b/src/tdfx_accel.c
index 5767835..65933b4 100644
--- a/src/tdfx_accel.c
+++ b/src/tdfx_accel.c
@@ -15,14 +15,16 @@
#include "xf86PciInfo.h"
/* Drivers that use XAA need this */
-#include "xaa.h"
+#ifdef HAVE_XAA_H
#include "xaalocal.h"
+#endif
#include "xf86fbman.h"
#include "miline.h"
#include "tdfx.h"
+#ifdef HAVE_XAA_H
#ifdef TDFX_DEBUG_CMDS
static int cmdCnt=0;
static int lastAddr=0;
@@ -77,11 +79,14 @@ static void TDFXSubsequentCPUToScreenColorExpandFill(ScrnInfoPtr pScrn,
int skipleft);
static void TDFXSubsequentColorExpandScanline(ScrnInfoPtr pScrn, int bufno);
+#endif
void
TDFXNeedSync(ScrnInfoPtr pScrn) {
TDFXPtr pTDFX = TDFXPTR(pScrn);
pTDFX->syncDone=FALSE;
+#ifdef HAVE_XAA_H
pTDFX->AccelInfoRec->NeedToSync = TRUE;
+#endif
}
void
@@ -203,9 +208,11 @@ TDFXSetLFBConfig(TDFXPtr pTDFX) {
}
}
+
Bool
TDFXAccelInit(ScreenPtr pScreen)
{
+#ifdef HAVE_XAA_H
XAAInfoRecPtr infoPtr;
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
TDFXPtr pTDFX = TDFXPTR(pScrn);
@@ -302,6 +309,9 @@ TDFXAccelInit(ScreenPtr pScreen)
/* Fill in acceleration functions */
return XAAInit(pScreen, infoPtr);
+#else
+ return FALSE;
+#endif
}
static void TDFXMakeRoomNoProp(TDFXPtr pTDFX, int size) {
@@ -343,6 +353,9 @@ void TDFXSync(ScrnInfoPtr pScrn)
pTDFX->PciCnt=stat&0x1F;
}
+#ifdef HAVE_XAA_H
+
+
static void
TDFXMatchState(TDFXPtr pTDFX)
{
@@ -933,3 +946,4 @@ static void TDFXSubsequentColorExpandScanline(ScrnInfoPtr pScrn, int bufno)
}
}
+#endif
diff --git a/src/tdfx_dga.c b/src/tdfx_dga.c
index 3972bdd..e83f38d 100644
--- a/src/tdfx_dga.c
+++ b/src/tdfx_dga.c
@@ -15,10 +15,12 @@ static Bool TDFX_OpenFramebuffer(ScrnInfoPtr, char **, unsigned char **,
static Bool TDFX_SetMode(ScrnInfoPtr, DGAModePtr);
static int TDFX_GetViewport(ScrnInfoPtr);
static void TDFX_SetViewport(ScrnInfoPtr, int, int, int);
+#ifdef HAVE_XAA_H
static void TDFX_FillRect(ScrnInfoPtr, int, int, int, int, unsigned long);
static void TDFX_BlitRect(ScrnInfoPtr, int, int, int, int, int, int);
static void TDFX_BlitTransRect(ScrnInfoPtr, int, int, int, int, int, int,
unsigned long);
+#endif
static
@@ -29,9 +31,13 @@ DGAFunctionRec TDFX_DGAFuncs = {
TDFX_SetViewport,
TDFX_GetViewport,
TDFXSync,
+#ifdef HAVE_XAA_H
TDFX_FillRect,
TDFX_BlitRect,
TDFX_BlitTransRect
+#else
+ NULL, NULL, NULL
+#endif
};
@@ -60,8 +66,10 @@ TDFXDGAInit(ScreenPtr pScreen)
num++;
currentMode->mode = pMode;
currentMode->flags = DGA_CONCURRENT_ACCESS | DGA_PIXMAP_AVAILABLE;
+#ifdef HAVE_XAA_H
if (!pTDFX->NoAccel)
currentMode->flags |= DGA_FILL_RECT | DGA_BLIT_RECT;
+#endif
if (pMode->Flags & V_DBLSCAN)
currentMode->flags |= DGA_DOUBLESCAN;
if (pMode->Flags & V_INTERLACE)
@@ -150,6 +158,7 @@ TDFX_SetViewport(ScrnInfoPtr pScrn, int x, int y, int flags)
pTDFX->DGAViewportStatus = 0;
}
+#ifdef HAVE_XAA_H
static void
TDFX_FillRect(ScrnInfoPtr pScrn, int x, int y, int w, int h,
unsigned long color)
@@ -189,6 +198,7 @@ TDFX_BlitTransRect(
/* this one should be separate since the XAA function would
prohibit usage of ~0 as the key */
}
+#endif
static Bool
diff --git a/src/tdfx_dri.c b/src/tdfx_dri.c
index e41e220..76064c3 100644
--- a/src/tdfx_dri.c
+++ b/src/tdfx_dri.c
@@ -545,6 +545,7 @@ TDFXDRISwapContext(ScreenPtr pScreen, DRISyncType syncType,
static void
TDFXDRIInitBuffers(WindowPtr pWin, RegionPtr prgn, CARD32 index)
{
+#ifdef HAVE_XAA_H
ScreenPtr pScreen = pWin->drawable.pScreen;
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
TDFXPtr pTDFX = TDFXPTR(pScrn);
@@ -567,13 +568,16 @@ TDFXDRIInitBuffers(WindowPtr pWin, RegionPtr prgn, CARD32 index)
}
TDFXSelectBuffer(pTDFX, TDFX_FRONT);
+
pTDFX->AccelInfoRec->NeedToSync = TRUE;
+#endif
}
static void
TDFXDRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg,
RegionPtr prgnSrc, CARD32 index)
{
+#ifdef HAVE_XAA_H
ScreenPtr pScreen = pParent->drawable.pScreen;
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
TDFXPtr pTDFX = TDFXPTR(pScrn);
@@ -609,6 +613,8 @@ TDFXDRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg,
TDFXSelectBuffer(pTDFX, TDFX_FRONT);
pTDFX->AccelInfoRec->NeedToSync = TRUE;
+#endif
+
}
/*
diff --git a/src/tdfx_driver.c b/src/tdfx_driver.c
index c192f34..ddd5431 100644
--- a/src/tdfx_driver.c
+++ b/src/tdfx_driver.c
@@ -2537,8 +2537,10 @@ TDFXCloseScreen(CLOSE_SCREEN_ARGS_DECL)
vgaHWUnmapMem(pScrn);
}
+#ifdef HAVE_XAA_H
if (pTDFX->AccelInfoRec) XAADestroyInfoRec(pTDFX->AccelInfoRec);
pTDFX->AccelInfoRec=0;
+#endif
if (pTDFX->DGAModes) free(pTDFX->DGAModes);
pTDFX->DGAModes=0;
if (pTDFX->scanlineColorExpandBuffers[0])