From 89f97d561d94fde5c4c71875f92c39be4f45877aeb71c2f6d007668bff457cb9 Mon Sep 17 00:00:00 2001 From: Stefan Dirsch Date: Wed, 11 Dec 2024 16:16:03 +0000 Subject: [PATCH] - 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 --- .gitattributes | 23 + .gitignore | 1 + ...-libtool-is-installed-in-build-conta.patch | 38 + ..._INIT-from-libtool-2-instead-of-depr.patch | 38 + ...tandard-C-warning-flags-to-AM_CFLAGS.patch | 26 + ...-decls-from-xorg-os.h-fallbacks-for-.patch | 35 + ...-3-Wunused-but-set-variable-warnings.patch | 59 ++ 0006-Fix-4-Wunused-variable-warnings.patch | 56 ++ ..._find_dac-doesn-t-check-device_ids-2.patch | 31 + 0008-use-XNFalloc-instead-of-xnfalloc.patch | 30 + ...llocarray-instead-of-xnfcalloc-macro.patch | 39 + 0010-bump-minimal-xorg-version-to-1.18.patch | 30 + ...compat-with-ancient-xserver-versions.patch | 72 ++ ...op-ifdefs-for-ABI_VIDEODRV_VERSION-6.patch | 31 + 0013-Remove-XAA-support.patch | 818 ++++++++++++++++++ 0014-drop-dead-code.patch | 92 ++ 0015-drop-remains-of-old-compat-code.patch | 218 +++++ xf86-video-voodoo-1.2.6.tar.xz | 3 + xf86-video-voodoo-1.2.6.tar.xz.sig | Bin 0 -> 543 bytes xf86-video-voodoo.changes | 74 ++ xf86-video-voodoo.keyring | 59 ++ xf86-video-voodoo.spec | 112 +++ 22 files changed, 1885 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 0001-gitlab-CI-ensure-libtool-is-installed-in-build-conta.patch create mode 100644 0002-configure-Use-LT_INIT-from-libtool-2-instead-of-depr.patch create mode 100644 0003-Add-X.Org-s-standard-C-warning-flags-to-AM_CFLAGS.patch create mode 100644 0004-Quiet-Wredundant-decls-from-xorg-os.h-fallbacks-for-.patch create mode 100644 0005-Fix-3-Wunused-but-set-variable-warnings.patch create mode 100644 0006-Fix-4-Wunused-variable-warnings.patch create mode 100644 0007-voodoo_find_dac-doesn-t-check-device_ids-2.patch create mode 100644 0008-use-XNFalloc-instead-of-xnfalloc.patch create mode 100644 0009-use-XNFcallocarray-instead-of-xnfcalloc-macro.patch create mode 100644 0010-bump-minimal-xorg-version-to-1.18.patch create mode 100644 0011-drop-compat-with-ancient-xserver-versions.patch create mode 100644 0012-Drop-ifdefs-for-ABI_VIDEODRV_VERSION-6.patch create mode 100644 0013-Remove-XAA-support.patch create mode 100644 0014-drop-dead-code.patch create mode 100644 0015-drop-remains-of-old-compat-code.patch create mode 100644 xf86-video-voodoo-1.2.6.tar.xz create mode 100644 xf86-video-voodoo-1.2.6.tar.xz.sig create mode 100644 xf86-video-voodoo.changes create mode 100644 xf86-video-voodoo.keyring create mode 100644 xf86-video-voodoo.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -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 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/0001-gitlab-CI-ensure-libtool-is-installed-in-build-conta.patch b/0001-gitlab-CI-ensure-libtool-is-installed-in-build-conta.patch new file mode 100644 index 0000000..ca2db4e --- /dev/null +++ b/0001-gitlab-CI-ensure-libtool-is-installed-in-build-conta.patch @@ -0,0 +1,38 @@ +From 59113321b1eb9b5d476861a0ff82b08cd534365c Mon Sep 17 00:00:00 2001 +From: Alan Coopersmith +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 +--- + .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 + diff --git a/0002-configure-Use-LT_INIT-from-libtool-2-instead-of-depr.patch b/0002-configure-Use-LT_INIT-from-libtool-2-instead-of-depr.patch new file mode 100644 index 0000000..f7d83da --- /dev/null +++ b/0002-configure-Use-LT_INIT-from-libtool-2-instead-of-depr.patch @@ -0,0 +1,38 @@ +From f1434139a366539ef632ad1aec4764a8c89f2f99 Mon Sep 17 00:00:00 2001 +From: Alan Coopersmith +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 +--- + 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 + diff --git a/0003-Add-X.Org-s-standard-C-warning-flags-to-AM_CFLAGS.patch b/0003-Add-X.Org-s-standard-C-warning-flags-to-AM_CFLAGS.patch new file mode 100644 index 0000000..3525c8a --- /dev/null +++ b/0003-Add-X.Org-s-standard-C-warning-flags-to-AM_CFLAGS.patch @@ -0,0 +1,26 @@ +From 2495db60d9c163941e1ae4b89982ecb8ce4e954a Mon Sep 17 00:00:00 2001 +From: Alan Coopersmith +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 +--- + 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 + diff --git a/0004-Quiet-Wredundant-decls-from-xorg-os.h-fallbacks-for-.patch b/0004-Quiet-Wredundant-decls-from-xorg-os.h-fallbacks-for-.patch new file mode 100644 index 0000000..d43491d --- /dev/null +++ b/0004-Quiet-Wredundant-decls-from-xorg-os.h-fallbacks-for-.patch @@ -0,0 +1,35 @@ +From cfe1fcb4eefba66243ecf1336e38f4e77a491cff Mon Sep 17 00:00:00 2001 +From: Alan Coopersmith +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 +--- + 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 + diff --git a/0005-Fix-3-Wunused-but-set-variable-warnings.patch b/0005-Fix-3-Wunused-but-set-variable-warnings.patch new file mode 100644 index 0000000..e4538d2 --- /dev/null +++ b/0005-Fix-3-Wunused-but-set-variable-warnings.patch @@ -0,0 +1,59 @@ +From ead68c88de422c82004715403776ec0d21c6d6aa Mon Sep 17 00:00:00 2001 +From: Alan Coopersmith +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 +--- + 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 + diff --git a/0006-Fix-4-Wunused-variable-warnings.patch b/0006-Fix-4-Wunused-variable-warnings.patch new file mode 100644 index 0000000..2bd8e48 --- /dev/null +++ b/0006-Fix-4-Wunused-variable-warnings.patch @@ -0,0 +1,56 @@ +From a2b65b4bca30a9805e4757e5e05860aa00d56483 Mon Sep 17 00:00:00 2001 +From: Alan Coopersmith +Date: Tue, 16 Jan 2024 16:30:18 -0800 +Subject: [PATCH 06/15] Fix 4 -Wunused-variable warnings + +Signed-off-by: Alan Coopersmith +--- + 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 + diff --git a/0007-voodoo_find_dac-doesn-t-check-device_ids-2.patch b/0007-voodoo_find_dac-doesn-t-check-device_ids-2.patch new file mode 100644 index 0000000..23934fb --- /dev/null +++ b/0007-voodoo_find_dac-doesn-t-check-device_ids-2.patch @@ -0,0 +1,31 @@ +From 3065954a83c966901baecf686619e6679833632f Mon Sep 17 00:00:00 2001 +From: Alan Coopersmith +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 +--- + 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 + diff --git a/0008-use-XNFalloc-instead-of-xnfalloc.patch b/0008-use-XNFalloc-instead-of-xnfalloc.patch new file mode 100644 index 0000000..94c7be3 --- /dev/null +++ b/0008-use-XNFalloc-instead-of-xnfalloc.patch @@ -0,0 +1,30 @@ +From 7f0ef65c8b7735152689085deb7556e03ab63a10 Mon Sep 17 00:00:00 2001 +From: "Enrico Weigelt, metux IT consult" +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 +Part-of: +--- + 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 + diff --git a/0009-use-XNFcallocarray-instead-of-xnfcalloc-macro.patch b/0009-use-XNFcallocarray-instead-of-xnfcalloc-macro.patch new file mode 100644 index 0000000..1315864 --- /dev/null +++ b/0009-use-XNFcallocarray-instead-of-xnfcalloc-macro.patch @@ -0,0 +1,39 @@ +From 2da59302a2fe1a16225af4e7da9ef5b00727a663 Mon Sep 17 00:00:00 2001 +From: "Enrico Weigelt, metux IT consult" +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 +Part-of: +--- + 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 + diff --git a/0010-bump-minimal-xorg-version-to-1.18.patch b/0010-bump-minimal-xorg-version-to-1.18.patch new file mode 100644 index 0000000..5a4dbd8 --- /dev/null +++ b/0010-bump-minimal-xorg-version-to-1.18.patch @@ -0,0 +1,30 @@ +From 12b735fe2cd084f9c135792f55e7cfc8c1bc5339 Mon Sep 17 00:00:00 2001 +From: "Enrico Weigelt, metux IT consult" +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 +Part-of: +--- + 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 + diff --git a/0011-drop-compat-with-ancient-xserver-versions.patch b/0011-drop-compat-with-ancient-xserver-versions.patch new file mode 100644 index 0000000..2e27a2d --- /dev/null +++ b/0011-drop-compat-with-ancient-xserver-versions.patch @@ -0,0 +1,72 @@ +From deeaf931fe2451cd2589959368bea5c4c1bb503e Mon Sep 17 00:00:00 2001 +From: "Enrico Weigelt, metux IT consult" +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 +Part-of: +--- + 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 + diff --git a/0012-Drop-ifdefs-for-ABI_VIDEODRV_VERSION-6.patch b/0012-Drop-ifdefs-for-ABI_VIDEODRV_VERSION-6.patch new file mode 100644 index 0000000..6d30f7a --- /dev/null +++ b/0012-Drop-ifdefs-for-ABI_VIDEODRV_VERSION-6.patch @@ -0,0 +1,31 @@ +From 014923aa853a50f9afe07d900f6bc6f006f78e91 Mon Sep 17 00:00:00 2001 +From: Alan Coopersmith +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 +Part-of: +--- + 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 + diff --git a/0013-Remove-XAA-support.patch b/0013-Remove-XAA-support.patch new file mode 100644 index 0000000..63be53a --- /dev/null +++ b/0013-Remove-XAA-support.patch @@ -0,0 +1,818 @@ +From 38537b4dffdcba1dfde99f3e7106a5c23c9859b3 Mon Sep 17 00:00:00 2001 +From: Alan Coopersmith +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 +Part-of: +--- + 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 +@@ -69,23 +65,6 @@ + + #include + +-#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 + diff --git a/0014-drop-dead-code.patch b/0014-drop-dead-code.patch new file mode 100644 index 0000000..b9a54ae --- /dev/null +++ b/0014-drop-dead-code.patch @@ -0,0 +1,92 @@ +From 4f34e3c1b12127f985be6073f59b68bb482236d5 Mon Sep 17 00:00:00 2001 +From: "Enrico Weigelt, metux IT consult" +Date: Fri, 24 May 2024 20:04:48 +0200 +Subject: [PATCH 14/15] drop dead code + +Part-of: +--- + 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 + +- + /* + * 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 + diff --git a/0015-drop-remains-of-old-compat-code.patch b/0015-drop-remains-of-old-compat-code.patch new file mode 100644 index 0000000..0d7ad39 --- /dev/null +++ b/0015-drop-remains-of-old-compat-code.patch @@ -0,0 +1,218 @@ +From c70353ddf49d557c596a47b835b6b8d8bbe35ebe Mon Sep 17 00:00:00 2001 +From: "Enrico Weigelt, metux IT consult" +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 +Part-of: +--- + 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 +- */ +- +-/* 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 + +-#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 + diff --git a/xf86-video-voodoo-1.2.6.tar.xz b/xf86-video-voodoo-1.2.6.tar.xz new file mode 100644 index 0000000..e36f8b2 --- /dev/null +++ b/xf86-video-voodoo-1.2.6.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:622973f03ac0bd0c854794ebeac268f15f4f831ec0dbe36e6cfa2b65042af602 +size 276472 diff --git a/xf86-video-voodoo-1.2.6.tar.xz.sig b/xf86-video-voodoo-1.2.6.tar.xz.sig new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..c5fbc654f9bfd06cdba54b3b0f53d0225fdd4c2667e878869fca26644706d4f8 GIT binary patch literal 543 zcmV+)0^t3L0vrSY0SW*H1p;G}oNNFJ2@ucU6o@FsLZ^Mf5Bv$l|LZm|tu=OCt(vo~ zT~)O2keQ&nH9#{K+`@|98+1PKn+oQeN{J0|&<)SHRWp)-P2%CD73uIE@k)%d)O-9- zRlZ+|CzrWL^0hMR=PSX;&q8A!V zHSWom7nlTUN?23Cv%U^E{@^^sIfN}cupHm(yo0+5>X zq4OLf8u2=04~!WT@MCBog)F)*yKL>uGz(m)g&Ylig@Gxr9%_<&tUM9DKWDif7u?f? zW?2QQB2oc`a`uGbZ7q4=r`=(UD9El@&uY6&feD^X>(p!fv%R(OlaW^>nvx<6Td${A z;!J)_QL98bnnx+M@Deleg0lLFkoRqXkU+4B4<4OYvE=kkvx6|`hFze~2w?lLQ0sCp hny^XlUtlCx^ + +- 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 + +- 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. + diff --git a/xf86-video-voodoo.keyring b/xf86-video-voodoo.keyring new file mode 100644 index 0000000..8085973 --- /dev/null +++ b/xf86-video-voodoo.keyring @@ -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----- diff --git a/xf86-video-voodoo.spec b/xf86-video-voodoo.spec new file mode 100644 index 0000000..047bc89 --- /dev/null +++ b/xf86-video-voodoo.spec @@ -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