openchrome doesn't build if you have an xserver with DRI compiled in,

but you disable dri on in the driver build and don't have the via_drm.h
it wants in dri mode. Work around this by changing the #define used to
an openchrome only one, instead of overloading the XF86DRI identifier.

Also disable the DRI build unconditionally.

This is needed here since we don't provide the via DRM module, and i'm
moving libdrm over to using the kernel headers (instead of libdrms own
private copy of same... This is why kernel modules should be developed
in kernel). We won't provide a via drm driver until it is re-written,
since it is full of linuxisms (like futex).

ok matthieu@, discussed with a few. tested by grange@ to prove it was a
no-op functionality wise.
This commit is contained in:
oga 2009-01-08 20:28:57 +00:00
parent 3780b5d731
commit 90bf659960
13 changed files with 64 additions and 66 deletions

View File

@ -1,9 +1,7 @@
# $OpenBSD: Makefile.bsd-wrapper,v 1.1 2008/07/12 12:54:02 matthieu Exp $
# $OpenBSD: Makefile.bsd-wrapper,v 1.2 2009/01/08 20:28:57 oga Exp $
.include <bsd.xconf.mk>
.if ${XENOCARA_BUILD_DRI:L} != "yes"
CONFIGURE_ARGS+= --disable-dri
.endif
.include <bsd.xorg.mk>

View File

@ -2,6 +2,12 @@
#include "xorg-server.h"
/* Enable DRI driver support */
#undef CHROMEDRI
/* Enable developmental DRI driver support */
#undef CHROMEDRI_DEVEL
/* Enable debug support */
#undef HAVE_DEBUG
@ -77,12 +83,6 @@
/* Build support for Exa */
#undef VIA_HAVE_EXA
/* Enable DRI driver support */
#undef XF86DRI
/* Enable developmental DRI driver support */
#undef XF86DRI_DEVEL
/* Enable libpciaccess */
#undef XSERVER_LIBPCIACCESS

View File

@ -21076,12 +21076,12 @@ echo "${ECHO_T}yes" >&6
fi
cat >>confdefs.h <<\_ACEOF
#define XF86DRI 1
#define CHROMEDRI 1
_ACEOF
cat >>confdefs.h <<\_ACEOF
#define XF86DRI_DEVEL 1
#define CHROMEDRI_DEVEL 1
_ACEOF
case "$host_cpu" in

View File

@ -110,8 +110,8 @@ AC_MSG_RESULT([$DRI])
AM_CONDITIONAL(DRI, test x$DRI = xyes)
if test "$DRI" = yes; then
PKG_CHECK_MODULES(DRI, [libdrm xf86driproto])
AC_DEFINE(XF86DRI,1,[Enable DRI driver support])
AC_DEFINE(XF86DRI_DEVEL,1,[Enable developmental DRI driver support])
AC_DEFINE(CHROMEDRI,1,[Enable DRI driver support])
AC_DEFINE(CHROMEDRI_DEVEL,1,[Enable developmental DRI driver support])
case "$host_cpu" in
i*86)
XVMC=yes ;;

View File

@ -14,7 +14,7 @@
@SET_MAKE@
# $Id: Makefile.in,v 1.3 2008/11/03 20:37:24 matthieu Exp $
# $Id: Makefile.in,v 1.4 2009/01/08 20:28:57 oga Exp $
#
# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
#

View File

@ -127,7 +127,7 @@ viaFlushPCI(ViaCommandBuffer * buf)
buf->has3dState = FALSE;
}
#ifdef XF86DRI
#ifdef CHROMEDRI
/*
* Flush the command buffer using DRM. If in PCI mode, we can bypass DRM,
* but not for command buffers that contain 3D engine state, since then
@ -180,7 +180,7 @@ viaFlushDRIEnabled(ViaCommandBuffer * cb)
int
viaSetupCBuffer(ScrnInfoPtr pScrn, ViaCommandBuffer * buf, unsigned size)
{
#ifdef XF86DRI
#ifdef CHROMEDRI
VIAPtr pVia = VIAPTR(pScrn);
#endif
@ -196,7 +196,7 @@ viaSetupCBuffer(ScrnInfoPtr pScrn, ViaCommandBuffer * buf, unsigned size)
buf->rindex = 0;
buf->has3dState = FALSE;
buf->flushFunc = viaFlushPCI;
#ifdef XF86DRI
#ifdef CHROMEDRI
if (pVia->directRenderingEnabled) {
buf->flushFunc = viaFlushDRIEnabled;
}
@ -1214,7 +1214,7 @@ viaCheckUpload(ScrnInfoPtr pScrn, Via3DState * v3d)
forceUpload = (pVia->lastToUpload != v3d);
pVia->lastToUpload = v3d;
#ifdef XF86DRI
#ifdef CHROMEDRI
if (pVia->directRenderingEnabled) {
volatile drm_via_sarea_t *saPriv = (drm_via_sarea_t *)
DRIGetSAREAPrivate(pScrn->pScreen);
@ -1511,7 +1511,7 @@ viaExpandablePixel(int format)
formatType == PICT_TYPE_ABGR || formatType == PICT_TYPE_ARGB);
}
#ifdef XF86DRI
#ifdef CHROMEDRI
static int
viaAccelDMADownload(ScrnInfoPtr pScrn, unsigned long fbOffset,
@ -1957,7 +1957,7 @@ viaExaCheckComposite(int op, PicturePtr pSrcPicture,
static Bool
viaIsAGP(VIAPtr pVia, PixmapPtr pPix, unsigned long *offset)
{
#ifdef XF86DRI
#ifdef CHROMEDRI
unsigned long offs;
if (pVia->directRenderingEnabled && !pVia->IsPCI) {
@ -2144,7 +2144,7 @@ viaInitExa(ScreenPtr pScreen)
pExa->Copy = viaExaCopy;
pExa->DoneCopy = viaExaDoneSolidCopy;
#ifdef XF86DRI
#ifdef CHROMEDRI
if (pVia->directRenderingEnabled) {
#ifdef linux
if ((pVia->drmVerMajor > 2) ||
@ -2219,7 +2219,7 @@ viaInitExa(ScreenPtr pScreen)
pExa->accel.Copy = viaExaCopy;
pExa->accel.DoneCopy = viaExaDoneSolidCopy;
#ifdef XF86DRI
#ifdef CHROMEDRI
if (pVia->directRenderingEnabled) {
#ifdef linux
if ((pVia->drmVerMajor > 2) ||
@ -2301,7 +2301,7 @@ viaInitAccel(ScreenPtr pScreen)
*/
nPOTSupported = TRUE;
#ifdef XF86DRI
#ifdef CHROMEDRI
nPOTSupported = ((!pVia->directRenderingEnabled) ||
(pVia->drmVerMajor > 2) ||
((pVia->drmVerMajor == 2) && (pVia->drmVerMinor >= 11)));
@ -2310,7 +2310,7 @@ viaInitAccel(ScreenPtr pScreen)
pVia->nPOT[1] = nPOTSupported;
#ifdef VIA_HAVE_EXA
#ifdef XF86DRI
#ifdef CHROMEDRI
pVia->texAddr = NULL;
pVia->dBounce = NULL;
pVia->scratchAddr = NULL;
@ -2354,7 +2354,7 @@ viaInitAccel(ScreenPtr pScreen)
* XAA may get slow for some undetermined reason.
*/
#ifdef XF86DRI
#ifdef CHROMEDRI
if (pVia->directRenderingEnabled) {
pVia->driSize = (pVia->FBFreeEnd - pVia->FBFreeStart) / 2;
maxY = pScrn->virtualY + (pVia->driSize / pVia->Bpl);
@ -2397,7 +2397,7 @@ viaExitAccel(ScreenPtr pScreen)
#ifdef VIA_HAVE_EXA
if (pVia->useEXA) {
#ifdef XF86DRI
#ifdef CHROMEDRI
if (pVia->directRenderingEnabled) {
if (pVia->texAddr) {
drmCommandWrite(pVia->drmFD, DRM_VIA_FREEMEM,
@ -2445,7 +2445,7 @@ viaFinishInitAccel(ScreenPtr pScreen)
VIAPtr pVia = VIAPTR(pScrn);
#ifdef VIA_HAVE_EXA
#ifdef XF86DRI
#ifdef CHROMEDRI
int size, ret;
if (pVia->directRenderingEnabled && pVia->useEXA) {

View File

@ -42,7 +42,7 @@
#include "via_video.h"
#include "via.h"
#ifdef XF86DRI
#ifdef CHROMEDRI
#include "dri.h"
#endif
#include "via_vgahw.h"
@ -390,7 +390,7 @@ static const char *cfbSymbols[] = {
#endif
#ifdef XFree86LOADER
#ifdef XF86DRI
#ifdef CHROMEDRI
static const char *drmSymbols[] = {
"drmAddBufs",
"drmAddMap",
@ -493,7 +493,7 @@ VIASetup(pointer module, pointer opts, int *errmaj, int *errmin)
vbeSymbols,
i2cSymbols,
ddcSymbols,
#ifdef XF86DRI
#ifdef CHROMEDRI
drmSymbols,
driSymbols,
#endif
@ -718,7 +718,7 @@ VIAProbe(DriverPtr drv, int flags)
} /* VIAProbe */
#endif /* !XSERVER_LIBPCIACCESS */
#ifdef XF86DRI
#ifdef CHROMEDRI
static void
kickVblank(ScrnInfoPtr pScrn)
{
@ -1842,7 +1842,7 @@ VIAEnterVT(int scrnIndex, int flags)
if (!pVia->IsSecondary)
viaRestoreVideo(pScrn);
#ifdef XF86DRI
#ifdef CHROMEDRI
if (pVia->directRenderingEnabled) {
kickVblank(pScrn);
VIADRIRingBufferInit(pScrn);
@ -1858,7 +1858,7 @@ VIAEnterVT(int scrnIndex, int flags)
viaAccelSyncMarker(pScrn);
}
#ifdef XF86DRI
#ifdef CHROMEDRI
if (pVia->directRenderingEnabled) {
DRIUnlock(screenInfo.screens[scrnIndex]);
}
@ -1877,7 +1877,7 @@ VIALeaveVT(int scrnIndex, int flags)
DEBUG(xf86DrvMsg(scrnIndex, X_INFO, "VIALeaveVT\n"));
#ifdef XF86DRI
#ifdef CHROMEDRI
if (pVia->directRenderingEnabled) {
volatile drm_via_sarea_t *saPriv = (drm_via_sarea_t *)
DRIGetSAREAPrivate(pScrn->pScreen);
@ -1893,7 +1893,7 @@ VIALeaveVT(int scrnIndex, int flags)
if (pVia->Chipset != VIA_K8M890 && pVia->Chipset != VIA_P4M900)
hwp->writeSeq(hwp, 0x1A, pVia->SavedReg.SR1A | 0x40);
#ifdef XF86DRI
#ifdef CHROMEDRI
if (pVia->directRenderingEnabled) {
VIADRIRingBufferCleanup(pScrn);
viaDRIOffscreenSave(pScrn);
@ -2573,7 +2573,7 @@ VIAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
return FALSE;
}
#ifdef XF86DRI
#ifdef CHROMEDRI
pVia->directRenderingEnabled = VIADRIScreenInit(pScreen);
#endif
@ -2653,7 +2653,7 @@ VIAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "- Color maps etc. set up\n"));
pVia->agpDMA = FALSE;
#ifdef XF86DRI
#ifdef CHROMEDRI
if (pVia->directRenderingEnabled)
pVia->directRenderingEnabled = VIADRIFinishScreenInit(pScreen);
@ -2672,14 +2672,14 @@ VIAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
if (pVia->NoAccel) {
memset(pVia->FBBase, 0x00, pVia->videoRambytes);
} else {
#ifdef XF86DRI
#ifdef CHROMEDRI
if (pVia->directRenderingEnabled)
DRILock(screenInfo.screens[scrnIndex], 0);
#endif
viaAccelFillRect(pScrn, pScrn->frameX0, pScrn->frameY0,
pScrn->displayWidth, pScrn->virtualY, 0x00000000);
viaAccelSyncMarker(pScrn);
#ifdef XF86DRI
#ifdef CHROMEDRI
if (pVia->directRenderingEnabled)
DRIUnlock(screenInfo.screens[scrnIndex]);
#endif
@ -2848,7 +2848,7 @@ VIACloseScreen(int scrnIndex, ScreenPtr pScreen)
/* Is the display currently visible? */
if (pScrn->vtSema) {
#ifdef XF86DRI
#ifdef CHROMEDRI
if (pVia->directRenderingEnabled)
DRILock(screenInfo.screens[scrnIndex], 0);
#endif
@ -2869,7 +2869,7 @@ VIACloseScreen(int scrnIndex, ScreenPtr pScreen)
if (pVia->VQEnable)
viaDisableVQ(pScrn);
}
#ifdef XF86DRI
#ifdef CHROMEDRI
if (pVia->directRenderingEnabled)
VIADRICloseScreen(pScreen);
#endif
@ -2969,14 +2969,14 @@ VIASwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
DEBUG(xf86DrvMsg(scrnIndex, X_INFO, "VIASwitchMode\n"));
#ifdef XF86DRI
#ifdef CHROMEDRI
if (pVia->directRenderingEnabled)
DRILock(screenInfo.screens[scrnIndex], 0);
#endif
viaAccelSync(pScrn);
#ifdef XF86DRI
#ifdef CHROMEDRI
if (pVia->directRenderingEnabled)
VIADRIRingBufferCleanup(pScrn);
#endif
@ -2986,7 +2986,7 @@ VIASwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
ret = VIAWriteMode(pScrn, mode);
#ifdef XF86DRI
#ifdef CHROMEDRI
if (pVia->directRenderingEnabled) {
kickVblank(pScrn);
VIADRIRingBufferInit(pScrn);

View File

@ -70,7 +70,7 @@
#include <pciaccess.h>
#endif
#ifdef XF86DRI
#ifdef CHROMEDRI
#define _XF86DRI_SERVER_
#include "sarea.h"
#include "dri.h"
@ -139,7 +139,7 @@ typedef struct {
Bool b3DRegsInitialized;
} ViaSharedRec, *ViaSharedPtr;
#ifdef XF86DRI
#ifdef CHROMEDRI
#define VIA_XVMC_MAX_BUFFERS 2
#define VIA_XVMC_MAX_CONTEXTS 4
@ -291,7 +291,7 @@ typedef struct _VIA {
int exaScratchSize;
char * scratchAddr;
Bool noComposite;
#ifdef XF86DRI
#ifdef CHROMEDRI
drm_via_mem_t scratchAGPBuffer;
drm_via_mem_t texAGPBuffer;
unsigned texOffset;
@ -325,7 +325,7 @@ typedef struct _VIA {
Bool HasSecondary;
Bool SAMM;
#ifdef XF86DRI
#ifdef CHROMEDRI
Bool directRenderingEnabled;
Bool XvMCEnabled;
DRIInfoPtr pDRIInfo;
@ -457,7 +457,7 @@ void VIAInitLinear(ScreenPtr pScreen);
/* In via_xwmc.c */
#ifdef XF86DRI
#ifdef CHROMEDRI
/* Basic init and exit functions */
void ViaInitXVMC(ScreenPtr pScreen);
void ViaCleanupXVMC(ScrnInfoPtr pScrn, XF86VideoAdaptorPtr *XvAdaptors, int XvAdaptorCount);
@ -473,7 +473,7 @@ unsigned long viaXvMCPutImageSize(ScrnInfoPtr pScrn);
/* via_i2c.c */
void ViaI2CInit(ScrnInfoPtr pScrn);
#ifdef XF86DRI
#ifdef CHROMEDRI
Bool VIADRIScreenInit(ScreenPtr pScreen);
void VIADRICloseScreen(ScreenPtr pScreen);
Bool VIADRIFinishScreenInit(ScreenPtr pScreen);

View File

@ -31,14 +31,14 @@
#include "via.h"
#ifdef XF86DRI
#ifdef CHROMEDRI
#include "xf86drm.h"
#endif
#include "via_driver.h"
#include "via_priv.h"
#include "via_swov.h"
#ifdef XF86DRI
#ifdef CHROMEDRI
#include "via_drm.h"
#endif
@ -88,7 +88,7 @@ VIAFreeLinear(VIAMemPtr mem)
mem->pool = 0;
return;
case 2:
#ifdef XF86DRI
#ifdef CHROMEDRI
if (drmCommandWrite(mem->drm_fd, DRM_VIA_FREEMEM,
&mem->drm, sizeof(drm_via_mem_t)) < 0)
ErrorF("DRM module failed free.\n");
@ -134,7 +134,7 @@ viaOffScreenLinear(VIAMemPtr mem, ScrnInfoPtr pScrn, unsigned long size)
int
VIAAllocLinear(VIAMemPtr mem, ScrnInfoPtr pScrn, unsigned long size)
{
#ifdef XF86DRI
#ifdef CHROMEDRI
VIAPtr pVia = VIAPTR(pScrn);
int ret;

View File

@ -26,7 +26,7 @@
#ifndef _VIA_PRIV_H_
#define _VIA_PRIV_H_ 1
#ifdef XF86DRI
#ifdef CHROMEDRI
#include "via_drm.h"
#endif
#ifdef VIA_HAVE_EXA
@ -141,7 +141,7 @@ typedef struct
typedef struct {
unsigned long base; /* Offset into fb */
int pool; /* Pool we drew from */
#ifdef XF86DRI
#ifdef CHROMEDRI
int drm_fd; /* Fd in DRM mode */
drm_via_mem_t drm; /* DRM management object */
#endif

View File

@ -32,14 +32,14 @@
#include "xf86fbman.h"
#include "via.h"
#ifdef XF86DRI
#ifdef CHROMEDRI
#include "xf86drm.h"
#endif
#include "via_driver.h"
#include "via_priv.h"
#include "via_swov.h"
#ifdef XF86DRI
#ifdef CHROMEDRI
#include "via_drm.h"
#endif
#include "via_vgahw.h"

View File

@ -508,7 +508,7 @@ viaExitVideo(ScrnInfoPtr pScrn)
DBG_DD(ErrorF(" via_video.c : viaExitVideo : \n"));
#ifdef XF86DRI
#ifdef CHROMEDRI
ViaCleanupXVMC(pScrn, viaAdaptPtr, XV_ADAPT_NUM);
#endif
@ -558,7 +558,7 @@ viaInitVideo(ScreenPtr pScreen)
num_new = 0;
pVia->useDmaBlit = FALSE;
#ifdef XF86DRI
#ifdef CHROMEDRI
pVia->useDmaBlit = pVia->directRenderingEnabled &&
((pVia->Chipset == VIA_CLE266) ||
(pVia->Chipset == VIA_KM400) ||
@ -611,7 +611,7 @@ viaInitVideo(ScreenPtr pScreen)
if (num_adaptors) {
xf86XVScreenInit(pScreen, allAdaptors, num_adaptors);
#ifdef XF86DRI
#ifdef CHROMEDRI
ViaInitXVMC(pScreen);
#endif
viaSetColorSpace(pVia, 0, 0, 0, 0, TRUE);
@ -905,7 +905,7 @@ viaSetupAdaptors(ScreenPtr pScreen, XF86VideoAdaptorPtr ** adaptors)
}
usedPorts += j;
#ifdef XF86DRI
#ifdef CHROMEDRI
viaXvMCInitXv(pScrn, viaAdaptPtr[i]);
#endif
@ -1123,7 +1123,7 @@ nv12cp(unsigned char *dst,
src + w * h, w >> 1, w >> 1, dstPitch, h >> 1);
}
#ifdef XF86DRI
#ifdef CHROMEDRI
static int
viaDmaBlitImage(VIAPtr pVia,
@ -1324,7 +1324,7 @@ viaPutImage(ScrnInfoPtr pScrn,
dstPitch = pVia->swov.SWDevice.dwPitch;
if (pVia->useDmaBlit) {
#ifdef XF86DRI
#ifdef CHROMEDRI
if (viaDmaBlitImage(pVia, pPriv, buf,
(unsigned char *)pVia->swov.SWDevice.
lpSWOverlaySurface[pVia->dwFrameNum & 1] -
@ -1526,7 +1526,7 @@ viaQueryImageAttributes(ScrnInfoPtr pScrn,
break;
case FOURCC_XVMC:
*h = (*h + 1) & ~1;
#ifdef XF86DRI
#ifdef CHROMEDRI
size = viaXvMCPutImageSize(pScrn);
#else
size = 0;

View File

@ -34,7 +34,7 @@
#include "xf86fbman.h"
#include "regionstr.h"
#ifdef XF86DRI
#ifdef CHROMEDRI
#include "via.h"
#include "via_drm.h"