[xorg-x11-drv-savage] Add hack to allow building with --disable-dri

Peter Hutterer whot at fedoraproject.org
Wed Jan 4 04:44:03 UTC 2012


commit c9be73c63d92d0e314af9b7e522ea1795c85276a
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Wed Jan 4 14:45:10 2012 +1000

    Add hack to allow building with --disable-dri

 ...86DRI-from-the-driver-specific-DRI-define.patch |  371 ++++++++++++++++++++
 xorg-x11-drv-savage.spec                           |    8 +-
 2 files changed, 378 insertions(+), 1 deletions(-)
---
diff --git a/0001-Untangle-XF86DRI-from-the-driver-specific-DRI-define.patch b/0001-Untangle-XF86DRI-from-the-driver-specific-DRI-define.patch
new file mode 100644
index 0000000..7ada9ef
--- /dev/null
+++ b/0001-Untangle-XF86DRI-from-the-driver-specific-DRI-define.patch
@@ -0,0 +1,371 @@
+From 12f447f9708f62f1fbceeae5fdb285cf699d091f Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer at who-t.net>
+Date: Wed, 4 Jan 2012 14:33:47 +1000
+Subject: [PATCH] Untangle XF86DRI from the driver-specific DRI define
+
+XF86DRI is defined by xorg-server.h, so --disable-dri in the driver
+itself does exactly nothing other than not fill in the CFLAGS and thus stop
+the driver from compiling.
+
+Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
+---
+ configure.ac        |    4 ++--
+ src/savage_accel.c  |    4 ++--
+ src/savage_dri.c    |    2 +-
+ src/savage_driver.c |   36 ++++++++++++++++++------------------
+ src/savage_driver.h |   10 +++++++---
+ src/savage_exa.c    |    8 ++++----
+ src/savage_video.c  |   12 ++++++------
+ 7 files changed, 40 insertions(+), 36 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 6836350..2db5746 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -99,8 +99,8 @@ AC_MSG_RESULT([$DRI])
+ AM_CONDITIONAL(DRI, test x$DRI = xyes)
+ if test "$DRI" = yes; then
+         PKG_CHECK_MODULES(DRI, [libdrm >= 2.0 xf86driproto])
+-        AC_DEFINE(XF86DRI,1,[Enable DRI driver support])
+-        AC_DEFINE(XF86DRI_DEVEL,1,[Enable developmental DRI driver support])
++        AC_DEFINE(SAVAGEDRI,1,[Enable DRI driver support])
++        AC_DEFINE(SAVAGEDRI_DEVEL,1,[Enable developmental DRI driver support])
+ fi
+ 
+ save_CFLAGS="$CFLAGS"
+diff --git a/src/savage_accel.c b/src/savage_accel.c
+index 24e0a22..0920e22 100644
+--- a/src/savage_accel.c
++++ b/src/savage_accel.c
+@@ -24,7 +24,7 @@
+ #include "savage_bci.h"
+ #include "savage_streams.h"
+ 
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+ #define _XF86DRI_SERVER_
+ #include "savage_dri.h"
+ #endif
+@@ -1277,7 +1277,7 @@ SavageInitAccel(ScreenPtr pScreen)
+     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+     SavagePtr psav = SAVPTR(pScrn);
+ 
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+     if (psav->directRenderingEnabled) {
+         SAVAGEDRIServerPrivatePtr pSAVAGEDRIServer = psav->DRIServerInfo;
+         int cpp = pScrn->bitsPerPixel / 8;
+diff --git a/src/savage_dri.c b/src/savage_dri.c
+index 414e724..38d2a86 100644
+--- a/src/savage_dri.c
++++ b/src/savage_dri.c
+@@ -26,7 +26,7 @@
+ #include "config.h"
+ #endif
+ 
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+ 
+ #include "xf86.h"
+ #include "xf86_OSproc.h"
+diff --git a/src/savage_driver.c b/src/savage_driver.c
+index 447beec..5e4ca0e 100644
+--- a/src/savage_driver.c
++++ b/src/savage_driver.c
+@@ -67,7 +67,7 @@
+ 
+ #define TRANSPARENCY_KEY 0xff;
+ 
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+ #define _XF86DRI_SERVER_
+ #include "savage_dri.h"
+ #include "savage_sarea.h"
+@@ -130,7 +130,7 @@ static unsigned int SavageDDC1Read(ScrnInfoPtr pScrn);
+ static void SavageProbeDDC(ScrnInfoPtr pScrn, int index);
+ static void SavageGetTvMaxSize(SavagePtr psav);
+ static Bool SavagePanningCheck(ScrnInfoPtr pScrn, DisplayModePtr pMode);
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+ static Bool SavageCheckAvailableRamFor3D(ScrnInfoPtr pScrn);
+ #endif
+ static void SavageResetStreams(ScrnInfoPtr pScrn);
+@@ -315,7 +315,7 @@ static const OptionInfoRec SavageOptions[] =
+     { OPTION_BCI_FOR_XV,   "BCIforXv",    OPTV_BOOLEAN, {0}, FALSE },
+     { OPTION_DVI,          "DVI",       OPTV_BOOLEAN, {0}, FALSE },
+     { OPTION_IGNORE_EDID,  "IgnoreEDID",  OPTV_BOOLEAN, {0}, FALSE },
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+     { OPTION_BUS_TYPE,	"BusType",	OPTV_ANYSTR,  {0}, FALSE },
+     { OPTION_DMA_TYPE,	"DmaType",	OPTV_ANYSTR,  {0}, FALSE },
+     { OPTION_DMA_MODE,  "DmaMode",	OPTV_ANYSTR,  {0}, FALSE },
+@@ -1461,7 +1461,7 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
+ 
+     /* Set AGP Mode from config */
+     /* We support 1X 2X and 4X  */
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+ #ifdef XSERVER_LIBPCIACCESS
+     /* Try to read the AGP capabilty block from the device.  If there is
+      * no AGP info, the device is PCI.
+@@ -1672,7 +1672,7 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
+                    "Option: %s Tile Mode and Program it \n",(psav->bDisableTile?"Disable":"Enable"));
+     }
+ 
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+     /* disabled by default...doesn't seem to work */
+     psav->bDisableXvMC = TRUE; /* if you want to free up more mem for DRI,etc. */
+     if (xf86GetOptValBool(psav->Options, OPTION_DISABLE_XVMC, &psav->bDisableXvMC)) {
+@@ -1702,7 +1702,7 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
+                    "%s DVI port support (Savage4 only)\n",(psav->dvi?"Force":"Disable"));
+     }
+ 
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+     psav->AGPforXv = FALSE;
+     if (xf86GetOptValBool(psav->Options, OPTION_AGP_FOR_XV, &psav->AGPforXv)) {
+         if (psav->AGPforXv) {
+@@ -2201,7 +2201,7 @@ static Bool SavagePreInit(ScrnInfoPtr pScrn, int flags)
+ static Bool SavageEnterVT(int scrnIndex, int flags)
+ {
+     ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+     SavagePtr psav = SAVPTR(pScrn);
+     ScreenPtr pScreen;
+ #endif
+@@ -2211,7 +2211,7 @@ static Bool SavageEnterVT(int scrnIndex, int flags)
+     gpScrn = pScrn;
+     SavageEnableMMIO(pScrn);
+ 
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+     if (psav->directRenderingEnabled) {
+         pScreen = screenInfo.screens[scrnIndex];
+         SAVAGEDRIResume(pScreen);
+@@ -2239,14 +2239,14 @@ static void SavageLeaveVT(int scrnIndex, int flags)
+     SavagePtr psav = SAVPTR(pScrn);
+     vgaRegPtr vgaSavePtr = &hwp->SavedReg;
+     SavageRegPtr SavageSavePtr = &psav->SavedReg;
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+     ScreenPtr pScreen;
+ #endif
+ 
+     TRACE(("SavageLeaveVT(%d)\n", flags));
+     gpScrn = pScrn;
+ 
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+     if (psav->directRenderingEnabled) {
+         pScreen = screenInfo.screens[scrnIndex];
+         DRILock(pScreen, 0);
+@@ -2459,7 +2459,7 @@ static void SavageWriteMode(ScrnInfoPtr pScrn, vgaRegPtr vgaSavePtr,
+     
+     TRACE(("SavageWriteMode(%x)\n", restore->mode));
+ 
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+     if (psav->directRenderingEnabled) {
+         DRILock(screenInfo.screens[pScrn->scrnIndex], 0);
+         psav->LockHeld = 1;
+@@ -2652,7 +2652,7 @@ static void SavageWriteMode(ScrnInfoPtr pScrn, vgaRegPtr vgaSavePtr,
+ 	SavageSetGBD(pScrn);
+ 
+ 
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+     	if (psav->directRenderingEnabled)
+     	    DRIUnlock(screenInfo.screens[pScrn->scrnIndex]);
+     	psav->LockHeld = 0;
+@@ -2908,7 +2908,7 @@ static void SavageWriteMode(ScrnInfoPtr pScrn, vgaRegPtr vgaSavePtr,
+     vgaHWProtect(pScrn, FALSE);
+ 
+ 
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+     if (psav->directRenderingEnabled)
+         DRIUnlock(screenInfo.screens[pScrn->scrnIndex]);
+     psav->LockHeld = 0;
+@@ -3114,7 +3114,7 @@ static void SavageUnmapMem(ScrnInfoPtr pScrn, int All)
+     return;
+ }
+ 
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+ static Bool SavageCheckAvailableRamFor3D(ScrnInfoPtr pScrn)
+ {
+     SavagePtr psav = SAVPTR(pScrn);
+@@ -3258,7 +3258,7 @@ static Bool SavageScreenInit(int scrnIndex, ScreenPtr pScreen,
+ 
+     vgaHWBlankScreen(pScrn, TRUE);
+ 
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+     if (!xf86ReturnOptValBool(psav->Options, OPTION_DRI, TRUE)) {
+ 	psav->directRenderingEnabled = FALSE;
+ 	xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+@@ -3472,7 +3472,7 @@ static Bool SavageScreenInit(int scrnIndex, ScreenPtr pScreen,
+     if (xf86DPMSInit(pScreen, SavageDPMS, 0) == FALSE)
+ 	xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "DPMS initialization failed\n");
+ 
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+     if (psav->directRenderingEnabled) {
+         /* complete the DRI setup.*/
+         psav->directRenderingEnabled = SAVAGEDRIFinishScreenInit(pScreen);
+@@ -3503,7 +3503,7 @@ static Bool SavageScreenInit(int scrnIndex, ScreenPtr pScreen,
+     }
+ #endif
+ 
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+     if ((psav->directRenderingEnabled) && (!psav->bDisableXvMC)) {
+         if (SAVAGEInitMC(pScreen))
+             xf86DrvMsg(pScrn->scrnIndex,X_CONFIG,"XvMC is enabled\n");
+@@ -3979,7 +3979,7 @@ static Bool SavageCloseScreen(int scrnIndex, ScreenPtr pScreen)
+ 
+     TRACE(("SavageCloseScreen\n"));
+ 
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+     if (psav->directRenderingEnabled) {
+         SAVAGEDRICloseScreen(pScreen);
+ 	/* reset shadow values */
+diff --git a/src/savage_driver.h b/src/savage_driver.h
+index 6c6dda8..7b7e01d 100644
+--- a/src/savage_driver.h
++++ b/src/savage_driver.h
+@@ -70,7 +70,11 @@
+ #include "savage_regs.h"
+ #include "savage_vbe.h"
+ 
+-#ifdef XF86DRI
++#ifndef XF86DRI
++#undef SAVAGEDRI
++#endif
++
++#ifdef SAVAGEDRI
+ #define _XF86DRI_SERVER_
+ #include "savage_dripriv.h"
+ #include "savage_dri.h"
+@@ -457,7 +461,7 @@ typedef struct _Savage {
+      int                 overlayDepth;
+      int			primStreamBpp;
+ 
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+     int 		LockHeld;
+     Bool 		directRenderingEnabled;
+     DRIInfoPtr 		pDRIInfo;
+@@ -547,7 +551,7 @@ typedef struct _Savage {
+ #define writescan savagewritescan
+ 
+ /* add for support DRI */
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+ 
+ #define SAVAGE_FRONT	0x1
+ #define SAVAGE_BACK	0x2
+diff --git a/src/savage_exa.c b/src/savage_exa.c
+index 4fe43e5..613100b 100644
+--- a/src/savage_exa.c
++++ b/src/savage_exa.c
+@@ -15,7 +15,7 @@
+ #include "savage_bci.h"
+ #include "savage_streams.h"
+ 
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+ #define _XF86DRI_SERVER_
+ #include "savage_dri.h"
+ #endif
+@@ -441,7 +441,7 @@ SavageUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int
+     int i, j, dwords, queue, Bpp;
+     unsigned int cmd;
+     CARD32 * srcp;
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+     unsigned int dst_pitch;
+     unsigned int dst_yoffset;
+     int agp_possible;
+@@ -451,7 +451,7 @@ SavageUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int
+ 
+     Bpp = pDst->drawable.bitsPerPixel / 8;
+ 
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+     /* Test for conditions for AGP Mastered Image Transfer (MIT). AGP memory
+        needs to be available, the XVideo AGP needs to be enabled, the 
+        framebuffer destination must be a multiple of 32 bytes, and the source
+@@ -508,7 +508,7 @@ SavageUploadToScreen(PixmapPtr pDst, int x, int y, int w, int h, char *src, int
+             return TRUE;
+         }
+     }
+-#endif /* XF86DRI */
++#endif /* SAVAGEDRI */
+ 
+     /* If we reach here, AGP transfer is not possible, or failed to drmMap() */
+     psav->sbd_offset = exaGetPixmapOffset(pDst);
+diff --git a/src/savage_video.c b/src/savage_video.c
+index 5f08a18..b5a6330 100644
+--- a/src/savage_video.c
++++ b/src/savage_video.c
+@@ -247,7 +247,7 @@ typedef struct {
+    void         *video_planarmem;		/* opaque memory management information structure */
+    CARD32       video_planarbuf; 		/* offset in video memory of planar YV12 buffer */
+    
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+    Bool         tried_agp;			/* TRUE if AGP allocation has been tried */
+    CARD32	agpBase;			/* Physical address of aperture base */
+    CARD32	agpBufferOffset;		/* Offset of buffer in AGP memory, or 0 if unavailable */
+@@ -1047,7 +1047,7 @@ SavageStopVideo(ScrnInfoPtr pScrn, pointer data, Bool shutdown)
+       /*SavageClipVWindow(pScrn);*/
+  	SavageStreamsOff( pScrn );
+ 
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+ 	if (pPriv->agpBufferMap != NULL) {
+ 	    SAVAGEDRIServerPrivatePtr pSAVAGEDRIServer = psav->DRIServerInfo;
+ 
+@@ -1978,7 +1978,7 @@ SavagePutImage(
+ 
+     /* Check whether AGP buffers can be allocated. If not, fall back to ordinary
+        upload to framebuffer (slower) */
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+     if (!pPriv->tried_agp && !psav->IsPCI && psav->drmFD > 0 && psav->DRIServerInfo != NULL) {
+ 	SAVAGEDRIServerPrivatePtr pSAVAGEDRIServer = psav->DRIServerInfo;
+         
+@@ -2014,7 +2014,7 @@ SavagePutImage(
+ 	    pPriv->agpBufferOffset = 0;
+ 	}
+     }
+-#endif /* XF86DRI */
++#endif /* SAVAGEDRI */
+ 
+ 
+     /* Buffer for final packed frame */
+@@ -2060,7 +2060,7 @@ SavagePutImage(
+ 	offsetV += tmp;
+ 	nlines = ((((y2 + 0xffff) >> 16) + 1) & ~1) - top;
+         if (S3_SAVAGE4_SERIES(psav->Chipset) && psav->BCIforXv && (npixels & 0xF) == 0 && pPriv->video_planarbuf != 0) {
+-#ifdef XF86DRI
++#ifdef SAVAGEDRI
+             if (pPriv->agpBufferMap != NULL) {
+ 		/* Using copy to AGP memory */
+ 		SavageCopyPlanarDataBCI(
+@@ -2073,7 +2073,7 @@ SavagePutImage(
+ 		    pPriv->agpBase + pPriv->agpBufferOffset,
+ 		    srcPitch, srcPitch2, dstPitch, nlines, npixels, TRUE);
+             } else
+-#endif /* XF86DRI */
++#endif /* SAVAGEDRI */
+             {
+ 		/* Using ordinary copy to framebuffer */
+ 		SavageCopyPlanarDataBCI(
+-- 
+1.7.7.4
+
diff --git a/xorg-x11-drv-savage.spec b/xorg-x11-drv-savage.spec
index e0b8f5d..191f57c 100644
--- a/xorg-x11-drv-savage.spec
+++ b/xorg-x11-drv-savage.spec
@@ -5,13 +5,15 @@
 Summary:   Xorg X11 savage video driver
 Name:      xorg-x11-drv-savage
 Version:   2.3.3
-Release:   6%{?dist}
+Release:   7%{?dist}
 URL:       http://www.x.org
 License: MIT
 Group:     User Interface/X Hardware Support
 
 Source0:   ftp://ftp.x.org/pub/individual/driver/%{tarball}-%{version}.tar.bz2
 
+Patch01:   0001-Untangle-XF86DRI-from-the-driver-specific-DRI-define.patch
+
 ExcludeArch: s390 s390x
 
 BuildRequires: xorg-x11-server-devel >= 1.10.99.902
@@ -26,6 +28,7 @@ X.Org X11 savage video driver.
 
 %prep
 %setup -q -n %{tarball}-%{version}
+%patch01 -p1
 
 %build
 %configure --disable-static --disable-dri
@@ -49,6 +52,9 @@ rm -rf $RPM_BUILD_ROOT
 %{_mandir}/man4/savage.4*
 
 %changelog
+* Wed Jan 04 2012 Peter Hutterer <peter.hutterer at redhat.com> 2.3.3-7
+- Add hack to allow building with --disable-dri
+
 * Wed Jan 04 2012 Peter Hutterer <peter.hutterer at redhat.com> - 2.3.3-6
 - Rebuild for server 1.12
 


More information about the scm-commits mailing list