drop obsolete XAA support

Since recent commits require xserver-1.18.0 or later to build against,
there's no reason leaving behind big chunks of code that can only build
against the XAA support removed in xserver-1.13.0 (released in 2012).

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult
2024-05-27 17:30:26 +02:00
committed by Enrico Weigelt
parent 9c4282c396
commit 2960036ed3
10 changed files with 0 additions and 452 deletions

View File

@@ -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

View File

@@ -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,

View File

@@ -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

View File

@@ -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,

View File

@@ -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
}

View File

@@ -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,

View File

@@ -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

View File

@@ -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;

View File

@@ -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 <keith@tungstengraphics.com>
*
*/
#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);
}

View File

@@ -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'