diff options
author | Dave Airlie <airlied@gmail.com> | 2012-07-16 19:01:23 +1000 |
---|---|---|
committer | Dave Airlie <airlied@gmail.com> | 2012-07-16 19:01:23 +1000 |
commit | 42706433782656adcf831588cf9dde203e50402b (patch) | |
tree | be83eb79be7c077a69d87f8ac379a4c9c2c0bc2b | |
parent | abeb6ba8edac356b510ae6e8427c3cb8a0cf6e7a (diff) |
tdfx: fix build against XAA-less server.
Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r-- | configure.ac | 18 | ||||
-rw-r--r-- | src/tdfx.h | 5 | ||||
-rw-r--r-- | src/tdfx_accel.c | 16 | ||||
-rw-r--r-- | src/tdfx_dga.c | 10 | ||||
-rw-r--r-- | src/tdfx_dri.c | 6 | ||||
-rw-r--r-- | src/tdfx_driver.c | 2 |
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 @@ -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]) |