diff --git a/configure.ac b/configure.ac index ba332087..f0223c01 100644 --- a/configure.ac +++ b/configure.ac @@ -447,20 +447,6 @@ if test "x$UMS" = "xyes" -a "x$legacy" = "xno"; then fi if test "x$UMS" = "xyes"; then - AC_ARG_ENABLE(xaa, - AS_HELP_STRING([--enable-xaa], - [Enable legacy X Acceleration Architecture (XAA) for i810 chipsets [default=auto]]), - [XAA="$enableval"], - [XAA="auto"]) - if test "x$XAA" != "xno"; then - save_CPPFLAGS=$CPPFLAGS - CPPFLAGS=$XORG_CFLAGS - AC_CHECK_HEADERS([xaa.h], XAA="yes", XAA="no") - CPPFLAGS=$save_CPPFLAGS - fi - AC_MSG_CHECKING([whether to include XAA support]) - AC_MSG_RESULT([$XAA]) - AC_ARG_ENABLE(dga, AS_HELP_STRING([--enable-dga], [Enable legacy Direct Graphics Access (DGA) for i810 chipsets [default=auto]]), @@ -476,7 +462,6 @@ if test "x$UMS" = "xyes"; then AC_MSG_RESULT([$DGA]) fi AM_CONDITIONAL(DGA, test "x$DGA" = "xyes") -AM_CONDITIONAL(XAA, test "x$XAA" = "xyes") AM_CONDITIONAL(KMS, test "x$KMS" = "xyes") if test "x$KMS" = "xyes"; then diff --git a/meson_options.txt b/meson_options.txt index e99a8f42..a7431fb3 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -2,8 +2,6 @@ option('sna', type : 'boolean', value : true, description : 'Build with SNA support') option('uxa', type : 'boolean', value : true, description : 'Build with UXA support') -option('xaa', type : 'boolean', value : true, - description : 'Build with XAA support') option('ums', type : 'boolean', value : true, description : 'Build with UMS support') option('kms', type : 'boolean', value : true, diff --git a/src/legacy/i810/Makefile.am b/src/legacy/i810/Makefile.am index c44b354b..99da2291 100644 --- a/src/legacy/i810/Makefile.am +++ b/src/legacy/i810/Makefile.am @@ -19,11 +19,6 @@ liblegacy_i810_la_SOURCES = \ i810_video.c \ i810_wmark.c -if XAA -liblegacy_i810_la_SOURCES += \ - i810_xaa.c -endif - if DGA liblegacy_i810_la_SOURCES += \ i810_dga.c diff --git a/src/legacy/i810/i810.h b/src/legacy/i810/i810.h index 19be049c..ac6bc639 100644 --- a/src/legacy/i810/i810.h +++ b/src/legacy/i810/i810.h @@ -42,9 +42,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "compiler.h" #include "xf86Pci.h" #include "i810_reg.h" -#ifdef HAVE_XAA_H -#include "xaa.h" -#endif #include "xf86Cursor.h" #include "xf86xv.h" #include "vbe.h" @@ -204,9 +201,6 @@ typedef struct _I810Rec { I810RegRec SavedReg; I810RegRec ModeReg; -#ifdef HAVE_XAA_H - XAAInfoRecPtr AccelInfoRec; -#endif xf86CursorInfoPtr CursorInfoRec; CloseScreenProcPtr CloseScreen; ScreenBlockHandlerProcPtr BlockHandler; @@ -266,11 +260,7 @@ extern Bool I810CleanupDma(ScrnInfoPtr pScrn); #define I810REGPTR(p) (&(I810PTR(p)->ModeReg)) extern Bool I810CursorInit(ScreenPtr pScreen); -#ifdef HAVE_XAA_H -extern Bool I810AccelInit(ScreenPtr pScreen); -#else static inline Bool I810AccelInit(ScreenPtr pScreen) { return TRUE; } -#endif extern void I810SetPIOAccess(I810Ptr pI810); extern void I810SetMMIOAccess(I810Ptr pI810); extern unsigned int I810CalcWatermark(ScrnInfoPtr pScrn, double freq, diff --git a/src/legacy/i810/i810_accel.c b/src/legacy/i810/i810_accel.c index caf68d93..f267fde6 100644 --- a/src/legacy/i810/i810_accel.c +++ b/src/legacy/i810/i810_accel.c @@ -126,9 +126,6 @@ I810WaitLpRing(ScrnInfoPtr pScrn, int n, int timeout_millis) DRIUnlock(xf86ScrnToScreen(pScrn)); DRICloseScreen(xf86ScrnToScreen(pScrn)); } -#endif -#if HAVE_XAA_H - pI810->AccelInfoRec = NULL; /* Stops recursive behavior */ #endif FatalError("lockup\n"); } @@ -353,9 +350,4 @@ I810RefreshRing(ScrnInfoPtr pScrn) pI810->LpRing->space = pI810->LpRing->head - (pI810->LpRing->tail + 8); if (pI810->LpRing->space < 0) pI810->LpRing->space += pI810->LpRing->mem.Size; - -#if HAVE_XAA_H - if (pI810->AccelInfoRec) - pI810->AccelInfoRec->NeedToSync = TRUE; -#endif } diff --git a/src/legacy/i810/i810_dga.c b/src/legacy/i810/i810_dga.c index bbdf7b37..9dd23119 100644 --- a/src/legacy/i810/i810_dga.c +++ b/src/legacy/i810/i810_dga.c @@ -41,12 +41,6 @@ static Bool I810_SetMode(ScrnInfoPtr, DGAModePtr); static int I810_GetViewport(ScrnInfoPtr); static void I810_SetViewport(ScrnInfoPtr, int, int, int); -#ifdef HAVE_XAA_H -static void I810_Sync(ScrnInfoPtr); -static void I810_FillRect(ScrnInfoPtr, int, int, int, int, unsigned long); -static void I810_BlitRect(ScrnInfoPtr, int, int, int, int, int, int); -#endif - #if 0 static void I810_BlitTransRect(ScrnInfoPtr, int, int, int, int, int, int, unsigned long); @@ -59,15 +53,9 @@ DGAFunctionRec I810DGAFuncs = { I810_SetMode, I810_SetViewport, I810_GetViewport, -#ifdef HAVE_XAA_H - I810_Sync, - I810_FillRect, - I810_BlitRect, -#else NULL, NULL, NULL, -#endif #if 0 I810_BlitTransRect #else @@ -194,49 +182,6 @@ I810_SetViewport(ScrnInfoPtr pScrn, int x, int y, int flags) pI810->DGAViewportStatus = 0; } -#ifdef HAVE_XAA_H -static void -I810_FillRect(ScrnInfoPtr pScrn, - int x, int y, int w, int h, unsigned long color) -{ - I810Ptr pI810 = I810PTR(pScrn); - - if (pI810->AccelInfoRec) { - (*pI810->AccelInfoRec->SetupForSolidFill) (pScrn, color, GXcopy, ~0); - (*pI810->AccelInfoRec->SubsequentSolidFillRect) (pScrn, x, y, w, h); - SET_SYNC_FLAG(pI810->AccelInfoRec); - } -} - -static void -I810_Sync(ScrnInfoPtr pScrn) -{ - I810Ptr pI810 = I810PTR(pScrn); - - if (pI810->AccelInfoRec) { - (*pI810->AccelInfoRec->Sync) (pScrn); - } -} - -static void -I810_BlitRect(ScrnInfoPtr pScrn, - int srcx, int srcy, int w, int h, int dstx, int dsty) -{ - I810Ptr pI810 = I810PTR(pScrn); - - if (pI810->AccelInfoRec) { - int xdir = ((srcx < dstx) && (srcy == dsty)) ? -1 : 1; - int ydir = (srcy < dsty) ? -1 : 1; - - (*pI810->AccelInfoRec->SetupForScreenToScreenCopy) (pScrn, xdir, ydir, - GXcopy, ~0, -1); - (*pI810->AccelInfoRec->SubsequentScreenToScreenCopy) (pScrn, srcx, srcy, - dstx, dsty, w, h); - SET_SYNC_FLAG(pI810->AccelInfoRec); - } -} -#endif - #if 0 static void I810_BlitTransRect(ScrnInfoPtr pScrn, diff --git a/src/legacy/i810/i810_dri.c b/src/legacy/i810/i810_dri.c index 6c747f48..36375031 100644 --- a/src/legacy/i810/i810_dri.c +++ b/src/legacy/i810/i810_dri.c @@ -1012,11 +1012,6 @@ I810DRISwapContext(ScreenPtr pScreen, DRISyncType syncType, static void I810DRISetNeedSync(ScrnInfoPtr pScrn) { -#ifdef HAVE_XAA_H - I810Ptr pI810 = I810PTR(pScrn); - if (pI810->AccelInfoRec) - pI810->AccelInfoRec->NeedToSync = TRUE; -#endif } static void diff --git a/src/legacy/i810/i810_driver.c b/src/legacy/i810/i810_driver.c index ccd10884..f894a5e8 100644 --- a/src/legacy/i810/i810_driver.c +++ b/src/legacy/i810/i810_driver.c @@ -1900,13 +1900,6 @@ I810LeaveVT(VT_FUNC_ARGS_DECL) } #endif -#ifdef HAVE_XAA_H - if (pI810->AccelInfoRec != NULL) { - I810RefreshRing(scrn); - I810Sync(scrn); - pI810->AccelInfoRec->NeedToSync = FALSE; - } -#endif I810Restore(scrn); if (!I810UnbindGARTMemory(scrn)) @@ -1925,18 +1918,8 @@ I810CloseScreen(CLOSE_SCREEN_ARGS_DECL) ScrnInfoPtr scrn = xf86ScreenToScrn(screen); vgaHWPtr hwp = VGAHWPTR(scrn); I810Ptr pI810 = I810PTR(scrn); -#ifdef HAVE_XAA_H - XAAInfoRecPtr infoPtr = pI810->AccelInfoRec; -#endif if (scrn->vtSema == TRUE) { -#ifdef HAVE_XAA_H - if (pI810->AccelInfoRec != NULL) { - I810RefreshRing(scrn); - I810Sync(scrn); - pI810->AccelInfoRec->NeedToSync = FALSE; - } -#endif I810Restore(scrn); vgaHWLock(hwp); } @@ -1961,15 +1944,6 @@ I810CloseScreen(CLOSE_SCREEN_ARGS_DECL) pI810->ScanlineColorExpandBuffers = NULL; } -#ifdef HAVE_XAA_H - if (infoPtr) { - if (infoPtr->ScanlineColorExpandBuffers) - free(infoPtr->ScanlineColorExpandBuffers); - XAADestroyInfoRec(infoPtr); - pI810->AccelInfoRec = NULL; - } -#endif - if (pI810->CursorInfoRec) { xf86DestroyCursorInfoRec(pI810->CursorInfoRec); pI810->CursorInfoRec = NULL; diff --git a/src/legacy/i810/i810_xaa.c b/src/legacy/i810/i810_xaa.c deleted file mode 100644 index 1e0a8527..00000000 --- a/src/legacy/i810/i810_xaa.c +++ /dev/null @@ -1,321 +0,0 @@ - -/************************************************************************** - -Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. -All Rights Reserved. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sub license, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice (including the -next paragraph) shall be included in all copies or substantial portions -of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. -IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR -ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -**************************************************************************/ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -/* - * Authors: - * Keith Whitwell - * - */ - -#include "xorg-server.h" -#include "xf86.h" -#include "xaarop.h" -#include "i810.h" - -static void -I810SetupForMono8x8PatternFill(ScrnInfoPtr pScrn, int pattx, int patty, - int fg, int bg, int rop, - unsigned int planemask) -{ - I810Ptr pI810 = I810PTR(pScrn); - - if (I810_DEBUG & DEBUG_VERBOSE_ACCEL) - ErrorF("I810SetupFor8x8PatternColorExpand\n"); - - /* FULL_MONO_PAT_BLT, p176 */ - pI810->BR[0] = (BR00_BITBLT_CLIENT | BR00_OP_MONO_PAT_BLT | 0x9); - pI810->BR[18] = bg; - pI810->BR[19] = fg; - pI810->BR[13] = (pScrn->displayWidth * pI810->cpp); - pI810->BR[13] |= I810PatternROP[rop] << 16; - if (bg == -1) - pI810->BR[13] |= BR13_MONO_PATN_TRANS; -} - -static void -I810SubsequentMono8x8PatternFillRect(ScrnInfoPtr pScrn, int pattx, int patty, - int x, int y, int w, int h) -{ - I810Ptr pI810 = I810PTR(pScrn); - int addr = - pI810->bufferOffset + (y * pScrn->displayWidth + x) * pI810->cpp; - - if (I810_DEBUG & DEBUG_VERBOSE_ACCEL) - ErrorF("I810Subsequent8x8PatternColorExpand\n"); - - { - BEGIN_LP_RING(12); - OUT_RING(pI810->BR[0] | ((y << 5) & BR00_PAT_VERT_ALIGN)); - OUT_RING(pI810->BR[13]); - OUT_RING((h << 16) | (w * pI810->cpp)); - OUT_RING(addr); - OUT_RING(pI810->BR[13] & 0xFFFF); /* src pitch */ - OUT_RING(addr); /* src addr */ - OUT_RING(0); /* transparency color */ - OUT_RING(pI810->BR[18]); /* bg */ - OUT_RING(pI810->BR[19]); /* fg */ - OUT_RING(pattx); /* pattern data */ - OUT_RING(patty); - OUT_RING(0); - ADVANCE_LP_RING(); - } -} - -static void -I810GetNextScanlineColorExpandBuffer(ScrnInfoPtr pScrn) -{ - I810Ptr pI810 = I810PTR(pScrn); - XAAInfoRecPtr infoPtr = pI810->AccelInfoRec; - - if (pI810->nextColorExpandBuf == pI810->NumScanlineColorExpandBuffers) - I810Sync(pScrn); - - infoPtr->ScanlineColorExpandBuffers[0] = - pI810->ScanlineColorExpandBuffers[pI810->nextColorExpandBuf]; - - if (I810_DEBUG & DEBUG_VERBOSE_ACCEL) - ErrorF("using color expand buffer %d\n", pI810->nextColorExpandBuf); - - pI810->nextColorExpandBuf++; -} - -static void -I810SetupForScanlineCPUToScreenColorExpandFill(ScrnInfoPtr pScrn, - int fg, int bg, int rop, - unsigned int planemask) -{ - I810Ptr pI810 = I810PTR(pScrn); - - if (I810_DEBUG & DEBUG_VERBOSE_ACCEL) - ErrorF("I810SetupForScanlineScreenToScreenColorExpand %d %d %x %x\n", - fg, bg, rop, planemask); - - pI810->BR[13] = (pScrn->displayWidth * pI810->cpp); - pI810->BR[13] |= I810CopyROP[rop] << 16; - pI810->BR[13] |= (1 << 27); - if (bg == -1) - pI810->BR[13] |= BR13_MONO_TRANSPCY; - - pI810->BR[18] = bg; - pI810->BR[19] = fg; - - I810GetNextScanlineColorExpandBuffer(pScrn); -} - -static void -I810SubsequentScanlineCPUToScreenColorExpandFill(ScrnInfoPtr pScrn, - int x, int y, - int w, int h, int skipleft) -{ - I810Ptr pI810 = I810PTR(pScrn); - - if (I810_DEBUG & DEBUG_VERBOSE_ACCEL) - ErrorF("I810SubsequentScanlineCPUToScreenColorExpandFill " - "%d,%d %dx%x %d\n", x, y, w, h, skipleft); - - pI810->BR[0] = BR00_BITBLT_CLIENT | BR00_OP_MONO_SRC_COPY_BLT | 0x06; - pI810->BR[9] = (pI810->bufferOffset + - (y * pScrn->displayWidth + x) * pI810->cpp); - pI810->BR[14] = ((1 << 16) | (w * pI810->cpp)); - pI810->BR[11] = ((w + 31) / 32) - 1; -} - -static void -I810SubsequentColorExpandScanline(ScrnInfoPtr pScrn, int bufno) -{ - I810Ptr pI810 = I810PTR(pScrn); - - pI810->BR[12] = (pI810->AccelInfoRec->ScanlineColorExpandBuffers[0] - - pI810->FbBase); - - if (I810_DEBUG & DEBUG_VERBOSE_ACCEL) - ErrorF("I810SubsequentColorExpandScanline %d (addr %x)\n", - bufno, pI810->BR[12]); - - { - BEGIN_LP_RING(8); - OUT_RING(pI810->BR[0]); - OUT_RING(pI810->BR[13]); - OUT_RING(pI810->BR[14]); - OUT_RING(pI810->BR[9]); - OUT_RING(pI810->BR[11]); - OUT_RING(pI810->BR[12]); /* srcaddr */ - OUT_RING(pI810->BR[18]); - OUT_RING(pI810->BR[19]); - ADVANCE_LP_RING(); - } - - /* Advance to next scanline. - */ - pI810->BR[9] += pScrn->displayWidth * pI810->cpp; - I810GetNextScanlineColorExpandBuffer(pScrn); -} - -/* Emit on gaining VT? - */ -#if 0 -static void -I810EmitInvarientState(ScrnInfoPtr pScrn) -{ - I810Ptr pI810 = I810PTR(pScrn); - - BEGIN_LP_RING(10); - - OUT_RING(INST_PARSER_CLIENT | INST_OP_FLUSH | INST_FLUSH_MAP_CACHE); - OUT_RING(GFX_CMD_CONTEXT_SEL | CS_UPDATE_USE | CS_USE_CTX0); - OUT_RING(INST_PARSER_CLIENT | INST_OP_FLUSH | INST_FLUSH_MAP_CACHE); - OUT_RING(0); - - OUT_RING(GFX_OP_COLOR_CHROMA_KEY); - OUT_RING(CC1_UPDATE_KILL_WRITE | - CC1_DISABLE_KILL_WRITE | - CC1_UPDATE_COLOR_IDX | - CC1_UPDATE_CHROMA_LOW | CC1_UPDATE_CHROMA_HI | 0); - OUT_RING(0); - OUT_RING(0); - -/* OUT_RING( CMD_OP_Z_BUFFER_INFO ); */ -/* OUT_RING( pI810->DepthBuffer.Start | pI810->auxPitchBits); */ - - ADVANCE_LP_RING(); -} -#endif - -/* The following function sets up the supported acceleration. Call it - * from the FbInit() function in the SVGA driver, or before ScreenInit - * in a monolithic server. - */ -Bool -I810AccelInit(ScreenPtr pScreen) -{ - XAAInfoRecPtr infoPtr; - ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); - I810Ptr pI810 = I810PTR(pScrn); - - if (I810_DEBUG & DEBUG_VERBOSE_ACCEL) - ErrorF("I810AccelInit\n"); - - pI810->AccelInfoRec = infoPtr = XAACreateInfoRec(); - if (!infoPtr) - return FALSE; - - pI810->bufferOffset = 0; - infoPtr->Flags = LINEAR_FRAMEBUFFER | OFFSCREEN_PIXMAPS; - infoPtr->Flags |= PIXMAP_CACHE; - - /* Sync - */ - infoPtr->Sync = I810Sync; - - /* Solid filled rectangles - */ - { - infoPtr->SolidFillFlags = NO_PLANEMASK; - infoPtr->SetupForSolidFill = I810SetupForSolidFill; - infoPtr->SubsequentSolidFillRect = I810SubsequentSolidFillRect; - } - - /* Screen to screen copy - * - the transparency op hangs the blit engine, disable for now. - */ - { - infoPtr->ScreenToScreenCopyFlags = (0 - | NO_PLANEMASK - | NO_TRANSPARENCY | 0); - - infoPtr->SetupForScreenToScreenCopy = I810SetupForScreenToScreenCopy; - infoPtr->SubsequentScreenToScreenCopy = - I810SubsequentScreenToScreenCopy; - } - - /* 8x8 pattern fills - */ - { - infoPtr->SetupForMono8x8PatternFill = I810SetupForMono8x8PatternFill; - infoPtr->SubsequentMono8x8PatternFillRect = - I810SubsequentMono8x8PatternFillRect; - - infoPtr->Mono8x8PatternFillFlags = (HARDWARE_PATTERN_PROGRAMMED_BITS | - HARDWARE_PATTERN_SCREEN_ORIGIN | - BIT_ORDER_IN_BYTE_MSBFIRST | - NO_PLANEMASK | 0); - } - - /* 8x8 color fills - not considered useful for XAA. - */ - - /* Scanline color expansion - Use the same scheme as the 3.3 driver. - * - */ - if (pI810->Scratch.Size != 0) { - int i; - int width = ALIGN(pScrn->displayWidth, 32) / 8; - int nr_buffers = pI810->Scratch.Size / width; - unsigned char *ptr = pI810->FbBase + pI810->Scratch.Start; - - pI810->NumScanlineColorExpandBuffers = nr_buffers; - pI810->ScanlineColorExpandBuffers = (unsigned char **) - XNFcallocarray(nr_buffers, sizeof(unsigned char *)); - - for (i = 0; i < nr_buffers; i++, ptr += width) - pI810->ScanlineColorExpandBuffers[i] = ptr; - - infoPtr->ScanlineCPUToScreenColorExpandFillFlags = (NO_PLANEMASK | - ROP_NEEDS_SOURCE | - BIT_ORDER_IN_BYTE_MSBFIRST - | 0); - - infoPtr->ScanlineColorExpandBuffers = (unsigned char **) - XNFcallocarray(1, sizeof(unsigned char *)); - infoPtr->NumScanlineColorExpandBuffers = 1; - - infoPtr->ScanlineColorExpandBuffers[0] = - pI810->ScanlineColorExpandBuffers[0]; - pI810->nextColorExpandBuf = 0; - - infoPtr->SetupForScanlineCPUToScreenColorExpandFill = - I810SetupForScanlineCPUToScreenColorExpandFill; - - infoPtr->SubsequentScanlineCPUToScreenColorExpandFill = - I810SubsequentScanlineCPUToScreenColorExpandFill; - - infoPtr->SubsequentColorExpandScanline = - I810SubsequentColorExpandScanline; - } - - /* Possible todo: Image writes w/ non-GXCOPY rop. - */ - - I810SelectBuffer(pScrn, I810_SELECT_FRONT); - - return XAAInit(pScreen, infoPtr); -} diff --git a/src/legacy/i810/meson.build b/src/legacy/i810/meson.build index 8d0f3193..7960666a 100644 --- a/src/legacy/i810/meson.build +++ b/src/legacy/i810/meson.build @@ -15,11 +15,6 @@ i810_deps = [ xorg, ] -if cc.has_header('xaa.h', dependencies : xorg) - config.set('HAVE_XAA_H', 1) - i810_sources += 'i810_xaa.c' -endif - if cc.has_header('dgaproc.h', dependencies : xorg) config.set('HAVE_DGAPROC_H', 1) i810_sources += 'i810_dga.c'