summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2009-11-05 15:40:20 -0800
committerEric Anholt <eric@anholt.net>2009-11-05 16:02:02 -0800
commitdbb68168dc909ab2ec1d935322c3fd8581e666f1 (patch)
tree37b193b0d41a6529c9c546e5f8672ab63917c018
parent4c8e783d84d2c14c8a1638b6a12307c0164d3e31 (diff)
Revert "configure: make --disable-dri work even if the server supports DRI"
This reverts commit a851139c2141f6da370186148f2836e18b2acf83. It broke the build, and I don't see why we should be supporting this anyway. Conflicts: configure.ac src/Makefile.am
-rw-r--r--configure.ac36
-rw-r--r--src/Makefile.am4
-rw-r--r--src/i810.h8
-rw-r--r--src/i810_accel.c4
-rw-r--r--src/i810_driver.c36
-rw-r--r--src/i830.h4
6 files changed, 61 insertions, 31 deletions
diff --git a/configure.ac b/configure.ac
index 0a69b670..2348a7a7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -79,7 +79,7 @@ AC_ARG_ENABLE(kms-only, AC_HELP_STRING([--enable-kms-only],
XORG_DRIVER_CHECK_EXT(XINERAMA, xineramaproto)
XORG_DRIVER_CHECK_EXT(RANDR, randrproto)
XORG_DRIVER_CHECK_EXT(RENDER, renderproto)
-XORG_DRIVER_CHECK_EXT(XF86DRI, xextproto x11 xf86driproto glproto)
+XORG_DRIVER_CHECK_EXT(XF86DRI, xextproto x11)
XORG_DRIVER_CHECK_EXT(DPMSExtension, xextproto)
# Checks for pkg-config packages
@@ -93,15 +93,37 @@ AM_CONDITIONAL(HAVE_XEXTPROTO_71, [ test "$HAVE_XEXTPROTO_71" = "yes" ])
sdkdir=$(pkg-config --variable=sdkdir xorg-server)
+save_CFLAGS="$CFLAGS"
+CFLAGS="$XORG_CFLAGS $DRI_CFLAGS $DRM_CFLAGS"
+CPPFLAGS="$XORG_CFLAGS $DRI_CFLAGS $DRM_CFLAGS"
+AC_MSG_CHECKING([whether to include DRI support])
if test x$DRI != xno; then
- AC_CHECK_FILES([${sdkdir}/dri.h ${sdkdir}/sarea.h ${sdkdir}/dristruct.h],
- [DRI="yes"
- AC_DEFINE(HAVE_DRI,1,[Enable DRI driver support])],
- [DRI="no"])
+ AC_CHECK_FILE([${sdkdir}/dri.h],
+ [have_dri_h="yes"], [have_dri_h="no"])
+ AC_CHECK_FILE([${sdkdir}/sarea.h],
+ [have_sarea_h="yes"], [have_sarea_h="no"])
+ AC_CHECK_FILE([${sdkdir}/dristruct.h],
+ [have_dristruct_h="yes"], [have_dristruct_h="no"])
fi
-AM_CONDITIONAL(DRI, test x$DRI = xyes)
AC_MSG_CHECKING([whether to include DRI support])
+if test x$DRI = xauto; then
+ if test "$have_dri_h" = yes -a \
+ "$have_sarea_h" = yes -a \
+ "$have_dristruct_h" = yes; then
+ DRI="yes"
+ else
+ DRI="no"
+ fi
+fi
AC_MSG_RESULT([$DRI])
+CFLAGS="$save_CFLAGS $DEBUGFLAGS"
+
+AM_CONDITIONAL(DRI, test x$DRI = xyes)
+if test "$DRI" = yes; then
+ PKG_CHECK_MODULES(DRI, [xf86driproto glproto])
+ AC_DEFINE(XF86DRI,1,[Enable DRI driver support])
+ AC_DEFINE(XF86DRI_DEVEL,1,[Enable developmental DRI driver support])
+fi
AM_CONDITIONAL(VIDEO_DEBUG, test x$VIDEO_DEBUG = xyes)
if test "$VIDEO_DEBUG" = yes; then
@@ -125,6 +147,8 @@ if test "$KMS_ONLY" = yes; then
AC_DEFINE(KMS_ONLY,1,[Assume KMS support])
fi
+AC_SUBST([DRI_CFLAGS])
+
DRIVER_NAME=intel
AC_SUBST([DRIVER_NAME])
AC_SUBST([moduledir])
diff --git a/src/Makefile.am b/src/Makefile.am
index d8e02ffb..99a613da 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -26,7 +26,7 @@ SUBDIRS = xvmc bios_reader reg_dumper render_program
# _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 = @CWARNFLAGS@ @XORG_CFLAGS@ @DRM_CFLAGS@ \
+AM_CFLAGS = @CWARNFLAGS@ @XORG_CFLAGS@ @DRM_CFLAGS@ @DRI_CFLAGS@ \
@PCIACCESS_CFLAGS@ -I$(top_srcdir)/uxa -I$(top_srcdir)/src/render_program
intel_drv_la_LTLIBRARIES = intel_drv.la
@@ -99,6 +99,8 @@ EXTRA_DIST = \
if DRI
intel_drv_la_SOURCES += \
$(INTEL_DRI_SRCS)
+intel_drv_la_LIBADD += \
+ $(DRI_LIBS)
endif
if XVMC
diff --git a/src/i810.h b/src/i810.h
index db368825..93b8b760 100644
--- a/src/i810.h
+++ b/src/i810.h
@@ -52,7 +52,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "xorg-server.h"
#include <pciaccess.h>
-#ifdef HAVE_DRI
+#ifdef XF86DRI
#include "xf86drm.h"
#include "sarea.h"
#define _XF86DRI_SERVER_
@@ -229,9 +229,9 @@ typedef struct _I810Rec {
I810ReadByteFunc readStandard;
Bool directRenderingDisabled; /* DRI disabled in PreInit */
- Bool directRenderingEnabled; /* false if HAVE_DRI not defined. */
+ Bool directRenderingEnabled; /* false if XF86DRI not defined. */
-#ifdef HAVE_DRI
+#ifdef XF86DRI
int LockHeld;
DRIInfoPtr pDRIInfo;
int drmSubFD;
@@ -272,7 +272,7 @@ typedef struct _I810Rec {
#define I810_SELECT_BACK 1
#define I810_SELECT_DEPTH 2
-#ifdef HAVE_DRI
+#ifdef XF86DRI
extern Bool I810DRIScreenInit(ScreenPtr pScreen);
extern void I810DRICloseScreen(ScreenPtr pScreen);
extern Bool I810DRIFinishScreenInit(ScreenPtr pScreen);
diff --git a/src/i810_accel.c b/src/i810_accel.c
index 94842650..ae4a6544 100644
--- a/src/i810_accel.c
+++ b/src/i810_accel.c
@@ -213,7 +213,7 @@ I810WaitLpRing(ScrnInfoPtr pScrn, int n, int timeout_millis)
start);
I810PrintErrorState(pScrn);
ErrorF("space: %d wanted %d\n", ring->space, n);
-#ifdef HAVE_DRI
+#ifdef XF86DRI
if (pI810->directRenderingEnabled) {
DRIUnlock(screenInfo.screens[pScrn->scrnIndex]);
DRICloseScreen(screenInfo.screens[pScrn->scrnIndex]);
@@ -245,7 +245,7 @@ I810Sync(ScrnInfoPtr pScrn)
if (I810_DEBUG & (DEBUG_VERBOSE_ACCEL | DEBUG_VERBOSE_SYNC))
ErrorF("I810Sync\n");
-#ifdef HAVE_DRI
+#ifdef XF86DRI
/* VT switching tries to do this.
*/
if (!pI810->LockHeld && pI810->directRenderingEnabled) {
diff --git a/src/i810_driver.c b/src/i810_driver.c
index 398244e2..68e45bb6 100644
--- a/src/i810_driver.c
+++ b/src/i810_driver.c
@@ -72,7 +72,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "i810.h"
#include "i830.h"
-#ifdef HAVE_DRI
+#ifdef XF86DRI
#include "dri.h"
#endif
@@ -280,7 +280,7 @@ int I810_DEBUG = (0
#endif
#ifndef I830_ONLY
-#ifdef HAVE_DRI
+#ifdef XF86DRI
static int i810_pitches[] = {
512,
1024,
@@ -651,7 +651,7 @@ I810PreInit(ScrnInfoPtr pScrn, int flags)
}
}
-#ifdef HAVE_DRI
+#ifdef XF86DRI
pI810->directRenderingDisabled =
!xf86ReturnOptValBool(pI810->Options, OPTION_DRI, TRUE);
@@ -852,7 +852,7 @@ I810PreInit(ScrnInfoPtr pScrn, int flags)
i = xf86ValidateModes(pScrn, pScrn->monitor->Modes,
pScrn->display->modes, clockRanges,
-#ifndef HAVE_DRI
+#ifndef XF86DRI
0, 320, 1600, 64 * pScrn->bitsPerPixel,
#else
i810_pitches, 0, 0, 64 * pScrn->bitsPerPixel,
@@ -908,7 +908,7 @@ I810PreInit(ScrnInfoPtr pScrn, int flags)
pI810->allowPageFlip=FALSE;
enable = xf86ReturnOptValBool(pI810->Options, OPTION_PAGEFLIP, FALSE);
-#ifdef HAVE_DRI
+#ifdef XF86DRI
if (!pI810->directRenderingDisabled) {
pI810->allowPageFlip = enable;
if (pI810->allowPageFlip == TRUE)
@@ -946,7 +946,7 @@ I810PreInit(ScrnInfoPtr pScrn, int flags)
pI810->numSurfaces = 0;
}
-#ifdef HAVE_DRI
+#ifdef XF86DRI
/* Load the dri module if requested. */
if (xf86ReturnOptValBool(pI810->Options, OPTION_DRI, FALSE)) {
xf86LoadSubModule(pScrn, "dri");
@@ -1662,7 +1662,7 @@ I810ModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
if (!I810SetMode(pScrn, mode))
return FALSE;
-#ifdef HAVE_DRI
+#ifdef XF86DRI
if (pI810->directRenderingEnabled) {
DRILock(screenInfo.screens[pScrn->scrnIndex], 0);
pI810->LockHeld = 1;
@@ -1671,7 +1671,7 @@ I810ModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
DoRestore(pScrn, &hwp->ModeReg, &pI810->ModeReg, FALSE);
-#ifdef HAVE_DRI
+#ifdef XF86DRI
if (pI810->directRenderingEnabled) {
DRIUnlock(screenInfo.screens[pScrn->scrnIndex]);
pI810->LockHeld = 0;
@@ -1943,7 +1943,7 @@ I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
* memory. Wonder if this is going to be a problem...
*/
-#ifdef HAVE_DRI
+#ifdef XF86DRI
/*
* Setup DRI after visuals have been established, but before fbScreenInit
* is called. fbScreenInit will eventually call into the drivers
@@ -2011,7 +2011,7 @@ I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
xf86SetBlackWhitePixels(pScreen);
-#ifdef HAVE_DRI
+#ifdef XF86DRI
if (pI810->LpRing->mem.Start == 0 && pI810->directRenderingEnabled) {
pI810->directRenderingEnabled = FALSE;
driFrom = X_PROBED;
@@ -2089,7 +2089,7 @@ I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
I810InitVideo(pScreen);
-#ifdef HAVE_DRI
+#ifdef XF86DRI
if (pI810->directRenderingEnabled) {
/* Now that mi, fb, drm and others have done their thing,
* complete the DRI setup.
@@ -2139,7 +2139,7 @@ I810SwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
* If lockups on mode switch are still seen revisit this code. (EE)
*/
-# ifdef HAVE_DRI
+# ifdef XF86DRI
if (pI810->directRenderingEnabled) {
if (I810_DEBUG & DEBUG_VERBOSE_DRI)
ErrorF("calling dri lock\n");
@@ -2154,7 +2154,7 @@ I810SwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
}
I810Restore(pScrn);
-# ifdef HAVE_DRI
+# ifdef XF86DRI
if (pI810->directRenderingEnabled) {
if (!I810DRILeave(pScrn))
return FALSE;
@@ -2228,7 +2228,7 @@ I810EnterVT(int scrnIndex, int flags)
{
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
-#ifdef HAVE_DRI
+#ifdef XF86DRI
I810Ptr pI810 = I810PTR(pScrn);
#endif
@@ -2238,7 +2238,7 @@ I810EnterVT(int scrnIndex, int flags)
if (!I810BindGARTMemory(pScrn)) {
return FALSE;
}
-#ifdef HAVE_DRI
+#ifdef XF86DRI
if (!I810DRIEnter(pScrn)) {
return FALSE;
}
@@ -2266,7 +2266,7 @@ I810LeaveVT(int scrnIndex, int flags)
if (I810_DEBUG & DEBUG_VERBOSE_DRI)
ErrorF("\n\n\nLeave VT\n");
-#ifdef HAVE_DRI
+#ifdef XF86DRI
if (pI810->directRenderingEnabled) {
if (I810_DEBUG & DEBUG_VERBOSE_DRI)
ErrorF("calling dri lock\n");
@@ -2284,7 +2284,7 @@ I810LeaveVT(int scrnIndex, int flags)
if (!I810UnbindGARTMemory(pScrn))
return;
-#ifdef HAVE_DRI
+#ifdef XF86DRI
if (!I810DRILeave(pScrn))
return;
#endif
@@ -2309,7 +2309,7 @@ I810CloseScreen(int scrnIndex, ScreenPtr pScreen)
I810Restore(pScrn);
vgaHWLock(hwp);
}
-#ifdef HAVE_DRI
+#ifdef XF86DRI
if (pI810->directRenderingEnabled) {
I810DRICloseScreen(pScreen);
pI810->directRenderingEnabled = FALSE;
diff --git a/src/i830.h b/src/i830.h
index 81504faa..7d6a9ff7 100644
--- a/src/i830.h
+++ b/src/i830.h
@@ -61,6 +61,10 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "xorg-server.h"
#include <pciaccess.h>
+#include "xf86drm.h"
+#include "sarea.h"
+#define _XF86DRI_SERVER_
+#include "dri.h"
#include "GL/glxint.h"
#include "i830_dri.h"
#include "intel_bufmgr.h"