- 0001-gitlab-CI-ensure-libtool-is-installed-in-build-conta.patch

0002-configure-Use-LT_INIT-from-libtool-2-instead-of-depr.patch
  0003-Add-X.Org-s-standard-C-warning-flags-to-AM_CFLAGS.patch
  0004-Quiet-Wredundant-decls-from-xorg-os.h-fallbacks-for-.patch
  0005-Fix-3-Wunused-but-set-variable-warnings.patch
  0006-Fix-4-Wunused-variable-warnings.patch
  0007-voodoo_find_dac-doesn-t-check-device_ids-2.patch
  0008-use-XNFalloc-instead-of-xnfalloc.patch
  0009-use-XNFcallocarray-instead-of-xnfcalloc-macro.patch
  0010-bump-minimal-xorg-version-to-1.18.patch
  0011-drop-compat-with-ancient-xserver-versions.patch
  0012-Drop-ifdefs-for-ABI_VIDEODRV_VERSION-6.patch
  0013-Remove-XAA-support.patch
  0014-drop-dead-code.patch
  0015-drop-remains-of-old-compat-code.patch
  * latest changes to fix build against current xserver

OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xf86-video-voodoo?expand=0&rev=15
This commit is contained in:
Stefan Dirsch 2024-12-11 16:16:03 +00:00 committed by Git OBS Bridge
commit 89f97d561d
22 changed files with 1885 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

View File

@ -0,0 +1,38 @@
From 59113321b1eb9b5d476861a0ff82b08cd534365c Mon Sep 17 00:00:00 2001
From: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Fri, 6 Oct 2023 14:36:33 -0700
Subject: [PATCH 01/15] gitlab CI: ensure libtool is installed in build
container
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
---
.gitlab-ci.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 35a3702..564e281 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -4,7 +4,7 @@
# Please see the ci-templates documentation for details:
# https://freedesktop.pages.freedesktop.org/ci-templates/
-.templates_sha: &template_sha 34f4ade99434043f88e164933f570301fd18b125 # see https://docs.gitlab.com/ee/ci/yaml/#includefile
+.templates_sha: &template_sha 25e8e9f020880aa35fffe3d6b259b933f0f9449f # see https://docs.gitlab.com/ee/ci/yaml/#includefile
include:
@@ -30,8 +30,8 @@ variables:
# The tag should be updated each time the list of packages is updated.
# Changing a tag forces the associated image to be rebuilt.
# Note: the tag has no meaning, we use a date format purely for readability
- FDO_DISTRIBUTION_TAG: '2022-01-30.0'
- FDO_DISTRIBUTION_PACKAGES: 'git gcc pkgconf autoconf automake make xorg-util-macros xorgproto xorg-server-devel pixman libpciaccess'
+ FDO_DISTRIBUTION_TAG: '2023-10-06.0'
+ FDO_DISTRIBUTION_PACKAGES: 'git gcc pkgconf autoconf automake libtool make xorg-util-macros xorgproto xorg-server-devel pixman libpciaccess'
#
--
2.43.0

View File

@ -0,0 +1,38 @@
From f1434139a366539ef632ad1aec4764a8c89f2f99 Mon Sep 17 00:00:00 2001
From: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Mon, 15 Jan 2024 11:33:07 -0800
Subject: [PATCH 02/15] configure: Use LT_INIT from libtool 2 instead of
deprecated AC_PROG_LIBTOOL
AC_PROG_LIBTOOL was replaced by LT_INIT in libtool 2 in 2008,
so it's time to rely on it.
Clears autoconf warnings:
configure.ac:44: warning: The macro 'AC_PROG_LIBTOOL' is obsolete.
configure.ac:44: You should run autoupdate.
aclocal.m4:3515: AC_PROG_LIBTOOL is expanded from...
configure.ac:44: the top level
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
---
configure.ac | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index bd48b58..b7a711b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -40,8 +40,7 @@ XORG_MACROS_VERSION(1.8)
XORG_DEFAULT_OPTIONS
# Initialize libtool
-AC_DISABLE_STATIC
-AC_PROG_LIBTOOL
+LT_INIT([disable-static])
AH_TOP([#include "xorg-server.h"])
--
2.43.0

View File

@ -0,0 +1,26 @@
From 2495db60d9c163941e1ae4b89982ecb8ce4e954a Mon Sep 17 00:00:00 2001
From: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Mon, 15 Jan 2024 11:38:33 -0800
Subject: [PATCH 03/15] Add X.Org's standard C warning flags to AM_CFLAGS
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
---
src/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Makefile.am b/src/Makefile.am
index c145c27..7a6d4d9 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -23,7 +23,7 @@
# -avoid-version prevents gratuitous .0.0.0 version numbers on the end
# _ladir passes a dummy rpath to libtool so the thing will actually link
# TODO: -nostdlib/-Bstatic/-lgcc platform magic, not installing the .a, etc.
-AM_CFLAGS = @XORG_CFLAGS@
+AM_CFLAGS = $(BASE_CFLAGS) $(XORG_CFLAGS)
voodoo_drv_la_LTLIBRARIES = voodoo_drv.la
voodoo_drv_la_LDFLAGS = -module -avoid-version
voodoo_drv_ladir = @moduledir@/drivers
--
2.43.0

View File

@ -0,0 +1,35 @@
From cfe1fcb4eefba66243ecf1336e38f4e77a491cff Mon Sep 17 00:00:00 2001
From: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Mon, 15 Jan 2024 11:44:21 -0800
Subject: [PATCH 04/15] Quiet -Wredundant-decls from xorg/os.h fallbacks for
new libc functions
The Xorg headers provide their own versions of strlcat, strlcpy, and
timingsafe_memcmp for platforms that don't have them in libc yet, but
rely on configure to set HAVE_* defines to determine if they should be
defined in the headers.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
---
configure.ac | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index b7a711b..fe407d7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -63,7 +63,10 @@ PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
HAVE_XEXTPROTO_71="no")
AM_CONDITIONAL(HAVE_XEXTPROTO_71, [ test "$HAVE_XEXTPROTO_71" = "yes" ])
-# Checks for libraries.
+# Checks for library functions
+# We don't use strlcat, strlcpy, or timingsafe_memcmp, but check to quiet
+# -Wredundant-decls warning from xorg/os.h which will otherwise redefine them.
+AC_CHECK_FUNCS([strlcat strlcpy timingsafe_memcmp])
SAVE_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $XORG_CFLAGS"
--
2.43.0

View File

@ -0,0 +1,59 @@
From ead68c88de422c82004715403776ec0d21c6d6aa Mon Sep 17 00:00:00 2001
From: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Tue, 16 Jan 2024 16:27:27 -0800
Subject: [PATCH 05/15] Fix 3 -Wunused-but-set-variable warnings
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
---
src/voodoo_dga.c | 5 -----
src/voodoo_driver.c | 4 ----
2 files changed, 9 deletions(-)
diff --git a/src/voodoo_dga.c b/src/voodoo_dga.c
index c30c5c2..76da169 100644
--- a/src/voodoo_dga.c
+++ b/src/voodoo_dga.c
@@ -91,18 +91,13 @@ static Bool VoodooDGASetMode(ScrnInfoPtr pScrn, DGAModePtr pDGAMode)
{
DisplayModePtr pMode;
int scrnIdx = pScrn->pScreen->myNum;
- int frameX0, frameY0;
if (pDGAMode) {
pMode = pDGAMode->mode;
- frameX0 = frameY0 = 0;
}
else {
if (!(pMode = pScrn->currentMode))
return TRUE;
-
- frameX0 = pScrn->frameX0;
- frameY0 = pScrn->frameY0;
}
if (!(*pScrn->SwitchMode)(SWITCH_MODE_ARGS(pScrn, pMode)))
diff --git a/src/voodoo_driver.c b/src/voodoo_driver.c
index 11bf2cf..456152f 100644
--- a/src/voodoo_driver.c
+++ b/src/voodoo_driver.c
@@ -834,7 +834,6 @@ static Bool
VoodooModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
{
VoodooPtr pVoo;
- int width, height;
pVoo = VoodooPTR(pScrn);
@@ -860,9 +859,6 @@ VoodooModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
return FALSE;
}
- width = mode->HDisplay;
- height = mode->VDisplay;
-
/* Initialize the video card */
if(VoodooMode(pScrn, mode))
{
--
2.43.0

View File

@ -0,0 +1,56 @@
From a2b65b4bca30a9805e4757e5e05860aa00d56483 Mon Sep 17 00:00:00 2001
From: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Tue, 16 Jan 2024 16:30:18 -0800
Subject: [PATCH 06/15] Fix 4 -Wunused-variable warnings
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
---
src/voodoo_dga.c | 1 -
src/voodoo_hardware.c | 4 +++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/voodoo_dga.c b/src/voodoo_dga.c
index 76da169..a13c9e7 100644
--- a/src/voodoo_dga.c
+++ b/src/voodoo_dga.c
@@ -90,7 +90,6 @@ static Bool VoodooDGAOpenFramebuffer(ScrnInfoPtr pScrn, char **DeviceName,
static Bool VoodooDGASetMode(ScrnInfoPtr pScrn, DGAModePtr pDGAMode)
{
DisplayModePtr pMode;
- int scrnIdx = pScrn->pScreen->myNum;
if (pDGAMode) {
pMode = pDGAMode->mode;
diff --git a/src/voodoo_hardware.c b/src/voodoo_hardware.c
index c360263..8dcfb63 100644
--- a/src/voodoo_hardware.c
+++ b/src/voodoo_hardware.c
@@ -84,8 +84,8 @@ static Bool VoodooSetupForCPUToScreenTexture(ScrnInfoPtr pScrn, int op,
static void VoodooSubsequentCPUToScreenTexture(ScrnInfoPtr pScrn,
int dstx, int dsty, int srcx, int srcy, int width, int height);
-#endif
static int debug = 0;
+#endif
/*
* Big endian might need to byteswap these ?
@@ -866,6 +866,7 @@ static void VoodooReadWriteBank(ScreenPtr pScreen, int bank)
}
#endif
+#ifdef HAVE_XAA_H
/*
* We normally want to load all four rop variants at once so
* the table is the 16bits for the lot equal.
@@ -912,6 +913,7 @@ static CARD16 tropxlate[16] = {
0xAA77, /* GXnand */
0xAAFF /* GXset */
};
+#endif
void VoodooSync(ScrnInfoPtr pScrn)
--
2.43.0

View File

@ -0,0 +1,31 @@
From 3065954a83c966901baecf686619e6679833632f Mon Sep 17 00:00:00 2001
From: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Tue, 16 Jan 2024 16:38:58 -0800
Subject: [PATCH 07/15] voodoo_find_dac doesn't check device_ids (#2)
Closes: #2
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
---
src/voodoo_hardware.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/voodoo_hardware.c b/src/voodoo_hardware.c
index 8dcfb63..d1463e7 100644
--- a/src/voodoo_hardware.c
+++ b/src/voodoo_hardware.c
@@ -389,10 +389,10 @@ static int voodoo_find_dac(VoodooPtr pVoo)
device_id = dac_in(pVoo, 2);
/* AT&T 20C409 and clones */
- if(vendor_id == DAC_VENDOR_ATT && DAC_DEVICE_ATT20C409)
+ if(vendor_id == DAC_VENDOR_ATT && device_id == DAC_DEVICE_ATT20C409)
return DAC_ID_ATT;
- if(vendor_id == DAC_VENDOR_TI && DAC_DEVICE_TITVP3409)
+ if(vendor_id == DAC_VENDOR_TI && device_id == DAC_DEVICE_TITVP3409)
return DAC_ID_TI;
/* ICS5432 doesn't implement the back door. Glide does some
--
2.43.0

View File

@ -0,0 +1,30 @@
From 7f0ef65c8b7735152689085deb7556e03ab63a10 Mon Sep 17 00:00:00 2001
From: "Enrico Weigelt, metux IT consult" <info@metux.net>
Date: Wed, 8 May 2024 13:20:10 +0200
Subject: [PATCH 08/15] use XNFalloc() instead of xnfalloc
xnfalloc is just an alias for XNFalloc() that doesn't seem to serve
any practical purpose, so it can go away once all drivers stopped using it.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-voodoo/-/merge_requests/6>
---
src/voodoo_driver.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/voodoo_driver.c b/src/voodoo_driver.c
index 456152f..377da32 100644
--- a/src/voodoo_driver.c
+++ b/src/voodoo_driver.c
@@ -627,7 +627,7 @@ VoodooScreenInit(SCREEN_INIT_ARGS_DECL)
if(pVoo->ShadowFB)
{
pVoo->ShadowPitch = ((pScrn->virtualX * pScrn->bitsPerPixel >> 3) + 3) & ~3L;
- pVoo->ShadowPtr = xnfalloc(pVoo->ShadowPitch * pScrn->virtualY);
+ pVoo->ShadowPtr = XNFalloc(pVoo->ShadowPitch * pScrn->virtualY);
FBStart = pVoo->ShadowPtr;
displayWidth = pScrn->virtualX;
}
--
2.43.0

View File

@ -0,0 +1,39 @@
From 2da59302a2fe1a16225af4e7da9ef5b00727a663 Mon Sep 17 00:00:00 2001
From: "Enrico Weigelt, metux IT consult" <info@metux.net>
Date: Wed, 8 May 2024 17:27:13 +0200
Subject: [PATCH 09/15] use XNFcallocarray() instead of xnfcalloc macro
xnfcalloc is just an alias for XNFcallocarray() that doesn't seem to serve
any practical purpose, so it can go away once all drivers stopped using it.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-voodoo/-/merge_requests/6>
---
src/voodoo_driver.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/voodoo_driver.c b/src/voodoo_driver.c
index 377da32..559fdc8 100644
--- a/src/voodoo_driver.c
+++ b/src/voodoo_driver.c
@@ -182,7 +182,7 @@ VoodooGetRec(ScrnInfoPtr pScrn)
if (pScrn->driverPrivate != NULL)
return TRUE;
- pScrn->driverPrivate = xnfcalloc(sizeof(VoodooRec), 1);
+ pScrn->driverPrivate = XNFcallocarray(sizeof(VoodooRec), 1);
/* Initialize it */
/* No init here yet */
@@ -480,7 +480,7 @@ VoodooPreInit(ScrnInfoPtr pScrn, int flags)
/* Set up clock ranges so that the xf86ValidateModes() function will not fail a mode because of the clock
requirement (because we don't use the clock value anyway) */
- clockRanges = xnfcalloc(sizeof(ClockRange), 1);
+ clockRanges = XNFcallocarray(sizeof(ClockRange), 1);
clockRanges->next = NULL;
clockRanges->minClock = 10000;
clockRanges->maxClock = 250000; /* 250MHz DAC */
--
2.43.0

View File

@ -0,0 +1,30 @@
From 12b735fe2cd084f9c135792f55e7cfc8c1bc5339 Mon Sep 17 00:00:00 2001
From: "Enrico Weigelt, metux IT consult" <info@metux.net>
Date: Tue, 14 May 2024 16:30:38 +0200
Subject: [PATCH 10/15] bump minimal xorg version to 1.18
1.18 was released a decade ago, so it seems reasonable stop supporting
older ones.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-voodoo/-/merge_requests/7>
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index fe407d7..c1e826f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -57,7 +57,7 @@ XORG_DRIVER_CHECK_EXT(RENDER, renderproto)
XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
# Obtain compiler/linker options for the driver dependencies
-PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.99.901 xproto fontsproto xf86dgaproto $REQUIRED_MODULES])
+PKG_CHECK_MODULES(XORG, [xorg-server >= 1.18 xproto fontsproto xf86dgaproto $REQUIRED_MODULES])
PKG_CHECK_MODULES(XEXT, [xextproto >= 7.0.99.1],
HAVE_XEXTPROTO_71="yes"; AC_DEFINE(HAVE_XEXTPROTO_71, 1, [xextproto 7.1 available]),
HAVE_XEXTPROTO_71="no")
--
2.43.0

View File

@ -0,0 +1,72 @@
From deeaf931fe2451cd2589959368bea5c4c1bb503e Mon Sep 17 00:00:00 2001
From: "Enrico Weigelt, metux IT consult" <info@metux.net>
Date: Tue, 14 May 2024 16:31:01 +0200
Subject: [PATCH 11/15] drop compat with ancient xserver versions
We're relying on at least 1.18 now.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-voodoo/-/merge_requests/7>
---
src/compat-api.h | 41 -----------------------------------------
1 file changed, 41 deletions(-)
diff --git a/src/compat-api.h b/src/compat-api.h
index 6bc946f..2376b25 100644
--- a/src/compat-api.h
+++ b/src/compat-api.h
@@ -28,45 +28,6 @@
#ifndef COMPAT_API_H
#define COMPAT_API_H
-#ifndef GLYPH_HAS_GLYPH_PICTURE_ACCESSOR
-#define GetGlyphPicture(g, s) GlyphPicture((g))[(s)->myNum]
-#define SetGlyphPicture(g, s, p) GlyphPicture((g))[(s)->myNum] = p
-#endif
-
-#ifndef XF86_HAS_SCRN_CONV
-#define xf86ScreenToScrn(s) xf86Screens[(s)->myNum]
-#define xf86ScrnToScreen(s) screenInfo.screens[(s)->scrnIndex]
-#endif
-
-#ifndef XF86_SCRN_INTERFACE
-
-#define SCRN_ARG_TYPE int
-#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = xf86Screens[(arg1)]
-
-#define SCREEN_ARG_TYPE int
-#define SCREEN_PTR(arg1) ScreenPtr pScreen = screenInfo.screens[(arg1)]
-
-#define SCREEN_INIT_ARGS_DECL int i, ScreenPtr pScreen, int argc, char **argv
-
-#define BLOCKHANDLER_ARGS_DECL int arg, pointer blockData, pointer pTimeout, pointer pReadmask
-#define BLOCKHANDLER_ARGS arg, blockData, pTimeout, pReadmask
-
-#define CLOSE_SCREEN_ARGS_DECL int scrnIndex, ScreenPtr pScreen
-#define CLOSE_SCREEN_ARGS scrnIndex, pScreen
-
-#define ADJUST_FRAME_ARGS_DECL int arg, int x, int y, int flags
-#define ADJUST_FRAME_ARGS(arg, x, y) (arg)->scrnIndex, x, y, 0
-
-#define SWITCH_MODE_ARGS_DECL int arg, DisplayModePtr mode, int flags
-#define SWITCH_MODE_ARGS(arg, m) (arg)->scrnIndex, m, 0
-
-#define FREE_SCREEN_ARGS_DECL int arg, int flags
-
-#define VT_FUNC_ARGS_DECL int arg, int flags
-#define VT_FUNC_ARGS pScrn->scrnIndex, 0
-
-#define XF86_SCRN_ARG(x) ((x)->scrnIndex)
-#else
#define SCRN_ARG_TYPE ScrnInfoPtr
#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = (arg1)
@@ -95,5 +56,3 @@
#define XF86_SCRN_ARG(x) (x)
#endif
-
-#endif
--
2.43.0

View File

@ -0,0 +1,31 @@
From 014923aa853a50f9afe07d900f6bc6f006f78e91 Mon Sep 17 00:00:00 2001
From: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Wed, 22 May 2024 18:51:20 -0700
Subject: [PATCH 12/15] Drop ifdefs for ABI_VIDEODRV_VERSION < 6
ABI_VIDEODRV_VERSION 6 shipped in Xserver 1.7, less than our new minimum
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-voodoo/-/merge_requests/8>
---
src/voodoo_driver.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/src/voodoo_driver.c b/src/voodoo_driver.c
index 559fdc8..01c2710 100644
--- a/src/voodoo_driver.c
+++ b/src/voodoo_driver.c
@@ -53,10 +53,6 @@
#include "xf86Pci.h"
#include "xf86cmap.h"
#include "shadowfb.h"
-#if GET_ABI_MAJOR(ABI_VIDEODRV_VERSION) < 6
-#include "xf86RAC.h"
-#include "xf86Resources.h"
-#endif
#include "compiler.h"
#ifdef HAVE_XAA_H
#include "xaa.h"
--
2.43.0

View File

@ -0,0 +1,818 @@
From 38537b4dffdcba1dfde99f3e7106a5c23c9859b3 Mon Sep 17 00:00:00 2001
From: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Wed, 22 May 2024 19:02:40 -0700
Subject: [PATCH 13/15] Remove XAA support
Mostly done via unifdef -UHAVE_XAA_H, followed by minor manual editing
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: Alan Coopersmith <alan.coopersmith@oracle.com>
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-voodoo/-/merge_requests/8>
---
configure.ac | 18 --
src/voodoo.h | 10 -
src/voodoo_dga.c | 3 -
src/voodoo_driver.c | 19 +-
src/voodoo_hardware.c | 629 ------------------------------------------
5 files changed, 4 insertions(+), 675 deletions(-)
diff --git a/configure.ac b/configure.ac
index c1e826f..827d293 100644
--- a/configure.ac
+++ b/configure.ac
@@ -84,24 +84,6 @@ 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=voodoo
diff --git a/src/voodoo.h b/src/voodoo.h
index 846ce66..772b3b6 100644
--- a/src/voodoo.h
+++ b/src/voodoo.h
@@ -13,9 +13,6 @@ typedef struct {
CARD8 * ShadowPtr; /* Shadow buffer */
CARD32 ShadowPitch;
CloseScreenProcPtr CloseScreen; /* Wrapped Close */
-#ifdef HAVE_XAA_H
- XAAInfoRecPtr AccelInfoRec; /* Cached Accel rec for close */
-#endif
Bool Blanked;
Bool PassThrough; /* Set to restore pass through on exit */
EntityInfoPtr pEnt;
@@ -33,9 +30,6 @@ typedef struct {
CARD32 FullHeight; /* Height including pixmap cache */
CARD32 Tiles; /* 32 tile count */
- int BlitDirX; /* Cache blitter direction */
- int BlitDirY; /* Cache blitter direction */
-
CARD32 lfbMode; /* Cached lfbMode value */
CARD32 alpha; /* Cached alpha reg for sw blit */
@@ -71,9 +65,6 @@ typedef struct {
PLLClock vClock;
PLLClock gClock;
-
- unsigned char LineBuffer[1028]; /* Draw buffer */
- unsigned char *LinePtr; /* To keep XAA amused */
} VoodooRec, *VoodooPtr;
#define TRUE 1
@@ -105,7 +96,6 @@ extern int VoodooHardwareInit(VoodooPtr pVoo);
extern int VoodooMode(ScrnInfoPtr pScrn, DisplayModePtr mode);
extern void VoodooBlank(VoodooPtr pVoo);
extern int VoodooMemorySize(VoodooPtr pVoo);
-extern void Voodoo2XAAInit(ScreenPtr pScreen);
extern void VoodooSync(ScrnInfoPtr pScrn);
extern void VoodooReadBank(ScreenPtr pScreen, int bank);
extern void VoodooWriteBank(ScreenPtr pScreen, int bank);
diff --git a/src/voodoo_dga.c b/src/voodoo_dga.c
index a13c9e7..b0865dc 100644
--- a/src/voodoo_dga.c
+++ b/src/voodoo_dga.c
@@ -47,9 +47,6 @@
#include "vgaHW.h"
#include "compiler.h"
#include "dgaproc.h"
-#ifdef HAVE_XAA_H
-#include "xaa.h"
-#endif
#include "voodoo.h"
#define _XF86DGA_SERVER_
diff --git a/src/voodoo_driver.c b/src/voodoo_driver.c
index 01c2710..88de297 100644
--- a/src/voodoo_driver.c
+++ b/src/voodoo_driver.c
@@ -54,9 +54,6 @@
#include "xf86cmap.h"
#include "shadowfb.h"
#include "compiler.h"
-#ifdef HAVE_XAA_H
-#include "xaa.h"
-#endif
#include "voodoo.h"
#define _XF86DGA_SERVER_
@@ -555,11 +552,10 @@ VoodooPreInit(ScrnInfoPtr pScrn, int flags)
return FALSE;
}
- if (!xf86LoadSubModule(pScrn, "xaa")) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Falling back to shadowfb\n");
- pVoo->Accel = 0;
- pVoo->ShadowFB = 1;
- }
+ /* No acceleration support since XAA was removed */
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Falling back to shadowfb\n");
+ pVoo->Accel = 0;
+ pVoo->ShadowFB = 1;
if(pVoo->ShadowFB)
{
@@ -672,9 +668,6 @@ VoodooScreenInit(SCREEN_INIT_ARGS_DECL)
VoodooDGAInit(pScrn, pScreen);
/* Activate accelerations */
- if(pVoo->Accel)
- Voodoo2XAAInit(pScreen);
-
xf86SetBackingStore(pScreen);
@@ -764,10 +757,6 @@ VoodooCloseScreen(CLOSE_SCREEN_ARGS_DECL)
VoodooRestore(pScrn, TRUE);
if(pVoo->ShadowPtr)
free(pVoo->ShadowPtr);
-#ifdef HAVE_XAA_H
- if(pVoo->AccelInfoRec)
- free(pVoo->AccelInfoRec);
-#endif
if (pVoo->pDGAMode) {
free(pVoo->pDGAMode);
pVoo->pDGAMode = NULL;
diff --git a/src/voodoo_hardware.c b/src/voodoo_hardware.c
index d1463e7..be33dd8 100644
--- a/src/voodoo_hardware.c
+++ b/src/voodoo_hardware.c
@@ -48,10 +48,6 @@
#include "vgaHW.h"
#include "compiler.h"
-#ifdef HAVE_XAA_H
-#include "xaa.h"
-#endif
-
#include "voodoo.h"
#include <X11/extensions/xf86dgaproto.h>
@@ -69,23 +65,6 @@
#include <unistd.h>
-#ifdef HAVE_XAA_H
-#if 0
-static void VoodooReadWriteBank(ScreenPtr pScreen, int bank);
-#endif
-static Bool VoodooSetupForCPUToScreenAlphaTexture(ScrnInfoPtr pScrn, int op,
- CARD16 red, CARD16 green, CARD16 blue, CARD16 alpha, int alphaType,
- CARD8 *alphaPtr, int alphaPitch, int width, int height, int flags);
-static void VoodooSubsequentCPUToScreenAlphaTexture(ScrnInfoPtr pScrn,
- int dstx, int dsty, int srcx, int srcy, int width, int height);
-static Bool VoodooSetupForCPUToScreenTexture(ScrnInfoPtr pScrn, int op,
- int texType, CARD8 *texPtr, int texPitch, int width, int height,
- int flags);
-static void VoodooSubsequentCPUToScreenTexture(ScrnInfoPtr pScrn,
- int dstx, int dsty, int srcx, int srcy, int width, int height);
-
-static int debug = 0;
-#endif
/*
* Big endian might need to byteswap these ?
@@ -865,56 +844,6 @@ static void VoodooReadWriteBank(ScreenPtr pScreen, int bank)
mmio32_w(pVoo, 0x114, pVoo->lfbMode);
}
#endif
-
-#ifdef HAVE_XAA_H
-/*
- * We normally want to load all four rop variants at once so
- * the table is the 16bits for the lot equal.
- */
-
-static CARD16 ropxlate[16] = {
- 0x0000, /* GXclear */
- 0x8888, /* GXand */
- 0x4444, /* GXandReverse */
- 0xCCCC, /* GXcopy */
- 0x2222, /* GXandInverted */
- 0xAAAA, /* GXnop */
- 0x6666, /* GXxor */
- 0xEEEE, /* GXor */
- 0x1111, /* GXnor */
- 0x9999, /* GXequiv */
- 0x5555, /* GXinvert */
- 0xDDDD, /* GXorReverse */
- 0x3333, /* GXcopyInverted */
- 0xBBBB, /* GXorInverted */
- 0x7777, /* GXnand */
- 0xFFFF /* GXset */
-};
-
-/*
- * Transparent mask rops
- */
-
-static CARD16 tropxlate[16] = {
- 0xAA00, /* GXclear */
- 0xAA88, /* GXand */
- 0xAA44, /* GXandReverse */
- 0xAACC, /* GXcopy */
- 0xAA22, /* GXandInverted */
- 0xAAAA, /* GXnop */
- 0xAA66, /* GXxor */
- 0xAAEE, /* GXor */
- 0xAA11, /* GXnor */
- 0xAA99, /* GXequiv */
- 0xAA55, /* GXinvert */
- 0xAADD, /* GXorReverse */
- 0xAA33, /* GXcopyInverted */
- 0xAABB, /* GXorInverted */
- 0xAA77, /* GXnand */
- 0xAAFF /* GXset */
-};
-#endif
-
void VoodooSync(ScrnInfoPtr pScrn)
{
@@ -923,561 +852,3 @@ void VoodooSync(ScrnInfoPtr pScrn)
wait_idle(pVoo);
mmio32_w(pVoo, 0x10C, 0); /* Maybe flag this */
}
-
-#ifdef HAVE_XAA_H
-static void Voodoo2Setup2D(VoodooPtr pVoo)
-{
- wait_idle(pVoo);
-}
-
-static void Voodoo2SetupForScreenToScreenCopy(ScrnInfoPtr pScrn,
- int xdir, int ydir, int rop,
- unsigned int planemask,
- int trans_color)
-{
- VoodooPtr pVoo = VoodooPTR(pScrn);
- Voodoo2Setup2D(pVoo);
- pVoo->BlitDirX = xdir;
- pVoo->BlitDirY = ydir;
-
- if(trans_color == -1)
- {
- mmio32_w_chuck(pVoo, 0x2EC, ropxlate[rop]); /* Set the rop */
- mmio32_w_chuck(pVoo, 0x2F8, 0 | (1<<14) | (1<<15) | (1<<16)); /* 16bpp no color compare */
- }
- else
- {
- mmio32_w_chuck(pVoo, 0x2EC, tropxlate[rop]); /* Transparent src rop */
- mmio32_w_chuck(pVoo, 0x2CC, (trans_color << 16) | trans_color); /* Match transparent colour */
- mmio32_w_chuck(pVoo, 0x2F8, 0 | (1<<10) | (1<<14) | (1<<15) | (1<<16)); /* 16bpp color compare */
- }
-}
-
-static void Voodoo2SubsequentScreenToScreenCopy(ScrnInfoPtr pScrn,
- int x1, int y1,
- int x2, int y2,
- int width, int height)
-{
- VoodooPtr pVoo = VoodooPTR(pScrn);
- wait_idle(pVoo);
- /* Adjust coordinates for backward blits */
- height --; /* Adjust for fenceposting in the hardware */
- width --;
- if(pVoo->BlitDirY < 0)
- {
- y1 += height;
- y2 += height;
- height = -height;
- }
- if(pVoo->BlitDirY < 0)
- {
- x1 += width;
- x2 += width;
- width = -width;
- }
- mmio32_w_chuck(pVoo, 0x2E0, (y1 << 16) | x1); /* Src x/y */
- mmio32_w_chuck(pVoo, 0x2E4, (y2 << 16) | x2); /* Dst x/y */
- /* Set size and fire */
- height &= 0xFFF;
- width &= 0xFFF;
- mmio32_w_chuck(pVoo, 0x2E8, (height << 16) | width | (1<<31));
-}
-
-static void Voodoo2SetupForSolidFill(ScrnInfoPtr pScrn, int color,
- int rop, unsigned int planemask)
-{
- VoodooPtr pVoo = VoodooPTR(pScrn);
- if (debug)
- ErrorF("Setup for solid fill colour %04X, rop %d, Mask %04X.\n",
- color, rop, planemask);
- Voodoo2Setup2D(pVoo);
- mmio32_w_chuck(pVoo, 0x2EC, ropxlate[rop]); /* rop */
- mmio32_w_chuck(pVoo, 0x2F0, color); /* fg color */
- mmio32_w_chuck(pVoo, 0x2F8, 2 | (1<<14) | (1<<15) | (0/*1*/<<16)); /* Solid fill 16bpp front */
-}
-
-static void Voodoo2SubsequentSolidFillRect(ScrnInfoPtr pScrn, int x, int y,
- int w, int h)
-{
- VoodooPtr pVoo = VoodooPTR(pScrn);
- if (debug)
- ErrorF("Fill (%d, %d) for (%d, %d)\n", x, y, w, h);
- wait_idle(pVoo);
- mmio32_w_chuck(pVoo, 0x2E4, (y<<16) | x); /* Dst x,y */
- /* Set size and fire */
- mmio32_w_chuck(pVoo, 0x2E8, ((h-1) << 16) | (w-1) | (1<<31));
-}
-
-
-/*
- * Colour expand fills are standard hardware goodies
- */
-
-static void Voodoo2SetupForScanlineCPUToScreenColorExpandFill(ScrnInfoPtr pScrn,
- int fg, int bg,
- int rop,
- unsigned int planemask)
-{
- VoodooPtr pVoo = VoodooPTR(pScrn);
- Voodoo2Setup2D(pVoo);
- mmio32_w_chuck(pVoo, 0x2EC, ropxlate[rop]); /* Pattern op */
- mmio32_w_chuck(pVoo, 0x2F0, fg | (bg << 16)); /* colors */
- if(bg != -1) /* Set transparent if needed */
- mmio32_w_chuck(pVoo, 0x2F8, 1 | (1<<14) | (1<<15) | (1<<16));
- else
- mmio32_w_chuck(pVoo, 0x2F8, 1 | (1<<14) | (1<<15) | (1<<16) | (1<<17));
-}
-
-static void Voodoo2SubsequentScanlineCPUToScreenColorExpandFill(ScrnInfoPtr pScrn,
- int x, int y, int w, int h,
- int skipleft)
-{
- VoodooPtr pVoo = VoodooPTR(pScrn);
- wait_idle(pVoo);
- mmio32_w_chuck(pVoo, 0x2E4, x | (y<<16)); /* destination */
- mmio32_w_chuck(pVoo, 0x2E8, (w-1) | ((h-1)<<16) | (1<<31)); /* fire */
- pVoo->texW = w;
-}
-
-static void Voodoo2SubsequentColorExpandScanline(ScrnInfoPtr pScrn, int bufno)
-{
- VoodooPtr pVoo = VoodooPTR(pScrn);
- CARD32 *data = (CARD32 *)pVoo->LineBuffer;
- int w = pVoo->texW;
- int i;
-
- wait_idle(pVoo);
- for(i = 0; i < w; i += 32) /* Each dword is 32 pixels mask */
- mmio32_w(pVoo, 0x2FC, *data++);
-}
-
-static void Voodoo2SetupForMono8x8PatternFill(ScrnInfoPtr pScrn, int patx, int paty,
- int fg, int bg, int rop, unsigned int planemask)
-{
- VoodooPtr pVoo = VoodooPTR(pScrn);
- Voodoo2Setup2D(pVoo);
- mmio32_w_chuck(pVoo, 0x2EC, ropxlate[rop]);
- mmio32_w_chuck(pVoo, 0x2F0, fg | (bg << 16));
- if(bg != -1)
- mmio32_w_chuck(pVoo, 0x2F8, 1 | (1<<14) | (1<<15) | (1<<16));
- else
- mmio32_w_chuck(pVoo, 0x2F8, 1 | (1<<14) | (1<<15) | (1<<16) | (1<<17));
-}
-
-/*
- * We don't have pattern fill hardware but for any operation that
- * references dst it is going to be faster to use the hardware
- * and simply upload the pattern a lot as we avoid reading
- * video memory. GXcopy ought to be the same either way.
- */
-
-static __inline__ CARD32 spread(CARD32 v)
-{
- return v * 16843009;
-}
-
-static void Voodoo2SubsequentMono8x8PatternFillRect(ScrnInfoPtr pScrn, int patx, int paty,
- int x, int y, int w, int h)
-{
- int ln = 0;
- CARD32 l[8];
- VoodooPtr pVoo = VoodooPTR(pScrn);
-
- wait_idle(pVoo);
-
- if( w <3)
- return;
-
- mmio32_w_chuck(pVoo, 0x2E4, x | (y<<16));
- mmio32_w_chuck(pVoo, 0x2E8, (w - 1) | ((h - 1)<<16) | (1<<31));
-
- /* Turn the pattern into 32x8 for the expansion engine */
- l[0] = spread((patx >> 24) & 0xFF);
- l[1] = spread((patx >> 16) & 0xFF);
- l[2] = spread((patx >> 8) & 0xFF);
- l[3] = spread(patx & 0xFF);
-
- l[4] = spread((paty >> 24) & 0xFF);
- l[5] = spread((paty >> 16) & 0xFF);
- l[6] = spread((paty >> 8) & 0xFF);
- l[7] = spread(paty & 0xFF);
-
- while(h > 0)
- {
- int i;
- for(i = 0; i < w; i += 32) /* DWORD pad */
- mmio32_w_chuck(pVoo, 0x2FC, l[ln]);
- wait_idle(pVoo);
- ln = (ln + 1) & 7;
- h--;
- }
-}
-
-/*
- * The XAA layer uses video memory as the basis for colour pattern
- * fill, so we can't usefully perform it.
- */
-
-static void Voodoo2SetupForSolidLine(ScrnInfoPtr pScrn, int color, int rop,
- unsigned int planemask)
-{
- VoodooPtr pVoo = VoodooPTR(pScrn);
- Voodoo2Setup2D(pVoo);
- mmio32_w_chuck(pVoo, 0x2CC, color);
- mmio32_w_chuck(pVoo, 0x2EC, ropxlate[rop]);
- mmio32_w_chuck(pVoo, 0x2F8, 2 | (1<<14) | (1<<15) | (1<<16)); /* Solid fill 16 bpp front */
-}
-
-static void Voodoo2SubsequentSolidHorVertLine(ScrnInfoPtr pScrn, int x, int y, int len, int dir)
-{
- VoodooPtr pVoo = VoodooPTR(pScrn);
- wait_idle(pVoo);
- mmio32_w_chuck(pVoo, 0x2E4, (y<<16) | x); /* Dst x,y */
- if(dir == DEGREES_0)
- mmio32_w_chuck(pVoo, 0x2E8, (len - 1) | (1<<31));
- else
- mmio32_w_chuck(pVoo, 0x2E8, ((len - 1) << 16) | (1<<31));
-}
-
-static void Voodoo2SetupForScanlineImageWrite(ScrnInfoPtr pScrn, int rop,
- unsigned int planemask, int trans_color,
- int bpp, int depth)
-{
- VoodooPtr pVoo = VoodooPTR(pScrn);
- Voodoo2Setup2D(pVoo);
- if(trans_color != -1)
- {
- mmio32_w_chuck(pVoo, 0x2CC, (trans_color << 16) | trans_color);
- mmio32_w_chuck(pVoo, 0x2EC, tropxlate[rop]);
- mmio32_w_chuck(pVoo, 0x2F8, 1 | (2<<3) | (1<<10) | (1<<14) | (1<<15) | (1<<16));
- }
- else
- {
- mmio32_w_chuck(pVoo, 0x2EC, ropxlate[rop]);
- mmio32_w_chuck(pVoo, 0x2F8, 1 | (2<<3) | (1<<14) | (1<<15) | (1<<16));
- }
- if(debug)
- ErrorF("Setup for image write rop %d col %d bpp %d depth %d\n",
- rop, trans_color, bpp, depth);
-}
-
-static void Voodoo2SubsequentImageWriteRect(ScrnInfoPtr pScrn,
- int x, int y,
- int w, int h,
- int skipleft)
-{
- VoodooPtr pVoo = VoodooPTR(pScrn);
- wait_idle(pVoo);
- mmio32_w_chuck(pVoo, 0x2E4, x | (y<<16));
- mmio32_w_chuck(pVoo, 0x2E8, (w - 1) | ((h - 1)<<16) | (1<<31));
- if(debug)
- ErrorF("Image Write (%d,%d) [%d,%d]\n", x,y,w,h);
- pVoo->texW = w;
-}
-
-static void Voodoo2SubsequentImageWriteScanline(ScrnInfoPtr pScrn, int bufno)
-{
- VoodooPtr pVoo = VoodooPTR(pScrn);
- CARD32 *data = (CARD32 *)pVoo->LineBuffer;
- int w = pVoo->texW;
- int i;
-
- wait_idle(pVoo);
- for(i = 0; i < w; i += 2)
- mmio32_w(pVoo, 0x2FC, *data++);
-}
-
-static void Voodoo2SetClippingRectangle(ScrnInfoPtr pScrn,
- int left, int top, int right, int bottom)
-{
- VoodooPtr pVoo = VoodooPTR(pScrn);
- if(debug)
- ErrorF("Clip to (%d,%d)-(%d,%d)\n", left,top,right,bottom);
- mmio32_w_chuck(pVoo, 0x2D4, (left << 16) | right);
- mmio32_w_chuck(pVoo, 0x2D8, (top << 16 ) | bottom);
-}
-
-static void Voodoo2DisableClipping(ScrnInfoPtr pScrn)
-{
- VoodooPtr pVoo = VoodooPTR(pScrn);
- /* FIXME: pVoo->FullHeight for the cache ! */
- if(debug)
- ErrorF("Clip to (0,0)-(%d,%d)\n", (int)pVoo->Width, (int)pVoo->Height);
- mmio32_w_chuck(pVoo, 0x2D4, pVoo->Width);
- mmio32_w_chuck(pVoo, 0x2D8, pVoo->FullHeight);
-}
-
-/*
- * TODO: Implement 2D line acceleration using the 3D engines
- */
-
-#ifdef RENDER
-
-/*
- * Render acceleration. All Voodoo chips support cpu driver alpha
- * composite to the frame buffer. This is presumably meant for software
- * fallbacks on rendering 3D but happens to be very useful to avoid
- * some render operations reading from the frame buffer as much
- *
- * Possibly we could the 3D engine for this once we get it working.
- * We can't however use the 2D engine much as it lacks Alpha
- */
-
-
-static Bool VoodooSetupForCPUToScreenAlphaTexture(ScrnInfoPtr pScrn, int op,
- CARD16 red, CARD16 green, CARD16 blue, CARD16 alpha, int alphaType,
- CARD8 *alphaPtr, int alphaPitch, int width, int height, int flags)
-{
- VoodooPtr pVoo = VoodooPTR(pScrn);
-
- pVoo->alphaType = alphaType;
- pVoo->alphaPitch = alphaPitch;
- pVoo->alphaPtr = alphaPtr;
- pVoo->alphaW = width;
- pVoo->alphaH = height;
- pVoo->alphaC = (red & 0xFF00) << 8 | (green & 0xFF00) | blue >> 8;
-
- if(op != PictOpOver && op != PictOpSrc)
- return FALSE;
-
- if(debug)
- ErrorF("Supported CPU To Screen Alpha Texture (%d) -> %d,%d\n", op, width, height);
- wait_idle(pVoo);
- if(op == PictOpSrc)
- pVoo->alpha = 0;
- else /* dst = src * srcalpha + (1-a) * dst */
- pVoo->alpha = (1<<4) | (1<<8) | (5<<12);
-
- return TRUE;
-}
-
-static void VoodooSubsequentCPUToScreenAlphaTexture(ScrnInfoPtr pScrn,
- int dstx, int dsty, int srcx, int srcy, int width, int height)
-{
- VoodooPtr pVoo = VoodooPTR(pScrn);
- /* 32bit LFB write mode */
- CARD32 *fb = (CARD32 *)(pVoo->FBBase + 4096 * dsty + 4 * dstx);
- CARD8 *db = pVoo->alphaPtr + pVoo->alphaW * srcy + srcx;
- int x, y;
- CARD32 *fdb;
- CARD8 *cdb;
- CARD32 colour = pVoo->alphaC;
- int dw, dh;
- int w, h;
-
- mmio32_w(pVoo, 0x10C, pVoo->alpha);
- mmio32_w(pVoo, 0x110, 1 | (1<<9));
- mmio32_w(pVoo, 0x114, (1<<8) | 5); /* ARGB888 */
-
- dh = srcy;
- w = pVoo->alphaW;
- h = pVoo->alphaH;
-
- for(y = 0; y < height; y++)
- {
- cdb = db;
- fdb = fb;
-
- dw = srcx;
- for(x = 0; x < width; x++)
- {
- *fdb++ = (*cdb++<< 24) | colour;
- if(++dw == w)
- {
- dw = 0;
- cdb -= pVoo->alphaW;
- }
- }
- db += pVoo->alphaW;
- fb += 1024;
- if(++dh == h)
- {
- db = pVoo->alphaPtr + srcx;
- dh = 0;
- }
- }
- mmio32_w(pVoo, 0x114, pVoo->lfbMode);
- mmio32_w(pVoo, 0x10C, 0);
-}
-
-static Bool VoodooSetupForCPUToScreenTexture(ScrnInfoPtr pScrn, int op,
- int texType, CARD8 *texPtr, int texPitch, int width, int height,
- int flags)
-{
- VoodooPtr pVoo = VoodooPTR(pScrn);
-
- if(op != PictOpOver && op != PictOpSrc)
- return FALSE; /* For now */
-
- if(debug)
- ErrorF("Supported CPU TO Screen Texture (%d) -> %d,%d\n", op, width, height);
- pVoo->texType = texType;
- pVoo->texPitch = texPitch;
- pVoo->texPtr = texPtr;
- pVoo->texW = width;
- pVoo->texH = height;
-
- wait_idle(pVoo);
- if(op == PictOpSrc || texType == PICT_x8r8g8b8)
- pVoo->alpha = 0;
- else
- pVoo->alpha = (1<<4) | (1<<8) | (5<<12);
-
- return TRUE;
-}
-
-static void VoodooSubsequentCPUToScreenTexture(ScrnInfoPtr pScrn,
- int dstx, int dsty, int srcx, int srcy, int width, int height)
-{
- VoodooPtr pVoo = VoodooPTR(pScrn);
- /* 32bit LFB write mode */
- CARD32 *fb = (CARD32 *)(pVoo->FBBase + 4096 * dsty + 4 * dstx);
- CARD32 *db = ((CARD32 *)(pVoo->texPtr)) + pVoo->texW * srcy + srcx;
- int x, y;
- CARD32 *cdb, *fdb;
- int dw, dh;
- int w, h;
-
- mmio32_w(pVoo, 0x10C, pVoo->alpha);
- mmio32_w(pVoo, 0x110, 1 | (1<<9));
-
- if(pVoo->texType == PICT_a8r8g8b8)
- mmio32_w(pVoo, 0x114, (1<<8) | 5); /* ARGB888 */
- else if(pVoo->texType == PICT_x8r8g8b8)
- mmio32_w(pVoo, 0x114, (1<<8) | 4); /* xRGB888 */
- else ErrorF("BOGOFORMAT\n");
-
- dh = srcy;
- w = pVoo->texW;
- h = pVoo->texH;
-
- if(debug)
- ErrorF("CPUToScreenTexture (%d,%d)->(%d,%d)[%d,%d]\n",
- srcx,srcy,dstx,dsty,width,height);
- /*
- * Tiled software render letting hardware do the read merge
- * that we don't want the CPU to do.
- */
-
- for(y = 0; y < height; y++)
- {
- cdb = db;
- fdb = fb;
- dw = srcx;
- for(x = 0; x < width; x++)
- {
- *fdb++ = *cdb++;
-
- if(++dw == w)
- {
- dw = 0;
- cdb -= pVoo->texW;
- }
- }
- db += pVoo->texW;
- fb += 1024;
- dh ++;
- if(dh == h)
- {
- db = ((CARD32 *)pVoo->texPtr) + srcx;
- dh = 0;
- }
- }
- mmio32_w(pVoo, 0x114, pVoo->lfbMode);
- mmio32_w(pVoo, 0x10C, 0);
-}
-
-CARD32 VoodooAlphaTextureFormats[2] = {PICT_a8, 0};
-CARD32 VoodooTextureFormats[3] = {PICT_a8r8g8b8, PICT_x8r8g8b8, 0};
-
-#endif
-#endif
-
-void Voodoo2XAAInit(ScreenPtr pScreen)
-{
-#ifdef HAVE_XAA_H
- ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
- VoodooPtr pVoo = VoodooPTR(pScrn);
- XAAInfoRecPtr pAccel = XAACreateInfoRec();
- BoxRec cacheArea;
-
- pAccel->Flags = OFFSCREEN_PIXMAPS|LINEAR_FRAMEBUFFER;
- pAccel->Sync = VoodooSync;
-
- pAccel->ScreenToScreenCopyFlags = NO_PLANEMASK;
- pAccel->SetupForScreenToScreenCopy = Voodoo2SetupForScreenToScreenCopy;
- pAccel->SubsequentScreenToScreenCopy = Voodoo2SubsequentScreenToScreenCopy;
-
- pAccel->SolidFillFlags = NO_PLANEMASK;
- pAccel->SetupForSolidFill = Voodoo2SetupForSolidFill;
- pAccel->SubsequentSolidFillRect = Voodoo2SubsequentSolidFillRect;
-
- pAccel->ScanlineCPUToScreenColorExpandFillFlags =
- BIT_ORDER_IN_BYTE_MSBFIRST | NO_PLANEMASK |
- SCANLINE_PAD_DWORD | CPU_TRANSFER_BASE_FIXED;
- pAccel->SetupForScanlineCPUToScreenColorExpandFill =
- Voodoo2SetupForScanlineCPUToScreenColorExpandFill;
- pAccel->SubsequentScanlineCPUToScreenColorExpandFill =
- Voodoo2SubsequentScanlineCPUToScreenColorExpandFill;
- pAccel->SubsequentColorExpandScanline =
- Voodoo2SubsequentColorExpandScanline;
-
- pAccel->NumScanlineColorExpandBuffers = 1;
- pVoo->LinePtr = pVoo->LineBuffer;
- pAccel->ScanlineColorExpandBuffers = &pVoo->LinePtr;
-
- pAccel->SetupForSolidLine = Voodoo2SetupForSolidLine;
- pAccel->SubsequentSolidHorVertLine = Voodoo2SubsequentSolidHorVertLine;
- pAccel->SolidLineFlags = NO_PLANEMASK;
-
- pAccel->Mono8x8PatternFillFlags = HARDWARE_PATTERN_PROGRAMMED_BITS;
- pAccel->SetupForMono8x8PatternFill = Voodoo2SetupForMono8x8PatternFill;
- pAccel->SubsequentMono8x8PatternFillRect = Voodoo2SubsequentMono8x8PatternFillRect;
-
- pAccel->ScanlineImageWriteFlags = NO_PLANEMASK;
- pAccel->SetupForScanlineImageWrite = Voodoo2SetupForScanlineImageWrite;
- pAccel->SubsequentImageWriteRect = Voodoo2SubsequentImageWriteRect;
- pAccel->SubsequentImageWriteScanline = Voodoo2SubsequentImageWriteScanline;
-
- pAccel->ClippingFlags =
- HARDWARE_CLIP_SCREEN_TO_SCREEN_COLOR_EXPAND |
- HARDWARE_CLIP_SCREEN_TO_SCREEN_COPY |
- HARDWARE_CLIP_MONO_8x8_FILL |
- HARDWARE_CLIP_SOLID_FILL;
-
- pAccel->SetClippingRectangle = Voodoo2SetClippingRectangle;
- pAccel->DisableClipping = Voodoo2DisableClipping;
-
-#ifdef RENDER
- pAccel->CPUToScreenAlphaTextureFlags = 0;
- pAccel->SetupForCPUToScreenAlphaTexture = VoodooSetupForCPUToScreenAlphaTexture;
- pAccel->SubsequentCPUToScreenAlphaTexture = VoodooSubsequentCPUToScreenAlphaTexture;
-
- pAccel->CPUToScreenTextureFlags = 0;
- pAccel->SetupForCPUToScreenTexture = VoodooSetupForCPUToScreenTexture;
- pAccel->SubsequentCPUToScreenTexture = VoodooSubsequentCPUToScreenTexture;
-
- pAccel->CPUToScreenTextureFormats = VoodooTextureFormats;
- pAccel->CPUToScreenAlphaTextureFormats = VoodooAlphaTextureFormats;
-#endif
-
- cacheArea.x1 = 0;
- cacheArea.x2 = pScrn->displayWidth;
- cacheArea.y1 = pVoo->Height;
- cacheArea.y2 = (pScrn->videoRam * 1024) / (pVoo->Tiles * 64);
- if(cacheArea.y2 > 2047)
- cacheArea.y2 = 2047;
-
- if(cacheArea.y2 > cacheArea.y1)
- {
- xf86DrvMsg(pScrn->scrnIndex, X_DEFAULT, "Using %d lines of pixmap cache.\n", cacheArea.y2-cacheArea.y1);
- pAccel->Flags |= PIXMAP_CACHE;
- pVoo->FullHeight = cacheArea.y2;
- xf86InitFBManager(pScreen, &cacheArea);
- }
- if( XAAInit(pScreen, pAccel) == FALSE)
- ErrorF("Unable to set up acceleration.\n");
-
- Voodoo2DisableClipping(pScrn);
-#endif
-}
--
2.43.0

92
0014-drop-dead-code.patch Normal file
View File

@ -0,0 +1,92 @@
From 4f34e3c1b12127f985be6073f59b68bb482236d5 Mon Sep 17 00:00:00 2001
From: "Enrico Weigelt, metux IT consult" <info@metux.net>
Date: Fri, 24 May 2024 20:04:48 +0200
Subject: [PATCH 14/15] drop dead code
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-voodoo/-/merge_requests/9>
---
configure.ac | 1 -
src/voodoo_hardware.c | 41 -----------------------------------------
2 files changed, 42 deletions(-)
diff --git a/configure.ac b/configure.ac
index 827d293..8818f24 100644
--- a/configure.ac
+++ b/configure.ac
@@ -83,7 +83,6 @@ if test "x$XSERVER_LIBPCIACCESS" = xyes; then
fi
AM_CONDITIONAL(XSERVER_LIBPCIACCESS, test "x$XSERVER_LIBPCIACCESS" = xyes)
-
AC_SUBST([moduledir])
DRIVER_NAME=voodoo
diff --git a/src/voodoo_hardware.c b/src/voodoo_hardware.c
index be33dd8..6305b35 100644
--- a/src/voodoo_hardware.c
+++ b/src/voodoo_hardware.c
@@ -65,7 +65,6 @@
#include <unistd.h>
-
/*
* Big endian might need to byteswap these ?
*/
@@ -754,25 +753,6 @@ void VoodooCopy24(VoodooPtr pVoo, CARD32 x1, CARD32 y1, CARD32 w, CARD32 h, CARD
void VoodooClear(VoodooPtr pVoo)
{
memset(pVoo->FBBase,0, 0x400000);
-#if 0
- /*
- * We can't do this as the 3D engine setup is not
- * done by this driver..
- */
- mmio32_w(pVoo, 0x130, 0); /* No Alpha ! */
-
- mmio32_w(pVoo, 0x118, pVoo->Width);
- mmio32_w(pVoo, 0x11C, pVoo->Height << 16);
- /* On entry we know Clip is set correctly so we will clear the lot */
- mmio32_w(pVoo, 0x148, 0xC0C0C0); /* RGB888 black */
- mmio32_w(pVoo, 0x130, 0xFFFF); /* I think ?? */
- /* We want to write to screen and depth, front buffer, and no dither */
- mmio32_w(pVoo, 0x110, (mmio32_r(pVoo, 0x110) | 0x601) & 0xFFE00EE1);
- /* Fire */
- mmio32_w(pVoo, 0x124, 1);
- wait_idle(pVoo);
- /* In case X decides to read the LFB before clear finishes */
-#endif
}
/*
@@ -824,27 +804,6 @@ void VoodooWriteBank(ScreenPtr pScreen, int bank)
mmio32_w(pVoo, 0x114, pVoo->lfbMode);
}
-#if 0
-static void VoodooReadWriteBank(ScreenPtr pScreen, int bank)
-{
- ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
- VoodooPtr pVoo = VoodooPTR(pScrn);
- if(bank)
- {
- mmio32_w(pVoo, 0x2C0, pVoo->Height);
- mmio32_w(pVoo, 0x2C4, pVoo->Height);
- pVoo->lfbMode |= (1<<4) | (1<<6);
- }
- else
- {
- mmio32_w(pVoo, 0x2C0, 0);
- mmio32_w(pVoo, 0x2C4, 0);
- pVoo->lfbMode &= ~((1<<4) | (1<<6));
- }
- mmio32_w(pVoo, 0x114, pVoo->lfbMode);
-}
-#endif
-
void VoodooSync(ScrnInfoPtr pScrn)
{
VoodooPtr pVoo = VoodooPTR(pScrn);
--
2.43.0

View File

@ -0,0 +1,218 @@
From c70353ddf49d557c596a47b835b6b8d8bbe35ebe Mon Sep 17 00:00:00 2001
From: "Enrico Weigelt, metux IT consult" <info@metux.net>
Date: Tue, 28 May 2024 10:43:35 +0200
Subject: [PATCH 15/15] drop remains of old compat code
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Part-of: <https://gitlab.freedesktop.org/xorg/driver/xf86-video-voodoo/-/merge_requests/9>
---
src/Makefile.am | 1 -
src/compat-api.h | 58 ---------------------------------------------
src/voodoo.h | 2 --
src/voodoo_dga.c | 2 +-
src/voodoo_driver.c | 30 ++++++++++-------------
5 files changed, 14 insertions(+), 79 deletions(-)
delete mode 100644 src/compat-api.h
diff --git a/src/Makefile.am b/src/Makefile.am
index 7a6d4d9..04e9ea5 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -29,7 +29,6 @@ voodoo_drv_la_LDFLAGS = -module -avoid-version
voodoo_drv_ladir = @moduledir@/drivers
voodoo_drv_la_SOURCES = \
- compat-api.h \
voodoo_dga.c \
voodoo_driver.c \
voodoo.h \
diff --git a/src/compat-api.h b/src/compat-api.h
deleted file mode 100644
index 2376b25..0000000
--- a/src/compat-api.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright 2012 Red Hat, Inc.
- *
- * 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, sublicense,
- * 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 NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS 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.
- *
- * Author: Dave Airlie <airlied@redhat.com>
- */
-
-/* this file provides API compat between server post 1.13 and pre it,
- it should be reused inside as many drivers as possible */
-#ifndef COMPAT_API_H
-#define COMPAT_API_H
-
-#define SCRN_ARG_TYPE ScrnInfoPtr
-#define SCRN_INFO_PTR(arg1) ScrnInfoPtr pScrn = (arg1)
-
-#define SCREEN_ARG_TYPE ScreenPtr
-#define SCREEN_PTR(arg1) ScreenPtr pScreen = (arg1)
-
-#define SCREEN_INIT_ARGS_DECL ScreenPtr pScreen, int argc, char **argv
-
-#define BLOCKHANDLER_ARGS_DECL ScreenPtr arg, pointer pTimeout, pointer pReadmask
-#define BLOCKHANDLER_ARGS arg, pTimeout, pReadmask
-
-#define CLOSE_SCREEN_ARGS_DECL ScreenPtr pScreen
-#define CLOSE_SCREEN_ARGS pScreen
-
-#define ADJUST_FRAME_ARGS_DECL ScrnInfoPtr arg, int x, int y
-#define ADJUST_FRAME_ARGS(arg, x, y) arg, x, y
-
-#define SWITCH_MODE_ARGS_DECL ScrnInfoPtr arg, DisplayModePtr mode
-#define SWITCH_MODE_ARGS(arg, m) arg, m
-
-#define FREE_SCREEN_ARGS_DECL ScrnInfoPtr arg
-
-#define VT_FUNC_ARGS_DECL ScrnInfoPtr arg
-#define VT_FUNC_ARGS pScrn
-
-#define XF86_SCRN_ARG(x) (x)
-
-#endif
diff --git a/src/voodoo.h b/src/voodoo.h
index 772b3b6..9667081 100644
--- a/src/voodoo.h
+++ b/src/voodoo.h
@@ -1,8 +1,6 @@
#include "voodoo_pcirename.h"
#include <string.h>
-#include "compat-api.h"
-
typedef struct {
CARD32 m;
CARD32 n;
diff --git a/src/voodoo_dga.c b/src/voodoo_dga.c
index b0865dc..d1cb891 100644
--- a/src/voodoo_dga.c
+++ b/src/voodoo_dga.c
@@ -96,7 +96,7 @@ static Bool VoodooDGASetMode(ScrnInfoPtr pScrn, DGAModePtr pDGAMode)
return TRUE;
}
- if (!(*pScrn->SwitchMode)(SWITCH_MODE_ARGS(pScrn, pMode)))
+ if (!(*pScrn->SwitchMode)(pScrn, pMode))
return FALSE;
return TRUE;
}
diff --git a/src/voodoo_driver.c b/src/voodoo_driver.c
index 88de297..8f336c6 100644
--- a/src/voodoo_driver.c
+++ b/src/voodoo_driver.c
@@ -72,15 +72,15 @@ static const OptionInfoRec * VoodooAvailableOptions(int chipid, int busid);
static void VoodooIdentify(int flags);
static Bool VoodooProbe(DriverPtr drv, int flags);
static Bool VoodooPreInit(ScrnInfoPtr pScrn, int flags);
-static Bool VoodooScreenInit(SCREEN_INIT_ARGS_DECL);
-static Bool VoodooEnterVT(VT_FUNC_ARGS_DECL);
-static void VoodooLeaveVT(VT_FUNC_ARGS_DECL);
-static Bool VoodooCloseScreen(CLOSE_SCREEN_ARGS_DECL);
+static Bool VoodooScreenInit(ScreenPtr pScreen, int argc, char **argv);
+static Bool VoodooEnterVT(ScrnInfoPtr pScrn);
+static void VoodooLeaveVT(ScrnInfoPtr pScrn);
+static Bool VoodooCloseScreen(ScreenPtr pScreen);
static Bool VoodooSaveScreen(ScreenPtr pScreen, int mode);
-static void VoodooFreeScreen(FREE_SCREEN_ARGS_DECL);
+static void VoodooFreeScreen(ScrnInfoPtr arg);
static void VoodooRefreshArea16(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
static void VoodooRefreshArea24(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
-static Bool VoodooSwitchMode(SWITCH_MODE_ARGS_DECL);
+static Bool VoodooSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr mode);
static Bool VoodooModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode);
static void VoodooRestore(ScrnInfoPtr pScrn, Bool Closing);
@@ -572,7 +572,7 @@ VoodooPreInit(ScrnInfoPtr pScrn, int flags)
/* Mandatory */
/* This gets called at the start of each server generation */
static Bool
-VoodooScreenInit(SCREEN_INIT_ARGS_DECL)
+VoodooScreenInit(ScreenPtr pScreen, int argc, char **argv)
{
ScrnInfoPtr pScrn;
VoodooPtr pVoo;
@@ -718,9 +718,8 @@ VoodooScreenInit(SCREEN_INIT_ARGS_DECL)
/* Mandatory */
static Bool
-VoodooEnterVT(VT_FUNC_ARGS_DECL)
+VoodooEnterVT(ScrnInfoPtr pScrn)
{
- SCRN_INFO_PTR(arg);
return VoodooModeInit(pScrn, pScrn->currentMode);
}
@@ -733,9 +732,8 @@ VoodooEnterVT(VT_FUNC_ARGS_DECL)
/* Mandatory */
static void
-VoodooLeaveVT(VT_FUNC_ARGS_DECL)
+VoodooLeaveVT(ScrnInfoPtr pScrn)
{
- SCRN_INFO_PTR(arg);
VoodooRestore(pScrn, FALSE);
}
@@ -748,7 +746,7 @@ VoodooLeaveVT(VT_FUNC_ARGS_DECL)
/* Mandatory */
static Bool
-VoodooCloseScreen(CLOSE_SCREEN_ARGS_DECL)
+VoodooCloseScreen(ScreenPtr pScreen)
{
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
VoodooPtr pVoo = VoodooPTR(pScrn);
@@ -766,7 +764,7 @@ VoodooCloseScreen(CLOSE_SCREEN_ARGS_DECL)
pScrn->vtSema = FALSE;
pScreen->CloseScreen = pVoo->CloseScreen;
- return (*pScreen->CloseScreen)(CLOSE_SCREEN_ARGS);
+ return (*pScreen->CloseScreen)(pScreen);
}
@@ -774,9 +772,8 @@ VoodooCloseScreen(CLOSE_SCREEN_ARGS_DECL)
/* Optional */
static void
-VoodooFreeScreen(FREE_SCREEN_ARGS_DECL)
+VoodooFreeScreen(ScrnInfoPtr pScrn)
{
- SCRN_INFO_PTR(arg);
VoodooPtr pVoo = VoodooPTR(pScrn);
/*
* This only gets called when a screen is being deleted. It does not
@@ -860,9 +857,8 @@ VoodooModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
* this is needed but it does no harm.
*/
-static Bool VoodooSwitchMode(SWITCH_MODE_ARGS_DECL)
+static Bool VoodooSwitchMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
{
- SCRN_INFO_PTR(arg);
VoodooSync(pScrn);
return VoodooModeInit(pScrn, mode);
}
--
2.43.0

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:622973f03ac0bd0c854794ebeac268f15f4f831ec0dbe36e6cfa2b65042af602
size 276472

Binary file not shown.

74
xf86-video-voodoo.changes Normal file
View File

@ -0,0 +1,74 @@
-------------------------------------------------------------------
Wed Dec 11 16:10:06 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
- 0001-gitlab-CI-ensure-libtool-is-installed-in-build-conta.patch
0002-configure-Use-LT_INIT-from-libtool-2-instead-of-depr.patch
0003-Add-X.Org-s-standard-C-warning-flags-to-AM_CFLAGS.patch
0004-Quiet-Wredundant-decls-from-xorg-os.h-fallbacks-for-.patch
0005-Fix-3-Wunused-but-set-variable-warnings.patch
0006-Fix-4-Wunused-variable-warnings.patch
0007-voodoo_find_dac-doesn-t-check-device_ids-2.patch
0008-use-XNFalloc-instead-of-xnfalloc.patch
0009-use-XNFcallocarray-instead-of-xnfcalloc-macro.patch
0010-bump-minimal-xorg-version-to-1.18.patch
0011-drop-compat-with-ancient-xserver-versions.patch
0012-Drop-ifdefs-for-ABI_VIDEODRV_VERSION-6.patch
0013-Remove-XAA-support.patch
0014-drop-dead-code.patch
0015-drop-remains-of-old-compat-code.patch
* latest changes to fix build against current xserver
-------------------------------------------------------------------
Sun Dec 18 15:32:28 UTC 2022 - Dirk Müller <dmueller@suse.com>
- update to 1.2.6:
* Remove miInitializeBackingStore
Stop using deprecated xf86PciInfo.h
Fix spelling/wording issues
Build xz tarballs instead of bzip2
Update configure.ac bug URL for gitlab migration
autogen: add default patch prefix
autogen.sh: use quoted string variables
autogen.sh: use exec instead of waiting for configure to finish
autogen.sh: Honor NOCONFIGURE=1
configure: Drop AM_MAINTAINER_MODE
don't use PCITAG in struct anymore
- drop U_don-t-use-PCITAG-in-struct-anymore.patch (upstream)
-------------------------------------------------------------------
Fri Feb 6 15:03:35 UTC 2015 - sndirsch@suse.com
- U_don-t-use-PCITAG-in-struct-anymore.patch
* fixes build against xorg-server 1.17
-------------------------------------------------------------------
Wed Aug 7 15:03:57 CEST 2013 - ro@suse.de
- add ExcludeArch for s390 and s390x
-------------------------------------------------------------------
Wed Mar 20 14:42:42 UTC 2013 - sndirsch@suse.com
- introduce hardware supplements conditional on xorg-x11-server
package (bnc#810333)
-------------------------------------------------------------------
Sun Sep 2 19:26:08 UTC 2012 - zaitor@opensuse.org
- Update to version 1.2.5:
+ Fix build against older X servers.
+ Fix build against XAA-less server.
+ Drop useless vgaHW include.
+ Fall back to shadowfb if XAA is unavailable.
-------------------------------------------------------------------
Fri Apr 20 07:37:57 UTC 2012 - vuntz@opensuse.org
- Use %x11_abi_videodrv_req instead of static ABI Requires.
-------------------------------------------------------------------
Wed Apr 18 15:51:24 UTC 2012 - vuntz@opensuse.org
- Split xf86-video-voodoo from xorg-x11-driver-video.
Initial version: 1.2.4.

59
xf86-video-voodoo.keyring Normal file
View File

@ -0,0 +1,59 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQGiBEab+moRBACDH5yKqS3wcc5bdxY7PBNuwKvF5TKMfagmSvuRDtZjjIIWaA/n
Z1KboV9Gq5g7kP7+Kfu+Qgd8u65eVsWwmPW10fXvj3aCU53glx2EdGdrHcgiyH2g
EQfPiyBw+trIppWFRV0IDXSLMA1FNC92t2nSG/VFHaPTVwcgkIRSfcXDvwCglGdE
a6f4uLqoNHP+m4yYnzapFuMD/R4+2AJDAvEWKDdYCGZzlawjAmmWyXrmT7/C/mx9
8qUR473l4buXjHgDkkXXlHqdzil1vK85PhrKzNJDCCmlHUJNz+QwiAMOLwpD+kwV
Pb57RG7y+a5JQ5+jtVw4RlUxZIk/wj2An9YBO3A5vR7PdjM32ZJCN2+aM4dYfNzQ
xQKTA/47icvBaBVTl9rztjg2pd2Aqpc1P/GsIYLGj7XjnnJvGAENBHSH1QjpZMJG
CTS9oJ+B0/wrIr+pA+MdFgYAb6ojMQJOO6UChjWWSGjMFcs/CeXhxlLBido3DtAE
TbNTwO6OEfAvdosvTdhJFnwvZlJ+zZGGy5CrF2Fd9PUe9tmASbQuQWxhbiBDb29w
ZXJzbWl0aCA8YWxhbi5jb29wZXJzbWl0aEBvcmFjbGUuY29tPohrBBMRCgArAhsD
BgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAIZAQUCWtvjmAUJHaXqrgAKCRCi+54I
Hy0TDmAsAJ4ubyCVncwKtAGVIx9whDq7f6SxZgCfXAVWUqRR20c98J39lLTtcopZ
Dfi0KEFsYW4gQ29vcGVyc21pdGggPGFsYW5jQGZyZWVkZXNrdG9wLm9yZz6IaAQT
EQoAKAIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AFAlrb454FCR2l6q4ACgkQ
ovueCB8tEw6whACdFj9U5SQuhv0e8BQvI4orGPzUMSkAoImqdVB7sU7Z++djBrj3
uJc4m0F6tCtBbGFuIENvb3BlcnNtaXRoIDxhbGFuLmNvb3BlcnNtaXRoQHN1bi5j
b20+iGYEExEKACYCGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAUCWtvjngUJHaXq
rgAKCRCi+54IHy0TDhtDAJ95lL7Flj8EzdWqYogu7V9W5Xmd4gCgi0vN3iglPVNH
2gHOcTpdNyl0wcy5Ag0EUXnVIQEQAKHpjOmY056n0tsZoW9q5egsMcl5tKC8uimr
hO05nnq+5/60/YedC++V9c9b/3/X7O28LyBkAtBgD0xJZSDQ0DhTzKAp6AzjQtBv
I68uinGwxSjT+oQpPMxqhA1I0kzoEDCdEqV+HsVOAEdbAi/tP9bbdTDzwVc8MWDr
iamBUqc53Rb00Mffy9435UgTS4gAhMwANhy6XZmOMBhITOzxFJUEDTDJtLbE0b1j
PRQS7NHQgak1inmuvPMc3wAuoEcSCSt1xupbYsBoXOjK5wC/eE1LIdZoRyW2OkT1
40DqDZ8zfRID860hnirnYgb09TPNtj93pudUAUt6T9+tcLN4/rxhxHOwse66KGHO
4bQ1rZ6mfco6SYd9V60cL6hC2eMecyxZliMu17lj7EX8lxUH+omIgHc7HGoyUR6V
+WB60cxWj5v05zdeLeZ2aLBcPFhxlfDESm8f4ezdJSDS1QZmC0P5h3RJfhhfmdBr
8kHzr7111D1/O71Av1VV5FyJ9YxUSxp4IPuzK7JbbgVHcA6PvXrDzWUslmZgPADp
KH4hTmG/NdCqhEXcufvY6s5yNksB8X3ReNvuSSyfGnRz3kvtyK0XzC7KRX2PquLI
6A8KJprHwZGqEB1NDG8b2iaYnghOjyfIYEVQF3nGfaBwv4lrCPEoZSUaK8f/NQZj
NU8NQyTnABEBAAGJAm4EGBEKAA8CGwIFAlrb470FCRLIEBwCKcFdIAQZAQoABgUC
UXnVIQAKCRDP3xSIKMZCp9bmD/9050ke3bdx0zLPlUANoTu74vQT55f0a0cXgnrj
15ey6Ln0S1seHadd0aF3lKpDwUOL0YIQppDhLfWf9gEsQEKSPtHQgyKRbajvz8nE
Oi8Hz5ovrTqGCZp81XHVoiyEiCWuXxeW7eyN4C8bjxbpiN0vaZ+sgMeMhXA5mwyK
Fs4m9JPpDe6kd2eaMO0zkcJCYjk0RcNZiPohm6EmeesNbA2zJhXgo+hQHEByojIJ
5ltWyy5Zacc9dfxVq9Wr3y+lXKd8bMZiklsOPX0L+60yMoYjl1y9tVq5wDtf+iS3
GvFLpIEOG4hoAT3hkeVvGp/Id8RMj8trZn8AsMC1h2ElHaBKRMfIpJbVCpiW6VJ8
H/+WedrjiaZO5E41sM2BvQUZK+2wExnzSIcOo+BR9LrSTEJ8WuxIZ9MVT5fhADOl
O1QkRyv4ngdQsN4x/A6CCFV+YrEVdZ+53zENoJe7LAtO1WAwJmng/swDK4mVrGwV
O75zVWXL3iCuThQy0AssyoJdKiwDj3SAtNJ2DcdLDG3ZD8sl3Ljbtkgy+MZciu6e
zxT86Yv11WBa7dskewvrxKTHxOzrepM31Bcz88H7xXA5oLs8n6Dq3jQOV46Z2xLx
w3fXJ/koHyuwvi6fi7XKswl+mdJuU8y7nAmLeSOgD4N3lkWrH2dOLjAGN9VgYI+y
V6rn0gkQovueCB8tEw7nxACeNnR9mrdd+VMF32hm6lu54QUhWiQAoJLzrvm3uK/H
XyfDrNoGAjiyAj+3uQINBEab+m8QCACaeWlJYaOa1IaUuopO7KbAEBT0bsnDyjDb
tCeBdL/zqD89PObKFfMrS4+B6ghpNmWpodY0oJYmcLpPZu1e1oMcfpwSWsKVg1/3
iizmxK3w8EOHXzhb421y0DJjZ0DWlBiFizz95fBrgThzKutAbvkz4Ietu71J7S+U
REBEKk1yM1gulNdELA25S8CL3TlUnRhecZfzdZsl80ir67GcFraBXPBvb/YXAo4b
TdbJvW+zo3OdYmV73HrXLz8uUQOgFFt8hBMWnnVHS57yBfbIxWCHyVhVWIdgIGr5
xq3unxfjVdr9838d8EU+x/f/5uGCA2CZoGYMkHHF3oE8HxgSKt6LAAMGB/9RYjFD
DBEuSJc9pw6iHfgwlhAgFOsILyBUXF62VsQ8Qfma55kwl6AA9MXnaXzpER6fF01X
P/TFPsEPpWUcdjkOjCVtFxrhbx5veCmRf/B81gNgIe1OJ9Pt7C6ZOs1nHmats2TR
dMlU48A/fPsTStUPbD/GjinbYPMjB94YrCkeq3Vvpn1+atEPBqJdoWbBR/6siIZz
84Vw5J7jofBOYjJM63o1V1BJ/vmM49t14z+fUjmy851ZMsSPpASPar1RD3xQQ8m4
x1qi3IEXAqVwM44sxIvv3d9Yg2thKyR1eEeNqG3nBaoj56A7Yl9yIj+8/X5sTOGl
j2WUar6vtYbecJJ/iEkEGBECAAkFAkab+m8CGwwACgkQovueCB8tEw6C6ACgh2Ea
cP138hLp8NWC/7jGc5e/KiEAnRVXFzW6g/N6lYVuC8u4cgy/KNGi
=zQQb
-----END PGP PUBLIC KEY BLOCK-----

112
xf86-video-voodoo.spec Normal file
View File

@ -0,0 +1,112 @@
#
# spec file for package xf86-video-voodoo
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: xf86-video-voodoo
Version: 1.2.6
Release: 0
Summary: Voodoo video driver for the Xorg X server
License: MIT
Group: System/X11/Servers/XF86_4
URL: https://xorg.freedesktop.org/
Source0: http://xorg.freedesktop.org/releases/individual/driver/%{name}-%{version}.tar.xz
Source1: http://xorg.freedesktop.org/releases/individual/driver/%{name}-%{version}.tar.xz.sig
Source2: xf86-video-voodoo.keyring
#Patch1: 0001-gitlab-CI-ensure-libtool-is-installed-in-build-conta.patch
Patch2: 0002-configure-Use-LT_INIT-from-libtool-2-instead-of-depr.patch
Patch3: 0003-Add-X.Org-s-standard-C-warning-flags-to-AM_CFLAGS.patch
Patch4: 0004-Quiet-Wredundant-decls-from-xorg-os.h-fallbacks-for-.patch
Patch5: 0005-Fix-3-Wunused-but-set-variable-warnings.patch
Patch6: 0006-Fix-4-Wunused-variable-warnings.patch
Patch7: 0007-voodoo_find_dac-doesn-t-check-device_ids-2.patch
Patch8: 0008-use-XNFalloc-instead-of-xnfalloc.patch
Patch9: 0009-use-XNFcallocarray-instead-of-xnfcalloc-macro.patch
Patch10: 0010-bump-minimal-xorg-version-to-1.18.patch
Patch11: 0011-drop-compat-with-ancient-xserver-versions.patch
Patch12: 0012-Drop-ifdefs-for-ABI_VIDEODRV_VERSION-6.patch
Patch13: 0013-Remove-XAA-support.patch
Patch14: 0014-drop-dead-code.patch
Patch15: 0015-drop-remains-of-old-compat-code.patch
BuildRequires: pkgconfig
BuildRequires: pkgconfig(fontsproto)
BuildRequires: pkgconfig(pciaccess) >= 0.8.0
BuildRequires: pkgconfig(randrproto)
BuildRequires: pkgconfig(renderproto)
BuildRequires: pkgconfig(xextproto)
BuildRequires: pkgconfig(xf86dgaproto)
BuildRequires: pkgconfig(xorg-macros) >= 1.8
BuildRequires: pkgconfig(xorg-server) >= 1.0.99.901
BuildRequires: pkgconfig(xproto)
Supplements: modalias(xorg-x11-server:pci:v0000121Ad*sv*sd*bc03sc*i*)
# This was part of the xorg-x11-driver-video package up to version 7.6
Conflicts: xorg-x11-driver-video <= 7.6
ExcludeArch: s390 s390x
%{?x11_abi_videodrv_req}
%description
voodoo is an Xorg driver for Voodoo 1 and Voodoo 2 series video cards.
On the Voodoo 1 the driver uses a shadow buffer in system memory as the
video adapter has only 3D acceleration. Selected portions of the shadow
framebuffer are copied out to the Voodoo board at the right time.
Because of this, the speed of the driver is very dependent on the CPU.
Processors nowadays are actually rather fast at moving data so we get
very good speed anyway as the shadow framebuffer is in cached RAM.
The Voodoo2 has 16bpp acceleration and the driver provides accelerated
versions of most operations except angled lines and stipples.
Accelerated alpha blending with the Render extension is also supported
as is DGA.
This driver supports 16bpp modes currently. The video hardware supports
image conversion from 24bpp to 16bpp but the hardware is 16bpp only.
The Voodoo 1 series cards can go up to 800x600 resolution while the
Voodoo 2 can reach 1024x768 providing it has at least 2Mb of frame
buffer memory. 1024x768 2D mode does not require two cards configured in
scan-line interleave mode (SLI).
Multihead and Xinerama configurations are supported. SLI configurations
will be treated as multiple video cards.
Limited support for DPMS screen saving is available. The "standby" and
"suspend" modes are just painting the screen black. The "off" mode turns
the Voodoo board off and thus works correctly.
This driver does not support a virtual screen size different from the
display size. This is a hardware limitation. 3D rendering is also not
supported.
%prep
%autosetup -p1
%build
%configure
%make_build
%install
%make_install
find %{buildroot} -type f -name "*.la" -delete -print
%files
%license COPYING
%doc ChangeLog README
%dir %{_libdir}/xorg/modules/drivers
%{_libdir}/xorg/modules/drivers/voodoo_drv.so
%{_mandir}/man4/voodoo.4%{?ext_man}
%changelog