summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configs/linux-dri10
-rw-r--r--include/GL/internal/dri_interface.h5
-rw-r--r--src/mesa/drivers/dri/Makefile2
-rw-r--r--src/mesa/drivers/dri/Makefile.template11
-rw-r--r--src/mesa/drivers/dri/dri_client/Makefile1
-rw-r--r--src/mesa/drivers/dri/dri_client/XF86dri.c2
-rw-r--r--src/mesa/drivers/dri/dri_client/dri_util.c178
-rw-r--r--src/mesa/drivers/dri/dri_client/dri_util.h19
-rw-r--r--src/mesa/drivers/dri/dri_client/imports/glxclient.h330
-rw-r--r--src/mesa/drivers/dri/ffb/Makefile89
-rw-r--r--src/mesa/drivers/dri/ffb/ffb_xmesa.c18
-rw-r--r--src/mesa/drivers/dri/gamma/Makefile83
-rw-r--r--src/mesa/drivers/dri/i810/Makefile83
-rw-r--r--src/mesa/drivers/dri/i810/i810ioctl.c12
-rw-r--r--src/mesa/drivers/dri/i810/i810screen.c2
-rw-r--r--src/mesa/drivers/dri/i810/server/i810_dri.h2
-rw-r--r--src/mesa/drivers/dri/i830/Makefile2
-rw-r--r--src/mesa/drivers/dri/mach64/Makefile83
-rw-r--r--src/mesa/drivers/dri/mach64/mach64_context.h2
-rw-r--r--src/mesa/drivers/dri/mach64/mach64_screen.c7
-rw-r--r--src/mesa/drivers/dri/mga/Makefile89
-rw-r--r--src/mesa/drivers/dri/mga/mga_xmesa.c2
-rw-r--r--src/mesa/drivers/dri/r128/Makefile84
-rw-r--r--src/mesa/drivers/dri/r128/r128_ioctl.c10
-rw-r--r--src/mesa/drivers/dri/r128/r128_screen.c10
-rw-r--r--src/mesa/drivers/dri/r200/Makefile92
-rw-r--r--src/mesa/drivers/dri/r200/r200_context.c1
-rw-r--r--src/mesa/drivers/dri/r200/r200_screen.c2
-rw-r--r--src/mesa/drivers/dri/radeon/Makefile117
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_screen.c2
-rw-r--r--src/mesa/drivers/dri/radeon/radeon_screen.h2
-rw-r--r--src/mesa/drivers/dri/sis/Makefile82
-rw-r--r--src/mesa/drivers/dri/tdfx/Makefile80
-rw-r--r--src/mesa/drivers/dri/unichrome/Makefile82
-rw-r--r--src/mesa/drivers/dri/unichrome/via_context.c6
-rw-r--r--src/mesa/drivers/dri/unichrome/via_context.h4
-rw-r--r--src/mesa/drivers/dri/unichrome/via_dri.h2
-rw-r--r--src/mesa/drivers/dri/unichrome/via_screen.c2
-rw-r--r--src/mesa/drivers/dri/unichrome/via_screen.h2
39 files changed, 235 insertions, 1377 deletions
diff --git a/configs/linux-dri b/configs/linux-dri
index 1fa60eb093..70c71e5812 100644
--- a/configs/linux-dri
+++ b/configs/linux-dri
@@ -30,5 +30,11 @@ DRIVER_DIRS = dri
PROGRAM_DIRS =
WINDOW_SYSTEM=dri
-#DRI_DIRS = dri_client gamma i810 i830 mach64 mga r128 r200 radeon sis tdfx
-DRI_DIRS = dri_client i830
+# This kindof sucks - we only need the header files from here:
+#
+DRM_SOURCE_PATH=/home/progs/drm
+
+# Only savage missing:
+#
+DRI_DIRS = dri_client ffb gamma i810 i830 mach64 mga r128 r200 radeon sis tdfx unichrome
+
diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h
index 109b4ee845..14b3751484 100644
--- a/include/GL/internal/dri_interface.h
+++ b/include/GL/internal/dri_interface.h
@@ -35,6 +35,9 @@
* \author Ian Romanick <idr@us.ibm.com>
*/
+#ifndef DRI_INTERFACE_H
+#define DRI_INTERFACE_H
+
/* FIXME: With a small amount of work, these two includes can be removed. */
#include <X11/Xlib.h>
#include <GL/glx.h>
@@ -497,3 +500,5 @@ struct __DRIdrawableRec {
*/
unsigned swap_interval;
};
+
+#endif
diff --git a/src/mesa/drivers/dri/Makefile b/src/mesa/drivers/dri/Makefile
index 43731c0050..4d7b08ec0d 100644
--- a/src/mesa/drivers/dri/Makefile
+++ b/src/mesa/drivers/dri/Makefile
@@ -14,7 +14,9 @@ $(LIB_DIR):
subdirs:
+ echo $(DRI_DIRS)
@for dir in $(DRI_DIRS) ; do \
+ echo $$dir ; \
(cd $$dir ; make) || exit 1; \
done
diff --git a/src/mesa/drivers/dri/Makefile.template b/src/mesa/drivers/dri/Makefile.template
index 33bd22e6e5..250259785b 100644
--- a/src/mesa/drivers/dri/Makefile.template
+++ b/src/mesa/drivers/dri/Makefile.template
@@ -21,7 +21,6 @@ else
WINOBJ=
WINLIB=-L$(MESA)/src/glx/mini
MINIGLX_INCLUDES = -I$(TOP)/src/glx/mini
-MINIGLX_SOURCES =
INCLUDES = $(MINIGLX_INCLUDES) \
-I$(DRM_SOURCE_PATH)/shared \
$(SHARED_INCLUDES)
@@ -32,12 +31,17 @@ OBJECTS = $(C_SOURCES:.c=.o) \
endif
+
+
+
### Include directories
SHARED_INCLUDES = \
-I. \
-I../common \
-Iserver \
+ -I$(DRM_SOURCE_PATH)/shared \
-I$(TOP)/include \
+ -I$(TOP)/include/GL/internal \
-I$(TOP)/src/mesa \
-I$(TOP)/src/mesa/main \
-I$(TOP)/src/mesa/glapi \
@@ -59,7 +63,7 @@ SHARED_INCLUDES = \
##### TARGETS #####
-default: depend $(LIB_DIR)/$(LIBNAME)
+default: depend symlinks $(LIB_DIR)/$(LIBNAME)
#$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile
@@ -74,7 +78,6 @@ $(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile ../Makefil
-
# Run 'make depend' to update the dependencies if you change
# what's included by any source file.
depend: $(C_SOURCES) $(ASM_SOURCES)
@@ -90,6 +93,6 @@ tags:
# Remove .o and backup files
clean:
- -rm -f *.o */*.o *~ *.o *~ *.so server/*.o
+ -rm -f *.o */*.o *~ *.o *~ *.so server/*.o $(SYMLINKS)
include depend
diff --git a/src/mesa/drivers/dri/dri_client/Makefile b/src/mesa/drivers/dri/dri_client/Makefile
index 14ba1948b2..930e50504f 100644
--- a/src/mesa/drivers/dri/dri_client/Makefile
+++ b/src/mesa/drivers/dri/dri_client/Makefile
@@ -23,6 +23,7 @@ OBJECTS = $(C_SOURCES:.c=.o)
INCLUDES = \
-I$(TOP)/include \
+ -I$(TOP)/include/GL/internal \
-I$(TOP)/src/mesa \
-I$(TOP)/src/mesa/main \
-I$(TOP)/src/mesa/glapi \
diff --git a/src/mesa/drivers/dri/dri_client/XF86dri.c b/src/mesa/drivers/dri/dri_client/XF86dri.c
index ea14b7a070..82ffb30355 100644
--- a/src/mesa/drivers/dri/dri_client/XF86dri.c
+++ b/src/mesa/drivers/dri/dri_client/XF86dri.c
@@ -607,7 +607,6 @@ Bool XF86DRIGetDeviceInfo(dpy, screen, hFrameBuffer,
return True;
}
-#if 0
Bool XF86DRIOpenFullScreen(dpy, screen, drawable)
Display* dpy;
int screen;
@@ -633,4 +632,3 @@ Bool XF86DRICloseFullScreen(dpy, screen, drawable)
(void) drawable;
return True;
}
-#endif
diff --git a/src/mesa/drivers/dri/dri_client/dri_util.c b/src/mesa/drivers/dri/dri_client/dri_util.c
index 428472873e..08f3fee181 100644
--- a/src/mesa/drivers/dri/dri_client/dri_util.c
+++ b/src/mesa/drivers/dri/dri_client/dri_util.c
@@ -312,9 +312,9 @@ static void __driGarbageCollectDrawables(void *drawHash)
* While casting the opaque private pointers associated with the parameters
* into their respective real types it also assures they are not \c NULL.
*/
-static Bool driUnbindContext2(Display *dpy, int scrn,
+static Bool driUnbindContext3(Display *dpy, int scrn,
GLXDrawable draw, GLXDrawable read,
- GLXContext gc)
+ __DRIcontext *ctx)
{
__DRIscreen *pDRIScreen;
__DRIdrawable *pdraw;
@@ -326,10 +326,10 @@ static Bool driUnbindContext2(Display *dpy, int scrn,
/*
** Assume error checking is done properly in glXMakeCurrent before
- ** calling driUnbindContext2.
+ ** calling driUnbindContext3.
*/
- if (gc == NULL || draw == None || read == None) {
+ if (ctx == NULL || draw == None || read == None) {
/* ERROR!!! */
return GL_FALSE;
}
@@ -341,7 +341,7 @@ static Bool driUnbindContext2(Display *dpy, int scrn,
}
psp = (__DRIscreenPrivate *)pDRIScreen->private;
- pcp = (__DRIcontextPrivate *)gc->driContext.private;
+ pcp = (__DRIcontextPrivate *)ctx->private;
pdraw = __driFindDrawable(psp->drawHash, draw);
if (!pdraw) {
@@ -403,59 +403,19 @@ static Bool driUnbindContext2(Display *dpy, int scrn,
* be needed in those places when support for pbuffers and / or pixmaps
* is added. Is it safe to assume that the drawable is a window?
*/
-static Bool driBindContext2(Display *dpy, int scrn,
- GLXDrawable draw, GLXDrawable read,
- GLXContext gc)
+static Bool DoBindContext(Display *dpy,
+ GLXDrawable draw, GLXDrawable read,
+ __DRIcontext *ctx, const __GLcontextModes * modes,
+ __DRIscreenPrivate *psp)
{
- __DRIscreen *pDRIScreen;
__DRIdrawable *pdraw;
__DRIdrawablePrivate *pdp;
__DRIdrawable *pread;
__DRIdrawablePrivate *prp;
- __DRIscreenPrivate *psp;
- __DRIcontextPrivate *pcp;
- const __GLcontextModes *modes;
-
- /*
- ** Assume error checking is done properly in glXMakeCurrent before
- ** calling driBindContext.
- */
-
- if (gc == NULL || draw == None || read == None) {
- /* ERROR!!! */
- return GL_FALSE;
- }
-
- pDRIScreen = __glXFindDRIScreen(dpy, scrn);
-#ifdef DRI_NEW_INTERFACE_ONLY
- if ( (pDRIScreen == NULL) || (pDRIScreen->private == NULL) ) {
- /* ERROR!!! */
- return GL_FALSE;
- }
-#else
- if ( driCompareGLXAPIVersion( 20031201 ) >= 0 ) {
-#endif /* DRI_NEW_INTERFACE_ONLY */
- modes = gc->mode;
-#ifndef DRI_NEW_INTERFACE_ONLY
- }
- else {
- modes = findConfigMode( dpy, scrn, gc->vid, pDRIScreen );
- if ( modes == NULL ) {
- /* ERROR!!! */
- return GL_FALSE;
- }
- }
-
-
- /* findConfigMode will return NULL if the DRI screen or screen private
- * are NULL.
- */
- assert( (pDRIScreen != NULL) && (pDRIScreen->private != NULL) );
-#endif /* DRI_NEW_INTERFACE_ONLY */
+ __DRIcontextPrivate * const pcp = ctx->private;
/* Find the _DRIdrawable which corresponds to the writing GLXDrawable */
- psp = (__DRIscreenPrivate *)pDRIScreen->private;
pdraw = __driFindDrawable(psp->drawHash, draw);
if (!pdraw) {
/* Allocate a new drawable */
@@ -505,7 +465,6 @@ static Bool driBindContext2(Display *dpy, int scrn,
}
/* Bind the drawable to the context */
- pcp = (__DRIcontextPrivate *)gc->driContext.private;
pcp->driDrawablePriv = pdp;
pdp->driContextPriv = pcp;
pdp->refcount++;
@@ -530,6 +489,87 @@ static Bool driBindContext2(Display *dpy, int scrn,
}
+/**
+ * This function takes both a read buffer and a draw buffer. This is needed
+ * for \c glXMakeCurrentReadSGI or GLX 1.3's \c glXMakeContextCurrent
+ * function.
+ */
+static Bool driBindContext3(Display *dpy, int scrn,
+ GLXDrawable draw, GLXDrawable read,
+ __DRIcontext * ctx)
+{
+ __DRIscreen *pDRIScreen;
+
+ /*
+ ** Assume error checking is done properly in glXMakeCurrent before
+ ** calling driBindContext.
+ */
+
+ if (ctx == NULL || draw == None || read == None) {
+ /* ERROR!!! */
+ return GL_FALSE;
+ }
+
+ pDRIScreen = __glXFindDRIScreen(dpy, scrn);
+ if ( (pDRIScreen == NULL) || (pDRIScreen->private == NULL) ) {
+ /* ERROR!!! */
+ return GL_FALSE;
+ }
+
+ return DoBindContext( dpy, draw, read, ctx, ctx->mode,
+ (__DRIscreenPrivate *)pDRIScreen->private );
+}
+
+
+#ifndef DRI_NEW_INTERFACE_ONLY
+/**
+ * This function takes both a read buffer and a draw buffer. This is needed
+ * for \c glXMakeCurrentReadSGI or GLX 1.3's \c glXMakeContextCurrent
+ * function.
+ */
+static Bool driBindContext2(Display *dpy, int scrn,
+ GLXDrawable draw, GLXDrawable read,
+ GLXContext gc)
+{
+ __DRIscreen *pDRIScreen;
+ const __GLcontextModes *modes;
+
+ /*
+ ** Assume error checking is done properly in glXMakeCurrent before
+ ** calling driBindContext.
+ */
+
+ if (gc == NULL || draw == None || read == None) {
+ /* ERROR!!! */
+ return GL_FALSE;
+ }
+
+ pDRIScreen = __glXFindDRIScreen(dpy, scrn);
+ modes = (driCompareGLXAPIVersion( 20040317 ) >= 0)
+ ? gc->driContext.mode
+ : findConfigMode( dpy, scrn, gc->vid, pDRIScreen );
+
+ if ( modes == NULL ) {
+ /* ERROR!!! */
+ return GL_FALSE;
+ }
+
+ /* findConfigMode will return NULL if the DRI screen or screen private
+ * are NULL.
+ */
+ assert( (pDRIScreen != NULL) && (pDRIScreen->private != NULL) );
+
+ return DoBindContext( dpy, draw, read, & gc->driContext, modes,
+ (__DRIscreenPrivate *)pDRIScreen->private );
+}
+
+static Bool driUnbindContext2(Display *dpy, int scrn,
+ GLXDrawable draw, GLXDrawable read,
+ GLXContext gc)
+{
+ return driUnbindContext3(dpy, scrn, draw, read, & gc->driContext);
+}
+
/*
* Simply call bind with the same GLXDrawable for the read and draw buffers.
*/
@@ -550,6 +590,7 @@ static Bool driUnbindContext(Display *dpy, int scrn,
(void) will_rebind;
return driUnbindContext2( dpy, scrn, draw, draw, gc );
}
+#endif /* DRI_NEW_INTERFACE_ONLY */
/*@}*/
@@ -957,6 +998,14 @@ driCreateNewContext(Display *dpy, const __GLcontextModes *modes,
}
pctx->destroyContext = driDestroyContext;
+#ifdef DRI_NEW_INTERFACE_ONLY
+ pctx->bindContext = NULL;
+ pctx->unbindContext = NULL;
+ pctx->bindContext2 = NULL;
+ pctx->unbindContext2 = NULL;
+ pctx->bindContex3 = driBindContext3;
+ pctx->unbindContext3 = driUnbindContext3;
+#else
pctx->bindContext = driBindContext;
pctx->unbindContext = driUnbindContext;
if ( driCompareGLXAPIVersion( 20030606 ) >= 0 ) {
@@ -964,6 +1013,12 @@ driCreateNewContext(Display *dpy, const __GLcontextModes *modes,
pctx->unbindContext2 = driUnbindContext2;
}
+ if ( driCompareGLXAPIVersion( 20040415 ) >= 0 ) {
+ pctx->bindContext3 = driBindContext3;
+ pctx->unbindContext3 = driUnbindContext3;
+ }
+#endif
+
if ( !(*psp->DriverAPI.CreateContext)(modes, pcp, shareCtx) ) {
(void)XF86DRIDestroyContext(dpy, modes->screen, pcp->contextID);
Xfree(pcp);
@@ -1108,6 +1163,22 @@ __driUtilCreateNewScreen(Display *dpy, int scrn, __DRIscreen *psc,
__DRIscreenPrivate *psp;
+#ifdef DRI_NEW_INTERFACE_ONLY
+ if ( internal_api_version < 20040415 ) {
+ fprintf( stderr, "libGL error: libGL.so version (%08u) is too old. "
+ "20040415 or later is required.\n", internal_api_version );
+ return NULL;
+ }
+#else
+ if ( internal_api_version == 20031201 ) {
+ fprintf( stderr, "libGL error: libGL version 20031201 has critical "
+ "binary compatilibity bugs.\nlibGL error: You must upgrade "
+ "to use direct-rendering!\n" );
+ return NULL;
+ }
+#endif /* DRI_NEW_INTERFACE_ONLY */
+
+
window_exists = (PFNGLXWINDOWEXISTSPROC)
glXGetProcAddress( (const GLubyte *) "__glXWindowExists" );
@@ -1200,6 +1271,10 @@ __driUtilCreateNewScreen(Display *dpy, int scrn, __DRIscreen *psc,
#endif
psc->createNewDrawable = driCreateNewDrawable;
psc->getDrawable = driGetDrawable;
+#ifdef DRI_NEW_INTERFACE_ONLY
+ psc->getMSC = driGetMSC;
+ psc->createNewContext = driCreateNewContext;
+#else
if ( driCompareGLXAPIVersion( 20030317 ) >= 0 ) {
psc->getMSC = driGetMSC;
@@ -1207,6 +1282,7 @@ __driUtilCreateNewScreen(Display *dpy, int scrn, __DRIscreen *psc,
psc->createNewContext = driCreateNewContext;
}
}
+#endif
if ( (psp->DriverAPI.InitDriver != NULL)
&& !(*psp->DriverAPI.InitDriver)(psp) ) {
diff --git a/src/mesa/drivers/dri/dri_client/dri_util.h b/src/mesa/drivers/dri/dri_client/dri_util.h
index f189b5a967..4764bbbc66 100644
--- a/src/mesa/drivers/dri/dri_client/dri_util.h
+++ b/src/mesa/drivers/dri/dri_client/dri_util.h
@@ -575,25 +575,6 @@ __driUtilCreateScreen(Display *dpy, int scrn, __DRIscreen *psc,
int numConfigs, __GLXvisualConfig *config,
const struct __DriverAPIRec *driverAPI);
-/** This must be implemented in each driver
- * \deprecated
- */
-extern void *
-__driCreateScreen(Display *dpy, int scrn, __DRIscreen *psc,
- int numConfigs, __GLXvisualConfig *config);
-
-/** This must be implemented in each driver */
-extern void * __driCreateNewScreen( Display *dpy, int scrn, __DRIscreen *psc,
- const __GLcontextModes * modes,
- const __DRIversion * ddx_version, const __DRIversion * dri_version,
- const __DRIversion * drm_version, const __DRIframebuffer * frame_buffer,
- drmAddress pSAREA, int fd, int internal_api_version,
- __GLcontextModes ** driver_modes );
-
-/** This is optionally implemented in each driver */
-extern void
-__driRegisterExtensions( void );
-
/* Test the version of the internal GLX API. Returns a value like strcmp. */
extern int
driCompareGLXAPIVersion( GLuint required_version );
diff --git a/src/mesa/drivers/dri/dri_client/imports/glxclient.h b/src/mesa/drivers/dri/dri_client/imports/glxclient.h
index 317ea01116..74dfe69c95 100644
--- a/src/mesa/drivers/dri/dri_client/imports/glxclient.h
+++ b/src/mesa/drivers/dri/dri_client/imports/glxclient.h
@@ -78,65 +78,7 @@ typedef struct _glapi_table __GLapi;
#ifdef GLX_DIRECT_RENDERING
-/**
- * \name DRI interface structures
- *
- * The following structures define the interface between the GLX client
- * side library and the DRI (direct rendering infrastructure).
- */
-/*@{*/
-typedef struct __DRIdisplayRec __DRIdisplay;
-typedef struct __DRIscreenRec __DRIscreen;
-typedef struct __DRIcontextRec __DRIcontext;
-typedef struct __DRIdrawableRec __DRIdrawable;
-typedef struct __DRIdriverRec __DRIdriver;
-typedef struct __DRIframebufferRec __DRIframebuffer;
-typedef struct __DRIversionRec __DRIversion;
-/*@}*/
-
-extern __DRIscreen *__glXFindDRIScreen(Display *dpy, int scrn);
-
-/**
- * Stored version of some component (i.e., server-side DRI module, kernel-side
- * DRM, etc.).
- *
- * \todo There are several data structures that explicitly store a major
- * version, minor version, and patch level. These structures should
- * be modified to have a \c __DRIversionRec instead.
- */
-struct __DRIversionRec {
- int major; /**< Major version number. */
- int minor; /**< Minor version number. */
- int patch; /**< Patch-level. */
-};
-
-/**
- * Framebuffer information record. Used by libGL to communicate information
- * about the framebuffer to the driver's \c __DRIdisplayRec::createNewScreen
- * function.
- *
- * In XFree86, most of this information is derrived from data returned by
- * calling \c XF86DRIGetDeviceInfo.
- *
- * \sa XF86DRIGetDeviceInfo __DRIdisplayRec::createNewScreen
- * __driUtilCreateNewScreen CallCreateNewScreen
- *
- * \bug This structure could be better named.
- */
-struct __DRIframebufferRec {
- unsigned char *base; /**< Framebuffer base address in the CPU's
- * address space. This value is calculated by
- * calling \c drmMap on the framebuffer handle
- * returned by \c XF86DRIGetDeviceInfo (or a
- * similar function).
- */
- int size; /**< Framebuffer size, in bytes. */
- int stride; /**< Number of bytes from one line to the next. */
- int width; /**< Pixel width of the framebuffer. */
- int height; /**< Pixel height of the framebuffer. */
- int dev_priv_size; /**< Size of the driver's dev-priv structure. */
- void *dev_priv; /**< Pointer to the driver's dev-priv structure. */
-};
+#include <GL/internal/dri_interface.h>
typedef void *(*CreateScreenFunc)(Display *dpy, int scrn, __DRIscreen *psc,
int numConfigs, __GLXvisualConfig *config);
@@ -147,6 +89,7 @@ typedef void *(*CreateNewScreenFunc)(Display *dpy, int scrn, __DRIscreen *psc,
const __DRIframebuffer * frame_buffer, void * pSAREA,
int fd, int internal_api_version, __GLcontextModes ** driver_modes);
+
/**
* Display dependent methods. This structure is initialized during the
* \c driCreateDisplay call.
@@ -183,231 +126,6 @@ struct __DRIdisplayRec {
CreateNewScreenFunc * createNewScreen;
};
-/**
- * Screen dependent methods. This structure is initialized during the
- * \c __DRIdisplayRec::createScreen call.
- */
-struct __DRIscreenRec {
- /**
- * Method to destroy the private DRI screen data.
- */
- void (*destroyScreen)(Display *dpy, int scrn, void *screenPrivate);
-
- /**
- * Method to create the private DRI context data and initialize the
- * context dependent methods.
- *
- * \sa __DRIscreenRec::createNewContext driCreateContext
- * driCreateNewContext
- * \deprecated This function has been replaced by
- * __DRIscreenRec::createNewContext. New drivers will
- * continue to export this method, but it will eventually
- * (in the next XFree86 major relearse) go away.
- */
- void *(*createContext)(Display *dpy, XVisualInfo *vis, void *sharedPrivate,
- __DRIcontext *pctx);
-
- /**
- * Method to create the private DRI drawable data and initialize the
- * drawable dependent methods.
- */
- void *(*createNewDrawable)(Display *dpy, const __GLcontextModes *modes,
- GLXDrawable draw, __DRIdrawable *pdraw,
- int renderType, const int *attrs);
-
- /**
- * Method to return a pointer to the DRI drawable data.
- */
- __DRIdrawable *(*getDrawable)(Display *dpy, GLXDrawable draw,
- void *drawablePrivate);
-
- /**
- * Opaque pointer to private per screen direct rendering data. \c NULL
- * if direct rendering is not supported on this screen. Never
- * dereferenced in libGL.
- */
- void *private;
-
- /**
- * Get the number of vertical refreshes since some point in time before
- * this function was first called (i.e., system start up).
- *
- * \since Internal API version 20030317.
- */
- int (*getMSC)( void *screenPrivate, int64_t *msc );
-
- /**
- * Opaque pointer that points back to the containing
- * \c __GLXscreenConfigs. This data structure is shared with DRI drivers
- * but \c __GLXscreenConfigs is not. However, they are needed by some GLX
- * functions called by DRI drivers.
- *
- * \since Internal API version 20030813.
- */
- void *screenConfigs;
-
- /**
- * Functions associated with MESA_allocate_memory.
- *
- * \since Internal API version 20030815.
- */
- /*@{*/
- void *(*allocateMemory)(Display *dpy, int scrn, GLsizei size,
- GLfloat readfreq, GLfloat writefreq,
- GLfloat priority);
-
- void (*freeMemory)(Display *dpy, int scrn, GLvoid *pointer);
-
- GLuint (*memoryOffset)(Display *dpy, int scrn, const GLvoid *pointer);
- /*@}*/
-
- /**
- * Method to create the private DRI context data and initialize the
- * context dependent methods.
- *
- * \since Internal API version 20031201.
- */
- void * (*createNewContext)(Display *dpy, const __GLcontextModes *modes,
- int render_type,
- void *sharedPrivate, __DRIcontext *pctx);
-};
-
-/**
- * Context dependent methods. This structure is initialized during the
- * \c __DRIscreenRec::createContext call.
- */
-struct __DRIcontextRec {
- /**
- * Method to destroy the private DRI context data.
- */
- void (*destroyContext)(Display *dpy, int scrn, void *contextPrivate);
-
- /**
- * Method to bind a DRI drawable to a DRI graphics context.
- */
- Bool (*bindContext)(Display *dpy, int scrn, GLXDrawable draw,
- GLXContext gc);
-
- /**
- * Method to unbind a DRI drawable to a DRI graphics context.
- */
- Bool (*unbindContext)(Display *dpy, int scrn, GLXDrawable draw,
- GLXContext gc, int will_rebind);
-
- /**
- * Opaque pointer to private per context direct rendering data.
- * \c NULL if direct rendering is not supported on the display or
- * screen used to create this context. Never dereferenced in libGL.
- */
- void *private;
-
- /**
- * Method to bind a DRI drawable to a DRI graphics context.
- *
- * \since Internal API version 20030606.
- */
- Bool (*bindContext2)(Display *dpy, int scrn, GLXDrawable draw,
- GLXDrawable read, GLXContext gc);
-
- /**
- * Method to unbind a DRI drawable to a DRI graphics context.
- *
- * \since Internal API version 20030606.
- */
- Bool (*unbindContext2)(Display *dpy, int scrn, GLXDrawable draw,
- GLXDrawable read, GLXContext gc);
-};
-
-/**
- * Drawable dependent methods. This structure is initialized during the
- * \c __DRIscreenRec::createDrawable call. \c createDrawable is not called
- * by libGL at this time. It's currently used via the dri_util.c utility code
- * instead.
- */
-struct __DRIdrawableRec {
- /**
- * Method to destroy the private DRI drawable data.
- */
- void (*destroyDrawable)(Display *dpy, void *drawablePrivate);
-
- /**
- * Method to swap the front and back buffers.
- */
- void (*swapBuffers)(Display *dpy, void *drawablePrivate);
-
- /**
- * Opaque pointer to private per drawable direct rendering data.
- * \c NULL if direct rendering is not supported on the display or
- * screen used to create this drawable. Never dereferenced in libGL.
- */
- void *private;
-
- /**
- * Get the number of completed swap buffers for this drawable.
- *
- * \since Internal API version 20030317.
- */
- int (*getSBC)(Display *dpy, void *drawablePrivate, int64_t *sbc );
-
- /**
- * Wait for the SBC to be greater than or equal target_sbc.
- *
- * \since Internal API version 20030317.
- */
- int (*waitForSBC)( Display * dpy, void *drawablePriv,
- int64_t target_sbc,
- int64_t * msc, int64_t * sbc );
-
- /**
- * Wait for the MSC to equal target_msc, or, if that has already passed,
- * the next time (MSC % divisor) is equal to remainder. If divisor is
- * zero, the function will return as soon as MSC is greater than or equal
- * to target_msc.
- *
- * \since Internal API version 20030317.
- */
- int (*waitForMSC)( Display * dpy, void *drawablePriv,
- int64_t target_msc, int64_t divisor, int64_t remainder,
- int64_t * msc, int64_t * sbc );
-
- /**
- * Like \c swapBuffers, but does NOT have an implicit \c glFlush. Once
- * rendering is complete, waits until MSC is equal to target_msc, or
- * if that has already passed, waits until (MSC % divisor) is equal
- * to remainder. If divisor is zero, the swap will happen as soon as
- * MSC is greater than or equal to target_msc.
- *
- * \since Internal API version 20030317.
- */
- int64_t (*swapBuffersMSC)(Display *dpy, void *drawablePrivate,
- int64_t target_msc,
- int64_t divisor, int64_t remainder);
-
- /**
- * Enable or disable frame usage tracking.
- *
- * \since Internal API version 20030317.
- */
- int (*frameTracking)(Display *dpy, void *drawablePrivate, Bool enable);
-
- /**
- * Retrieve frame usage information.
- *
- * \since Internal API version 20030317.
- */
- int (*queryFrameTracking)(Display *dpy, void *drawablePrivate,
- int64_t * sbc, int64_t * missedFrames,
- float * lastMissedUsage, float * usage );
-
- /**
- * Used by drivers that implement the GLX_SGI_swap_control or
- * GLX_MESA_swap_control extension.
- *
- * \since Internal API version 20030317.
- */
- unsigned swap_interval;
-};
-
/*
** We keep a linked list of these structures, one per DRI device driver.
@@ -810,16 +528,6 @@ struct __GLXcontextRec {
* drivers should NEVER use this data or even care that it exists.
*/
void * client_state_private;
-
-#ifdef GLX_DIRECT_RENDERING
- /**
- * Pointer to the mode used to create this context. This field replaces
- * the \c vid and \c fbconfigID fields.
- *
- * \since Internal API version 20031201.
- */
- const __GLcontextModes * mode;
-#endif /* GLX_DIRECT_RENDERING */
};
#define __glXSetError(gc,code) \
@@ -1103,41 +811,7 @@ extern char *__glXCombineExtensionStrings( const char *cext_string,
/* Determine the internal API version */
extern int __glXGetInternalVersion(void);
-/**
- * Type of a pointer to \c __glXGetInternalVersion, as returned by
- * \c glXGetProcAddress.
- *
- * \sa __glXGetInternalVersion, glXGetProcAddress
- */
-typedef int (* PFNGLXGETINTERNALVERSIONPROC) ( void );
-
-/**
- * Type of a pointer to \c __glXWindowExists, as returned by
- * \c glXGetProcAddress.
- *
- * \sa __glXWindowExists, glXGetProcAddress
- */
-typedef Bool (* PFNGLXWINDOWEXISTSPROC) (Display *dpy, GLXDrawable draw);
-
/* Get the unadjusted system time */
extern int __glXGetUST( int64_t * ust );
-/**
- * Type of a pointer to \c __glXGetUST, as returned by \c glXGetProcAddress.
- *
- * \sa __glXGetUST, glXGetProcAddress
- */
-typedef int (* PFNGLXGETUSTPROC) ( int64_t * ust );
-
-
-/**
- * Type of pointer to \c __glXCreateContextModes, as returned by
- * \c glXGetProcAddress.
- *
- * \sa _gl_context_modes_create, glXGetProcAddress
- */
-
-typedef __GLcontextModes * (* PFNGLXCREATECONTEXTMODES) ( unsigned count,
- size_t minimum_bytes_per_struct );
-
#endif /* !__GLX_client_h__ */
diff --git a/src/mesa/drivers/dri/ffb/Makefile b/src/mesa/drivers/dri/ffb/Makefile
index 42ed196256..05972ca70f 100644
--- a/src/mesa/drivers/dri/ffb/Makefile
+++ b/src/mesa/drivers/dri/ffb/Makefile
@@ -5,16 +5,6 @@ include $(TOP)/configs/current
LIBNAME = ffb_dri.so
-DEFINES += \
- -D_HAVE_SWRAST=1 \
- -D_HAVE_SWTNL=1 \
- -D_HAVE_SANITY=1 \
- -D_HAVE_CODEGEN=1 \
- -D_HAVE_LIGHTING=1 \
- -D_HAVE_TEXGEN=1 \
- -D_HAVE_USERCLIP=1 \
- -DGLX_DIRECT_RENDERING
-
# not yet
# MINIGLX_SOURCES = server/ffb_dri.c
@@ -40,90 +30,15 @@ DRIVER_SOURCES = \
ffb_tex.c \
ffb_tris.c \
ffb_vb.c \
- ffb_vtxfmt.c \
ffb_xmesa.c
C_SOURCES = \
$(COMMON_SOURCES) \
- $(MINIGLX_SOURCES) \
$(DRIVER_SOURCES)
-# Include directories
-INCLUDE_DIRS = \
- -I. \
- -I../common \
- -Iserver \
- -I$(TOP)/src/glx/mini \
- -I$(TOP)/include \
- -I$(TOP)/src/mesa/drivers/dri/drm/shared \
- -I$(TOP)/src/mesa \
- -I$(TOP)/src/mesa/main \
- -I$(TOP)/src/mesa/glapi \
- -I$(TOP)/src/mesa/math \
- -I$(TOP)/src/mesa/transform \
- -I$(TOP)/src/mesa/shader \
- -I$(TOP)/src/mesa/swrast \
- -I$(TOP)/src/mesa/swrast_setup
-
-# Core Mesa objects
-MESA_MODULES = $(TOP)/src/mesa/mesa.a
-
-# Libraries that the driver shared lib depends on
-LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -lexpat -ldl -lc
-
-
-ifeq ($(WINDOW_SYSTEM),dri)
-WINOBJ=$(MESABUILDDIR)/dri/dri.a
-WINLIB=
-else
-WINOBJ=
-WINLIB=-L$(MESA)/src/glx/mini
-endif
ASM_SOURCES =
-OBJECTS = $(C_SOURCES:.c=.o) \
- $(ASM_SOURCES:.S=.o)
-
-
-##### RULES #####
-
-.c.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-.S.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-
-##### TARGETS #####
-
-default: depend $(LIB_DIR)/$(LIBNAME)
-
-
-$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile
- $(TOP)/bin/mklib -o $(LIBNAME) -noprefix -install $(LIB_DIR) \
- $(WINLIB) $(LIB_DEPS) $(WINOBJ) $(MESA_MODULES) $(OBJECTS)
-
-
-$(SYMLINKS):
- mkdir -p server
- cd server
- rm -f $@ && ln -s ../../radeon/$@ $@
-
-
-depend: $(C_SOURCES) $(ASM_SOURCES)
- touch depend
- $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDE_DIRS) $(C_SOURCES) $(ASM_SOURCES) \
- >& /dev/null
-
-
-# Emacs tags
-tags:
- etags `find . -name \*.[ch]` `find ../include`
-
-
-clean:
- -rm -f *.o server/*.o
-
+include ../Makefile.template
-include depend
+symlinks:
diff --git a/src/mesa/drivers/dri/ffb/ffb_xmesa.c b/src/mesa/drivers/dri/ffb/ffb_xmesa.c
index ae31bfeb03..0fa8675e02 100644
--- a/src/mesa/drivers/dri/ffb/ffb_xmesa.c
+++ b/src/mesa/drivers/dri/ffb/ffb_xmesa.c
@@ -56,6 +56,8 @@
#include "ffb_vtxfmt.h"
#include "ffb_bitmap.h"
+#include "drm_sarea.h"
+
static GLboolean
ffbInitDriver(__DRIscreenPrivate *sPriv)
{
@@ -66,7 +68,7 @@ ffbInitDriver(__DRIscreenPrivate *sPriv)
return GL_FALSE;
/* Allocate the private area. */
- ffbScreen = (ffbScreenPrivate *) Xmalloc(sizeof(ffbScreenPrivate));
+ ffbScreen = (ffbScreenPrivate *) MALLOC(sizeof(ffbScreenPrivate));
if (!ffbScreen)
return GL_FALSE;
@@ -75,7 +77,7 @@ ffbInitDriver(__DRIscreenPrivate *sPriv)
gDRIPriv->hFbcRegs,
gDRIPriv->sFbcRegs,
&gDRIPriv->mFbcRegs)) {
- Xfree(ffbScreen);
+ FREE(ffbScreen);
return GL_FALSE;
}
ffbScreen->regs = (ffb_fbcPtr) gDRIPriv->mFbcRegs;
@@ -86,7 +88,7 @@ ffbInitDriver(__DRIscreenPrivate *sPriv)
gDRIPriv->sDacRegs,
&gDRIPriv->mDacRegs)) {
drmUnmap(gDRIPriv->mFbcRegs, gDRIPriv->sFbcRegs);
- Xfree(ffbScreen);
+ FREE(ffbScreen);
return GL_FALSE;
}
ffbScreen->dac = (ffb_dacPtr) gDRIPriv->mDacRegs;
@@ -98,7 +100,7 @@ ffbInitDriver(__DRIscreenPrivate *sPriv)
&gDRIPriv->mSfb8r)) {
drmUnmap(gDRIPriv->mFbcRegs, gDRIPriv->sFbcRegs);
drmUnmap(gDRIPriv->mDacRegs, gDRIPriv->sDacRegs);
- Xfree(ffbScreen);
+ FREE(ffbScreen);
return GL_FALSE;
}
ffbScreen->sfb8r = (volatile char *) gDRIPriv->mSfb8r;
@@ -110,7 +112,7 @@ ffbInitDriver(__DRIscreenPrivate *sPriv)
drmUnmap(gDRIPriv->mFbcRegs, gDRIPriv->sFbcRegs);
drmUnmap(gDRIPriv->mDacRegs, gDRIPriv->sDacRegs);
drmUnmap(gDRIPriv->mSfb8r, gDRIPriv->sSfb8r);
- Xfree(ffbScreen);
+ FREE(ffbScreen);
return GL_FALSE;
}
ffbScreen->sfb32 = (volatile char *) gDRIPriv->mSfb32;
@@ -123,7 +125,7 @@ ffbInitDriver(__DRIscreenPrivate *sPriv)
drmUnmap(gDRIPriv->mDacRegs, gDRIPriv->sDacRegs);
drmUnmap(gDRIPriv->mSfb8r, gDRIPriv->sSfb8r);
drmUnmap(gDRIPriv->mSfb32, gDRIPriv->sSfb32);
- Xfree(ffbScreen);
+ FREE(ffbScreen);
return GL_FALSE;
}
ffbScreen->sfb64 = (volatile char *) gDRIPriv->mSfb64;
@@ -153,7 +155,7 @@ ffbDestroyScreen(__DRIscreenPrivate *sPriv)
drmUnmap(gDRIPriv->mSfb32, gDRIPriv->sSfb32);
drmUnmap(gDRIPriv->mSfb64, gDRIPriv->sSfb64);
- Xfree(ffbScreen);
+ FREE(ffbScreen);
}
static const struct tnl_pipeline_stage *ffb_pipeline[] = {
@@ -284,7 +286,9 @@ ffbCreateContext(const __GLcontextModes *mesaVis,
ffbDDInitBitmapFuncs(ctx);
ffbInitVB(ctx);
+#if 0
ffbInitTnlModule(ctx);
+#endif
_tnl_destroy_pipeline(ctx);
_tnl_install_pipeline(ctx, ffb_pipeline);
diff --git a/src/mesa/drivers/dri/gamma/Makefile b/src/mesa/drivers/dri/gamma/Makefile
index 1dcd922a43..e72246100c 100644
--- a/src/mesa/drivers/dri/gamma/Makefile
+++ b/src/mesa/drivers/dri/gamma/Makefile
@@ -5,16 +5,6 @@ include $(TOP)/configs/current
LIBNAME = gamma_dri.so
-DEFINES += \
- -D_HAVE_SWRAST=1 \
- -D_HAVE_SWTNL=1 \
- -D_HAVE_SANITY=1 \
- -D_HAVE_CODEGEN=1 \
- -D_HAVE_LIGHTING=1 \
- -D_HAVE_TEXGEN=1 \
- -D_HAVE_USERCLIP=1 \
- -DGLX_DIRECT_RENDERING
-
# Not yet
# MINIGLX_SOURCES = server/gamma_dri.c
@@ -43,79 +33,10 @@ DRIVER_SOURCES = \
C_SOURCES = \
$(COMMON_SOURCES) \
- $(MINIGLX_SOURCES) \
$(DRIVER_SOURCES)
-# Include directories
-INCLUDE_DIRS = \
- -I. \
- -I../common \
- -Iserver \
- -I$(TOP)/src/glx/mini \
- -I$(TOP)/include \
- -I$(DRM_SOURCE_PATH)/shared \
- -I$(TOP)/src/mesa \
- -I$(TOP)/src/mesa/main \
- -I$(TOP)/src/mesa/glapi \
- -I$(TOP)/src/mesa/math \
- -I$(TOP)/src/mesa/transform \
- -I$(TOP)/src/mesa/shader \
- -I$(TOP)/src/mesa/swrast \
- -I$(TOP)/src/mesa/swrast_setup
-
-# Core Mesa objects
-MESA_MODULES = $(TOP)/src/mesa/mesa.a
-
-# Libraries that the driver shared lib depends on
-LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -lexpat -ldl -lc
-
-
-ifeq ($(WINDOW_SYSTEM),dri)
-WINOBJ=$(MESABUILDDIR)/dri/dri.a
-WINLIB=
-else
-WINOBJ=
-WINLIB=-L$(MESA)/src/glx/mini
-endif
-
ASM_SOURCES =
-OBJECTS = $(C_SOURCES:.c=.o) \
- $(ASM_SOURCES:.S=.o)
-
-
-##### RULES #####
-
-.c.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-.S.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-
-##### TARGETS #####
-
-default: depend $(LIB_DIR)/$(LIBNAME)
-
-
-$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile
- $(TOP)/bin/mklib -o $(LIBNAME) -noprefix -install $(LIB_DIR) \
- $(WINLIB) $(LIB_DEPS) $(WINOBJ) $(MESA_MODULES) $(OBJECTS)
-
-
-depend: $(C_SOURCES) $(ASM_SOURCES)
- touch depend
- $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDE_DIRS) $(C_SOURCES) $(ASM_SOURCES) \
- >& /dev/null
-
-
-# Emacs tags
-tags:
- etags `find . -name \*.[ch]` `find ../include`
-
-
-clean:
- -rm -f *.o server/*.o
-
+include ../Makefile.template
-include depend
+symlinks:
diff --git a/src/mesa/drivers/dri/i810/Makefile b/src/mesa/drivers/dri/i810/Makefile
index ab7873a2bc..4f36a33762 100644
--- a/src/mesa/drivers/dri/i810/Makefile
+++ b/src/mesa/drivers/dri/i810/Makefile
@@ -5,16 +5,6 @@ include $(TOP)/configs/current
LIBNAME = i810_dri.so
-DEFINES += \
- -D_HAVE_SWRAST=1 \
- -D_HAVE_SWTNL=1 \
- -D_HAVE_SANITY=1 \
- -D_HAVE_CODEGEN=1 \
- -D_HAVE_LIGHTING=1 \
- -D_HAVE_TEXGEN=1 \
- -D_HAVE_USERCLIP=1 \
- -DGLX_DIRECT_RENDERING
-
# Not yet
# MINIGLX_SOURCES = server/i810_dri.c
@@ -40,79 +30,10 @@ DRIVER_SOURCES = \
C_SOURCES = \
$(COMMON_SOURCES) \
- $(MINIGLX_SOURCES) \
$(DRIVER_SOURCES)
-# Include directories
-INCLUDE_DIRS = \
- -I. \
- -I../common \
- -Iserver \
- -I$(TOP)/src/glx/mini \
- -I$(TOP)/include \
- -I$(DRM_SOURCE_PATH)/shared \
- -I$(TOP)/src/mesa \
- -I$(TOP)/src/mesa/main \
- -I$(TOP)/src/mesa/glapi \
- -I$(TOP)/src/mesa/math \
- -I$(TOP)/src/mesa/transform \
- -I$(TOP)/src/mesa/shader \
- -I$(TOP)/src/mesa/swrast \
- -I$(TOP)/src/mesa/swrast_setup
-
-# Core Mesa objects
-MESA_MODULES = $(TOP)/src/mesa/mesa.a
-
-# Libraries that the driver shared lib depends on
-LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -lexpat -ldl -lc
-
-
-ifeq ($(WINDOW_SYSTEM),dri)
-WINOBJ=$(MESABUILDDIR)/dri/dri.a
-WINLIB=
-else
-WINOBJ=
-WINLIB=-L$(MESA)/src/glx/mini
-endif
-
ASM_SOURCES =
-OBJECTS = $(C_SOURCES:.c=.o) \
- $(ASM_SOURCES:.S=.o)
-
-
-##### RULES #####
-
-.c.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-.S.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-
-##### TARGETS #####
-
-default: depend $(LIB_DIR)/$(LIBNAME)
-
-
-$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile
- $(TOP)/bin/mklib -o $(LIBNAME) -noprefix -install $(LIB_DIR) \
- $(WINLIB) $(LIB_DEPS) $(WINOBJ) $(MESA_MODULES) $(OBJECTS)
-
-
-depend: $(C_SOURCES) $(ASM_SOURCES)
- touch depend
- $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDE_DIRS) $(C_SOURCES) $(ASM_SOURCES) \
- >& /dev/null
-
-
-# Emacs tags
-tags:
- etags `find . -name \*.[ch]` `find ../include`
-
-
-clean:
- -rm -f *.o server/*.o
-
+include ../Makefile.template
-include depend
+symlinks:
diff --git a/src/mesa/drivers/dri/i810/i810ioctl.c b/src/mesa/drivers/dri/i810/i810ioctl.c
index 3d1be4c902..829ad04c7e 100644
--- a/src/mesa/drivers/dri/i810/i810ioctl.c
+++ b/src/mesa/drivers/dri/i810/i810ioctl.c
@@ -91,7 +91,7 @@ static void i810Clear( GLcontext *ctx, GLbitfield mask, GLboolean all,
{
int nr = MIN2(i + I810_NR_SAREA_CLIPRECTS, imesa->numClipRects);
drm_clip_rect_t *box = imesa->pClipRects;
- drm_clip_rect_t *b = imesa->sarea->boxes;
+ drm_clip_rect_t *b = (drm_clip_rect_t *)imesa->sarea->boxes;
int n = 0;
if (!all) {
@@ -156,13 +156,13 @@ void i810CopyBuffer( const __DRIdrawablePrivate *dPriv )
I810_FIREVERTICES( imesa );
LOCK_HARDWARE( imesa );
- pbox = dPriv->pClipRects;
+ pbox = (drm_clip_rect_t *)dPriv->pClipRects;
nbox = dPriv->numClipRects;
for (i = 0 ; i < nbox ; )
{
int nr = MIN2(i + I810_NR_SAREA_CLIPRECTS, dPriv->numClipRects);
- drm_clip_rect_t *b = imesa->sarea->boxes;
+ drm_clip_rect_t *b = (drm_clip_rect_t *)imesa->sarea->boxes;
imesa->sarea->nbox = nr - i;
@@ -204,8 +204,8 @@ void i810PageFlip( const __DRIdrawablePrivate *dPriv )
LOCK_HARDWARE( imesa );
if (dPriv->pClipRects) {
- *imesa->sarea->boxes = dPriv->pClipRects[0];
- imesa->sarea->nbox = 1;
+ imesa->sarea->boxes[0] = dPriv->pClipRects[0];
+ imesa->sarea->nbox = 1;
}
ret = drmCommandNone(imesa->driFd, DRM_I810_FLIP);
if (ret) {
@@ -403,7 +403,7 @@ void i810FlushPrimsLocked( i810ContextPtr imesa )
for (i = 0 ; i < nbox ; )
{
int nr = MIN2(i + I810_NR_SAREA_CLIPRECTS, nbox);
- drm_clip_rect_t *b = sarea->boxes;
+ drm_clip_rect_t *b = (drm_clip_rect_t *)sarea->boxes;
if (imesa->scissor) {
sarea->nbox = 0;
diff --git a/src/mesa/drivers/dri/i810/i810screen.c b/src/mesa/drivers/dri/i810/i810screen.c
index a095b28add..8bb62217a9 100644
--- a/src/mesa/drivers/dri/i810/i810screen.c
+++ b/src/mesa/drivers/dri/i810/i810screen.c
@@ -50,7 +50,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "i810ioctl.h"
#ifndef _SOLO
-#include "glxextensions.h"
+#include "GL/internal/dri_interface.h"
#endif
#ifdef USE_NEW_INTERFACE
diff --git a/src/mesa/drivers/dri/i810/server/i810_dri.h b/src/mesa/drivers/dri/i810/server/i810_dri.h
index 2931988c87..cfca20a95b 100644
--- a/src/mesa/drivers/dri/i810/server/i810_dri.h
+++ b/src/mesa/drivers/dri/i810/server/i810_dri.h
@@ -78,7 +78,7 @@ typedef struct {
unsigned int dirty;
unsigned int nbox;
- drm_clip_rect_t boxes[I810_NR_SAREA_CLIPRECTS];
+ XF86DRIClipRectRec boxes[I810_NR_SAREA_CLIPRECTS];
/* Maintain an LRU of contiguous regions of texture space. If
* you think you own a region of texture memory, and it has an
diff --git a/src/mesa/drivers/dri/i830/Makefile b/src/mesa/drivers/dri/i830/Makefile
index f6ba1fa621..8a75927081 100644
--- a/src/mesa/drivers/dri/i830/Makefile
+++ b/src/mesa/drivers/dri/i830/Makefile
@@ -34,5 +34,7 @@ C_SOURCES = \
ASM_SOURCES =
+
include ../Makefile.template
+symlinks:
diff --git a/src/mesa/drivers/dri/mach64/Makefile b/src/mesa/drivers/dri/mach64/Makefile
index 77cc9420bf..c855f4d882 100644
--- a/src/mesa/drivers/dri/mach64/Makefile
+++ b/src/mesa/drivers/dri/mach64/Makefile
@@ -5,16 +5,6 @@ include $(TOP)/configs/current
LIBNAME = mach64_dri.so
-DEFINES += \
- -D_HAVE_SWRAST=1 \
- -D_HAVE_SWTNL=1 \
- -D_HAVE_SANITY=1 \
- -D_HAVE_CODEGEN=1 \
- -D_HAVE_LIGHTING=1 \
- -D_HAVE_TEXGEN=1 \
- -D_HAVE_USERCLIP=1 \
- -DGLX_DIRECT_RENDERING
-
# Not yet
# MINIGLX_SOURCES = server/mach64_dri.c
@@ -42,79 +32,10 @@ DRIVER_SOURCES = \
C_SOURCES = \
$(COMMON_SOURCES) \
- $(MINIGLX_SOURCES) \
$(DRIVER_SOURCES)
-# Include directories
-INCLUDE_DIRS = \
- -I. \
- -I../common \
- -Iserver \
- -I$(TOP)/src/glx/mini \
- -I$(TOP)/include \
- -I$(DRM_SOURCE_PATH)/shared \
- -I$(TOP)/src/mesa \
- -I$(TOP)/src/mesa/main \
- -I$(TOP)/src/mesa/glapi \
- -I$(TOP)/src/mesa/math \
- -I$(TOP)/src/mesa/transform \
- -I$(TOP)/src/mesa/shader \
- -I$(TOP)/src/mesa/swrast \
- -I$(TOP)/src/mesa/swrast_setup
-
-# Core Mesa objects
-MESA_MODULES = $(TOP)/src/mesa/mesa.a
-
-# Libraries that the driver shared lib depends on
-LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -lexpat -ldl -lc
-
-
-ifeq ($(WINDOW_SYSTEM),dri)
-WINOBJ=$(MESABUILDDIR)/dri/dri.a
-WINLIB=
-else
-WINOBJ=
-WINLIB=-L$(MESA)/src/glx/mini
-endif
-
ASM_SOURCES =
-OBJECTS = $(C_SOURCES:.c=.o) \
- $(ASM_SOURCES:.S=.o)
-
-
-##### RULES #####
-
-.c.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-.S.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-
-##### TARGETS #####
-
-default: depend $(LIB_DIR)/$(LIBNAME)
-
-
-$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile
- $(TOP)/bin/mklib -o $(LIBNAME) -noprefix -install $(LIB_DIR) \
- $(WINLIB) $(LIB_DEPS) $(WINOBJ) $(MESA_MODULES) $(OBJECTS)
-
-
-depend: $(C_SOURCES) $(ASM_SOURCES)
- touch depend
- $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDE_DIRS) $(C_SOURCES) $(ASM_SOURCES) \
- >& /dev/null
-
-
-# Emacs tags
-tags:
- etags `find . -name \*.[ch]` `find ../include`
-
-
-clean:
- -rm -f *.o server/*.o
-
+include ../Makefile.template
-include depend
+symlinks:
diff --git a/src/mesa/drivers/dri/mach64/mach64_context.h b/src/mesa/drivers/dri/mach64/mach64_context.h
index 03b90a4471..e424c0bbbf 100644
--- a/src/mesa/drivers/dri/mach64/mach64_context.h
+++ b/src/mesa/drivers/dri/mach64/mach64_context.h
@@ -116,6 +116,8 @@ typedef struct {
} mach64_vertex;
#endif
+#define CARD32 GLuint /* KW: For building in mesa tree */
+
/* The size of this union is not of relevence:
*/
union mach64_vertex_t {
diff --git a/src/mesa/drivers/dri/mach64/mach64_screen.c b/src/mesa/drivers/dri/mach64/mach64_screen.c
index 6ef16c11b2..4d36369ce9 100644
--- a/src/mesa/drivers/dri/mach64/mach64_screen.c
+++ b/src/mesa/drivers/dri/mach64/mach64_screen.c
@@ -41,7 +41,7 @@
#include "vblank.h"
#ifndef _SOLO
-#include "glxextensions.h"
+#include "GL/internal/dri_interface.h"
#endif
/* Mach64 configuration
@@ -452,6 +452,10 @@ mach64InitDriver( __DRIscreenPrivate *driScreen )
*/
void __driRegisterExtensions( void )
{
+#if 0
+ /* KW: This is handled differently in the other drivers, not sure
+ * what to do here.
+ */
PFNGLXENABLEEXTENSIONPROC glx_enable_extension;
if ( driCompareGLXAPIVersion( 20030317 ) >= 0 ) {
@@ -464,6 +468,7 @@ void __driRegisterExtensions( void )
glx_enable_extension( "GLX_MESA_swap_control", GL_FALSE );
}
}
+#endif
}
#endif
diff --git a/src/mesa/drivers/dri/mga/Makefile b/src/mesa/drivers/dri/mga/Makefile
index 249d810e0c..58c925da48 100644
--- a/src/mesa/drivers/dri/mga/Makefile
+++ b/src/mesa/drivers/dri/mga/Makefile
@@ -5,16 +5,6 @@ include $(TOP)/configs/current
LIBNAME = mga_dri.so
-DEFINES += \
- -D_HAVE_SWRAST=1 \
- -D_HAVE_SWTNL=1 \
- -D_HAVE_SANITY=1 \
- -D_HAVE_CODEGEN=1 \
- -D_HAVE_LIGHTING=1 \
- -D_HAVE_TEXGEN=1 \
- -D_HAVE_USERCLIP=1 \
- -DGLX_DIRECT_RENDERING
-
MINIGLX_SOURCES = server/mga_dri.c
COMMON_SOURCES = \
@@ -30,9 +20,7 @@ DRIVER_SOURCES = \
mgaioctl.c \
mgarender.c \
mgastate.c \
- mgatris.c
-
-FULL_DRIVER_SOURCES = \
+ mgatris.c \
mgapixel.c \
mgaspan.c \
mgatex.c \
@@ -44,80 +32,11 @@ FULL_DRIVER_SOURCES = \
C_SOURCES = \
$(COMMON_SOURCES) \
- $(MINIGLX_SOURCES) \
- $(DRIVER_SOURCES) \
- $(FULL_DRIVER_SOURCES)
-
-# Include directories
-INCLUDE_DIRS = \
- -I. \
- -I../common \
- -Iserver \
- -I$(TOP)/src/glx/mini \
- -I$(TOP)/include \
- -I$(DRM_SOURCE_PATH)/shared \
- -I$(TOP)/src/mesa \
- -I$(TOP)/src/mesa/main \
- -I$(TOP)/src/mesa/glapi \
- -I$(TOP)/src/mesa/math \
- -I$(TOP)/src/mesa/transform \
- -I$(TOP)/src/mesa/shader \
- -I$(TOP)/src/mesa/swrast \
- -I$(TOP)/src/mesa/swrast_setup
-
-# Core Mesa objects
-MESA_MODULES = $(TOP)/src/mesa/mesa.a
-
-# Libraries that the driver shared lib depends on
-LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -lexpat -ldl -lc
-
+ $(DRIVER_SOURCES)
-ifeq ($(WINDOW_SYSTEM),dri)
-WINOBJ=$(MESABUILDDIR)/dri/dri.a
-WINLIB=
-else
-WINOBJ=
-WINLIB=-L$(MESA)/src/glx/mini
-endif
ASM_SOURCES =
-OBJECTS = $(C_SOURCES:.c=.o) \
- $(ASM_SOURCES:.S=.o)
-
-
-##### RULES #####
-
-.c.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-.S.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-
-##### TARGETS #####
-
-default: depend $(LIB_DIR)/$(LIBNAME)
-
-
-$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile
- $(TOP)/bin/mklib -o $(LIBNAME) -noprefix -install $(LIB_DIR) \
- $(WINLIB) $(LIB_DEPS) $(WINOBJ) $(MESA_MODULES) $(OBJECTS)
-
-
-depend: $(C_SOURCES) $(ASM_SOURCES)
- touch depend
- $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDE_DIRS) $(C_SOURCES) $(ASM_SOURCES) \
- >& /dev/null
-
-
-# Emacs tags
-tags:
- etags `find . -name \*.[ch]` `find ../include`
-
-
-clean:
- -rm -f *.o server/*.o
-
+include ../Makefile.template
-include depend
+symlinks:
diff --git a/src/mesa/drivers/dri/mga/mga_xmesa.c b/src/mesa/drivers/dri/mga/mga_xmesa.c
index 0a00b347b3..df7856241f 100644
--- a/src/mesa/drivers/dri/mga/mga_xmesa.c
+++ b/src/mesa/drivers/dri/mga/mga_xmesa.c
@@ -60,7 +60,7 @@
#include "vblank.h"
#ifndef _SOLO
-#include "glxextensions.h"
+#include "GL/internal/dri_interface.h"
#endif
/* MGA configuration
diff --git a/src/mesa/drivers/dri/r128/Makefile b/src/mesa/drivers/dri/r128/Makefile
index 2043498701..bcda0a4d7d 100644
--- a/src/mesa/drivers/dri/r128/Makefile
+++ b/src/mesa/drivers/dri/r128/Makefile
@@ -5,16 +5,6 @@ include $(TOP)/configs/current
LIBNAME = r128_dri.so
-DEFINES += \
- -D_HAVE_SWRAST=1 \
- -D_HAVE_SWTNL=1 \
- -D_HAVE_SANITY=1 \
- -D_HAVE_CODEGEN=1 \
- -D_HAVE_LIGHTING=1 \
- -D_HAVE_TEXGEN=1 \
- -D_HAVE_USERCLIP=1 \
- -DGLX_DIRECT_RENDERING
-
MINIGLX_SOURCES = server/r128_dri.c
COMMON_SOURCES = \
@@ -41,79 +31,11 @@ DRIVER_SOURCES = \
C_SOURCES = \
$(COMMON_SOURCES) \
- $(DRIVER_SOURCES) \
- $(MINIGLX_SOURCES)
-
-# Include directories
-INCLUDE_DIRS = \
- -I. \
- -I../common \
- -Iserver \
- -I$(TOP)/src/glx/mini \
- -I$(TOP)/include \
- -I$(DRM_SOURCE_PATH)/shared \
- -I$(TOP)/src/mesa \
- -I$(TOP)/src/mesa/main \
- -I$(TOP)/src/mesa/glapi \
- -I$(TOP)/src/mesa/math \
- -I$(TOP)/src/mesa/transform \
- -I$(TOP)/src/mesa/shader \
- -I$(TOP)/src/mesa/swrast \
- -I$(TOP)/src/mesa/swrast_setup
-
-# Core Mesa objects
-MESA_MODULES = $(TOP)/src/mesa/mesa.a
-
-# Libraries that the driver shared lib depends on
-LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -lexpat -ldl -lc
-
-
-ifeq ($(WINDOW_SYSTEM),dri)
-WINOBJ=$(MESABUILDDIR)/dri/dri.a
-WINLIB=
-else
-WINOBJ=
-WINLIB=-L$(MESA)/src/glx/mini
-endif
+ $(DRIVER_SOURCES)
ASM_SOURCES =
-OBJECTS = $(C_SOURCES:.c=.o) \
- $(ASM_SOURCES:.S=.o)
-
-
-##### RULES #####
-
-.c.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-.S.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-
-##### TARGETS #####
-
-default: depend $(LIB_DIR)/$(LIBNAME)
-
-
-$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile
- $(TOP)/bin/mklib -o $(LIBNAME) -noprefix -install $(LIB_DIR) \
- $(WINLIB) $(LIB_DEPS) $(WINOBJ) $(MESA_MODULES) $(OBJECTS)
-
-
-depend: $(C_SOURCES) $(ASM_SOURCES)
- touch depend
- $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDE_DIRS) $(C_SOURCES) $(ASM_SOURCES) \
- >& /dev/null
-
-
-# Emacs tags
-tags:
- etags `find . -name \*.[ch]` `find ../include`
-
-
-clean:
- -rm -f *.o server/*.o
+include ../Makefile.template
-include depend
+symlinks:
diff --git a/src/mesa/drivers/dri/r128/r128_ioctl.c b/src/mesa/drivers/dri/r128/r128_ioctl.c
index 6ea8d52965..d9fc02501a 100644
--- a/src/mesa/drivers/dri/r128/r128_ioctl.c
+++ b/src/mesa/drivers/dri/r128/r128_ioctl.c
@@ -44,12 +44,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "vblank.h"
-#ifdef _SOLO
-/* temporary - should really split r128_reg.h into r128_reg.h & r128_macros.h
- * like the radeon */
-#include "r128_macros.h"
-#endif
-
#define R128_TIMEOUT 2048
#define R128_IDLE_RETRY 32
@@ -221,6 +215,7 @@ static void delay( void ) {
#define R128_MAX_OUTSTANDING 2
+
/* Throttle the frame rate -- only allow one pending swap buffers
* request at a time.
* GH: We probably don't want a timeout here, as we can wait as
@@ -235,7 +230,8 @@ static int r128WaitForFrameCompletion( r128ContextPtr rmesa )
int wait = 0;
while ( 1 ) {
- frame = INREG( R128_LAST_FRAME_REG );
+ frame = *(volatile unsigned int *)(R128MMIO + R128_LAST_FRAME_REG);
+
if ( rmesa->sarea->last_frame - frame <= R128_MAX_OUTSTANDING ) {
break;
}
diff --git a/src/mesa/drivers/dri/r128/r128_screen.c b/src/mesa/drivers/dri/r128/r128_screen.c
index f77c325db1..5825e95ef2 100644
--- a/src/mesa/drivers/dri/r128/r128_screen.c
+++ b/src/mesa/drivers/dri/r128/r128_screen.c
@@ -47,7 +47,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "vblank.h"
#ifndef _SOLO
-#include "glxextensions.h"
+#include "GL/internal/dri_interface.h"
#endif
/* R128 configuration
@@ -345,7 +345,12 @@ r128InitDriver( __DRIscreenPrivate *sPriv )
*/
void __driRegisterExtensions( void )
{
- PFNGLXENABLEEXTENSIONPROC glx_enable_extension;
+#if 0
+ /* KW: This is done slightly differently to the other drivers and
+ dri_interface.h doesn't seem to cope.
+ */
+ PFNGLXENABLEEXTENSIONPROC
+ glx_enable_extension;
if ( driCompareGLXAPIVersion( 20030317 ) >= 0 ) {
glx_enable_extension = (PFNGLXENABLEEXTENSIONPROC)
@@ -357,6 +362,7 @@ void __driRegisterExtensions( void )
glx_enable_extension( "GLX_MESA_swap_control", GL_FALSE );
}
}
+#endif
}
#endif
diff --git a/src/mesa/drivers/dri/r200/Makefile b/src/mesa/drivers/dri/r200/Makefile
index 7a3b248c0c..137660b371 100644
--- a/src/mesa/drivers/dri/r200/Makefile
+++ b/src/mesa/drivers/dri/r200/Makefile
@@ -1,21 +1,10 @@
# src/mesa/drivers/dri/r200/Makefile
-# Note, this Makefile requires GNU make
TOP = ../../../../..
include $(TOP)/configs/current
LIBNAME = r200_dri.so
-DEFINES += \
- -D_HAVE_SWRAST=1 \
- -D_HAVE_SWTNL=1 \
- -D_HAVE_SANITY=1 \
- -D_HAVE_CODEGEN=1 \
- -D_HAVE_LIGHTING=1 \
- -D_HAVE_TEXGEN=1 \
- -D_HAVE_USERCLIP=1 \
- -DGLX_DIRECT_RENDERING
-
MINIGLX_SOURCES = server/radeon_dri.c
COMMON_SOURCES = \
@@ -47,96 +36,25 @@ DRIVER_SOURCES = r200_context.c \
r200_vtxfmt_sse.c \
r200_vtxfmt_x86.c
-C_SOURCES = $(COMMON_SOURCES) $(MINIGLX_SOURCES) $(DRIVER_SOURCES)
-
-
-# Include directories
-INCLUDE_DIRS = \
- -I. \
- -I../common \
- -Iserver \
- -I$(TOP)/src/glx/mini \
- -I$(TOP)/include \
- -I$(DRM_SOURCE_PATH)/shared \
- -I$(TOP)/src/mesa \
- -I$(TOP)/src/mesa/main \
- -I$(TOP)/src/mesa/glapi \
- -I$(TOP)/src/mesa/math \
- -I$(TOP)/src/mesa/transform \
- -I$(TOP)/src/mesa/swrast \
- -I$(TOP)/src/mesa/swrast_setup
-
-
-# Core Mesa objects
-MESA_MODULES = $(TOP)/src/mesa/mesa.a
-
-
-# Libraries that the driver shared lib depends on
-LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -lexpat -ldl -lc
-
-
-ifeq ($(WINDOW_SYSTEM),dri)
-WINOBJ=$(MESABUILDDIR)/dri/dri.a
-WINLIB=
-else
-WINOBJ=
-WINLIB=-L$(MESA)/src/glx/mini
-endif
+C_SOURCES = $(COMMON_SOURCES) $(DRIVER_SOURCES)
ASM_SOURCES =
-OBJECTS = $(C_SOURCES:.c=.o) \
- $(ASM_SOURCES:.S=.o)
-
SYMLINKS = \
- server/radeon_common.h \
server/radeon_dri.c \
server/radeon_dri.h \
server/radeon.h \
server/radeon_macros.h \
- server/radeon_reg.h \
- server/radeon_sarea.h \
-
-
-
-##### RULES #####
-
-.c.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-.S.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
+ server/radeon_reg.h
##### TARGETS #####
-default: depend $(SYMLINKS) $(LIB_DIR)/$(LIBNAME)
-
-$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile
- $(TOP)/bin/mklib -o $(LIBNAME) -noprefix -install $(LIB_DIR) \
- $(WINLIB) $(LIB_DEPS) $(WINOBJ) $(MESA_MODULES) $(OBJECTS)
+include ../Makefile.template
$(SYMLINKS):
mkdir -p server
- cd server
- rm -f $@ && ln -s ../../radeon/$@ $@
-
-
-depend: $(C_SOURCES) $(ASM_SOURCES)
- touch depend
- $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDE_DIRS) $(C_SOURCES) $(ASM_SOURCES) \
- >& /dev/null
-
-
-# Emacs tags
-tags:
- etags `find . -name \*.[ch]` `find ../include`
-
-
-clean:
- -rm -f *.o server/*.o
- -rm -f $(SYMLINKS)
+ for i in $(SYMLINKS) ; do rm -f $$i && test -f ../radeon/$$i && ln -s ../../radeon/$$i $$i ; done
+symlinks: $(SYMLINKS)
-include depend
diff --git a/src/mesa/drivers/dri/r200/r200_context.c b/src/mesa/drivers/dri/r200/r200_context.c
index fa37d2b2e2..95c7c32362 100644
--- a/src/mesa/drivers/dri/r200/r200_context.c
+++ b/src/mesa/drivers/dri/r200/r200_context.c
@@ -128,6 +128,7 @@ static const char * const card_extensions[] =
"GL_ARB_texture_env_combine",
"GL_ARB_texture_env_dot3",
"GL_ARB_texture_mirrored_repeat",
+ "GL_ARB_vertex_buffer_object",
"GL_EXT_blend_logic_op",
"GL_EXT_blend_minmax",
"GL_EXT_blend_subtract",
diff --git a/src/mesa/drivers/dri/r200/r200_screen.c b/src/mesa/drivers/dri/r200/r200_screen.c
index d115ef20fc..c5c29dd587 100644
--- a/src/mesa/drivers/dri/r200/r200_screen.c
+++ b/src/mesa/drivers/dri/r200/r200_screen.c
@@ -51,7 +51,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "utils.h"
#include "vblank.h"
#ifndef _SOLO
-#include "glxextensions.h"
+#include "GL/internal/dri_interface.h"
#endif
/* R200 configuration
diff --git a/src/mesa/drivers/dri/radeon/Makefile b/src/mesa/drivers/dri/radeon/Makefile
index 2037d59101..e6f7c29d1a 100644
--- a/src/mesa/drivers/dri/radeon/Makefile
+++ b/src/mesa/drivers/dri/radeon/Makefile
@@ -4,30 +4,7 @@
TOP = ../../../../..
include $(TOP)/configs/current
-ifeq ($(EMBEDDED),true)
-LIBNAME = radeon_es_dri.so
-DEFINES += \
- -D_EMBEDDED \
- -D_HAVE_SWRAST=0 \
- -D_HAVE_SWTNL=0 \
- -D_HAVE_SANITY=0 \
- -D_HAVE_CODEGEN=0 \
- -D_HAVE_LIGHTING=0 \
- -D_HAVE_TEXGEN=0 \
- -D_HAVE_USERCLIP=0 \
- -DGLX_DIRECT_RENDERING
-else
LIBNAME = radeon_dri.so
-DEFINES += \
- -D_HAVE_SWRAST=1 \
- -D_HAVE_SWTNL=1 \
- -D_HAVE_SANITY=1 \
- -D_HAVE_CODEGEN=1 \
- -D_HAVE_LIGHTING=1 \
- -D_HAVE_TEXGEN=1 \
- -D_HAVE_USERCLIP=1 \
- -DGLX_DIRECT_RENDERING
-endif
MINIGLX_SOURCES = server/radeon_dri.c
@@ -45,16 +22,7 @@ DRIVER_SOURCES = \
radeon_lock.c \
radeon_screen.c \
radeon_state.c \
- radeon_state_init.c
-
-SUBSET_DRIVER_SOURCES = \
- radeon_subset_bitmap.c \
- radeon_subset_readpix.c \
- radeon_subset_select.c \
- radeon_subset_tex.c \
- radeon_subset_vtx.c
-
-FULL_DRIVER_SOURCES = \
+ radeon_state_init.c \
radeon_tex.c \
radeon_texmem.c \
radeon_texstate.c \
@@ -69,91 +37,14 @@ FULL_DRIVER_SOURCES = \
radeon_vtxfmt_sse.c \
radeon_vtxfmt_x86.c
-ifeq ($(EMBEDDED),true)
-C_SOURCES = \
- $(COMMON_SOURCES) \
- $(MINIGLX_SOURCES) \
- $(DRIVER_SOURCES) \
- $(SUBSET_DRIVER_SOURCES)
-else
C_SOURCES = \
$(COMMON_SOURCES) \
- $(MINIGLX_SOURCES) \
- $(DRIVER_SOURCES) \
- $(FULL_DRIVER_SOURCES)
-endif
-
-
-# Include directories
-INCLUDE_DIRS = \
- -I. \
- -I../common \
- -Iserver \
- -I$(TOP)/src/glx/mini \
- -I$(TOP)/include \
- -I$(DRM_SOURCE_PATH)/shared \
- -I$(TOP)/src/mesa \
- -I$(TOP)/src/mesa/main \
- -I$(TOP)/src/mesa/glapi \
- -I$(TOP)/src/mesa/math \
- -I$(TOP)/src/mesa/transform \
- -I$(TOP)/src/mesa/shader \
- -I$(TOP)/src/mesa/swrast \
- -I$(TOP)/src/mesa/swrast_setup
+ $(DRIVER_SOURCES)
-# Core Mesa objects
-MESA_MODULES = $(TOP)/src/mesa/mesa.a
-
-# Libraries that the driver shared lib depends on
-LIB_DEPS = $(GL_LIB_DEPS)
-
-
-ifeq ($(WINDOW_SYSTEM),dri)
-WINOBJ=$(MESABUILDDIR)/dri/dri.a
-WINLIB=
-else
-WINOBJ=
-WINLIB=-L$(MESA)/src/glx/mini
-endif
ASM_SOURCES =
-OBJECTS = $(C_SOURCES:.c=.o) \
- $(ASM_SOURCES:.S=.o)
-
-
-##### RULES #####
-
-.c.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-.S.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-
-##### TARGETS #####
-
-default: depend $(LIB_DIR)/$(LIBNAME)
-
-
-$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile
- $(TOP)/bin/mklib -o $(LIBNAME) -noprefix -install $(LIB_DIR) \
- $(WINLIB) $(LIB_DEPS) $(WINOBJ) $(OBJECTS) $(MESA_MODULES)
-
-
-depend: $(C_SOURCES) $(ASM_SOURCES)
- touch depend
- $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDE_DIRS) $(C_SOURCES) $(ASM_SOURCES) \
- >& /dev/null
-
-
-# Emacs tags
-tags:
- etags `find . -name \*.[ch]` `find ../include`
-
-
-clean:
- -rm -f *.o server/*.o
+include ../Makefile.template
-include depend
+symlinks:
diff --git a/src/mesa/drivers/dri/radeon/radeon_screen.c b/src/mesa/drivers/dri/radeon/radeon_screen.c
index 14ea13648c..f080d47446 100644
--- a/src/mesa/drivers/dri/radeon/radeon_screen.c
+++ b/src/mesa/drivers/dri/radeon/radeon_screen.c
@@ -49,7 +49,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "vblank.h"
#ifndef _SOLO
-#include "glxextensions.h"
+#include "GL/internal/dri_interface.h"
#endif
/* Radeon configuration
diff --git a/src/mesa/drivers/dri/radeon/radeon_screen.h b/src/mesa/drivers/dri/radeon/radeon_screen.h
index 5c80281777..d501fa1f23 100644
--- a/src/mesa/drivers/dri/radeon/radeon_screen.h
+++ b/src/mesa/drivers/dri/radeon/radeon_screen.h
@@ -43,7 +43,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* IMPORTS: these headers contain all the DRI, X and kernel-related
* definitions that we need.
*/
-#include "dri_util.h"
+/* #include "dri_util.h" */
#include "radeon_dri.h"
#include "radeon_reg.h"
#include "drm_sarea.h"
diff --git a/src/mesa/drivers/dri/sis/Makefile b/src/mesa/drivers/dri/sis/Makefile
index 0ecc6e56e0..0c1c5081c7 100644
--- a/src/mesa/drivers/dri/sis/Makefile
+++ b/src/mesa/drivers/dri/sis/Makefile
@@ -5,15 +5,6 @@ include $(TOP)/configs/current
LIBNAME = sis_dri.so
-DEFINES += \
- -D_HAVE_SWRAST=1 \
- -D_HAVE_SWTNL=1 \
- -D_HAVE_SANITY=1 \
- -D_HAVE_CODEGEN=1 \
- -D_HAVE_LIGHTING=1 \
- -D_HAVE_TEXGEN=1 \
- -D_HAVE_USERCLIP=1 \
- -DGLX_DIRECT_RENDERING
# Not yet
# MINIGLX_SOURCES = server/sis_dri.c
@@ -44,79 +35,10 @@ DRIVER_SOURCES = \
C_SOURCES = \
$(COMMON_SOURCES) \
- $(MINIGLX_SOURCES) \
$(DRIVER_SOURCES)
-# Include directories
-INCLUDE_DIRS = \
- -I. \
- -I../common \
- -Iserver \
- -I$(TOP)/src/glx/mini \
- -I$(TOP)/include \
- -I$(DRM_SOURCE_PATH)/shared \
- -I$(TOP)/src/mesa \
- -I$(TOP)/src/mesa/main \
- -I$(TOP)/src/mesa/glapi \
- -I$(TOP)/src/mesa/math \
- -I$(TOP)/src/mesa/transform \
- -I$(TOP)/src/mesa/shader \
- -I$(TOP)/src/mesa/swrast \
- -I$(TOP)/src/mesa/swrast_setup
-
-# Core Mesa objects
-MESA_MODULES = $(TOP)/src/mesa/mesa.a
-
-# Libraries that the driver shared lib depends on
-LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -lexpat -ldl -lc
-
-
-ifeq ($(WINDOW_SYSTEM),dri)
-WINOBJ=$(MESABUILDDIR)/dri/dri.a
-WINLIB=
-else
-WINOBJ=
-WINLIB=-L$(MESA)/src/glx/mini
-endif
-
ASM_SOURCES =
-OBJECTS = $(C_SOURCES:.c=.o) \
- $(ASM_SOURCES:.S=.o)
-
-
-##### RULES #####
-
-.c.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-.S.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-
-##### TARGETS #####
-
-default: depend $(LIB_DIR)/$(LIBNAME)
-
-
-$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile
- $(TOP)/bin/mklib -o $(LIBNAME) -noprefix -install $(LIB_DIR) \
- $(WINLIB) $(LIB_DEPS) $(WINOBJ) $(MESA_MODULES) $(OBJECTS)
-
-
-depend: $(C_SOURCES) $(ASM_SOURCES)
- touch depend
- $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDE_DIRS) $(C_SOURCES) $(ASM_SOURCES) \
- >& /dev/null
-
-
-# Emacs tags
-tags:
- etags `find . -name \*.[ch]` `find ../include`
-
-
-clean:
- -rm -f *.o server/*.o
-
+include ../Makefile.template
-include depend
+symlinks:
diff --git a/src/mesa/drivers/dri/tdfx/Makefile b/src/mesa/drivers/dri/tdfx/Makefile
index ddbbc416bc..6517285e4b 100644
--- a/src/mesa/drivers/dri/tdfx/Makefile
+++ b/src/mesa/drivers/dri/tdfx/Makefile
@@ -5,16 +5,6 @@ include $(TOP)/configs/current
LIBNAME = tdfx_dri.so
-DEFINES += \
- -D_HAVE_SWRAST=1 \
- -D_HAVE_SWTNL=1 \
- -D_HAVE_SANITY=1 \
- -D_HAVE_CODEGEN=1 \
- -D_HAVE_LIGHTING=1 \
- -D_HAVE_TEXGEN=1 \
- -D_HAVE_USERCLIP=1 \
- -DGLX_DIRECT_RENDERING
-
# not yet
# MINIGLX_SOURCES = server/tdfx_dri.c
@@ -43,79 +33,13 @@ DRIVER_SOURCES = \
C_SOURCES = \
$(COMMON_SOURCES) \
- $(MINIGLX_SOURCES) \
$(DRIVER_SOURCES)
-# Include directories
-INCLUDE_DIRS = \
- -I. \
- -I../common \
- -Iserver \
- -I$(TOP)/src/glx/mini \
- -I$(TOP)/include \
- -I$(DRM_SOURCE_PATH)/shared \
- -I$(TOP)/src/mesa \
- -I$(TOP)/src/mesa/main \
- -I$(TOP)/src/mesa/glapi \
- -I$(TOP)/src/mesa/math \
- -I$(TOP)/src/mesa/transform \
- -I$(TOP)/src/mesa/shader \
- -I$(TOP)/src/mesa/swrast \
- -I$(TOP)/src/mesa/swrast_setup
-
-# Core Mesa objects
-MESA_MODULES = $(TOP)/src/mesa/mesa.a
-
-# Libraries that the driver shared lib depends on
-LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -lexpat -ldl -lc
-
-
-ifeq ($(WINDOW_SYSTEM),dri)
-WINOBJ=$(MESABUILDDIR)/dri/dri.a
-WINLIB=
-else
-WINOBJ=
-WINLIB=-L$(MESA)/src/glx/mini
-endif
ASM_SOURCES =
-OBJECTS = $(C_SOURCES:.c=.o) \
- $(ASM_SOURCES:.S=.o)
-
-
-##### RULES #####
-
-.c.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-.S.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-
-##### TARGETS #####
-
-default: depend $(LIB_DIR)/$(LIBNAME)
-
-
-$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile
- $(TOP)/bin/mklib -o $(LIBNAME) -noprefix -install $(LIB_DIR) \
- $(WINLIB) $(LIB_DEPS) $(WINOBJ) $(MESA_MODULES) $(OBJECTS)
-
-
-depend: $(C_SOURCES) $(ASM_SOURCES)
- touch depend
- $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDE_DIRS) $(C_SOURCES) $(ASM_SOURCES) \
- >& /dev/null
-
-
-# Emacs tags
-tags:
- etags `find . -name \*.[ch]` `find ../include`
-
+include ../Makefile.template
-clean:
- -rm -f *.o server/*.o
+symlinks:
-include depend
diff --git a/src/mesa/drivers/dri/unichrome/Makefile b/src/mesa/drivers/dri/unichrome/Makefile
index 1af4f23af1..5cef902860 100644
--- a/src/mesa/drivers/dri/unichrome/Makefile
+++ b/src/mesa/drivers/dri/unichrome/Makefile
@@ -5,16 +5,6 @@ include $(TOP)/configs/current
LIBNAME = unichrome_dri.so
-DEFINES += \
- -D_HAVE_SWRAST=1 \
- -D_HAVE_SWTNL=1 \
- -D_HAVE_SANITY=1 \
- -D_HAVE_CODEGEN=1 \
- -D_HAVE_LIGHTING=1 \
- -D_HAVE_TEXGEN=1 \
- -D_HAVE_USERCLIP=1 \
- -DGLX_DIRECT_RENDERING
-
MINIGLX_SOURCES = server/via_dri.c
COMMON_SOURCES = \
@@ -42,79 +32,11 @@ DRIVER_SOURCES = \
C_SOURCES = \
$(COMMON_SOURCES) \
- $(MINIGLX_SOURCES) \
$(DRIVER_SOURCES)
-# Include directories
-INCLUDE_DIRS = \
- -I. \
- -I../common \
- -Iserver \
- -I$(TOP)/src/glx/mini \
- -I$(TOP)/include \
- -I$(DRM_SOURCE_PATH)\shared \
- -I$(TOP)/src/mesa \
- -I$(TOP)/src/mesa/main \
- -I$(TOP)/src/mesa/glapi \
- -I$(TOP)/src/mesa/math \
- -I$(TOP)/src/mesa/transform \
- -I$(TOP)/src/mesa/shader \
- -I$(TOP)/src/mesa/swrast \
- -I$(TOP)/src/mesa/swrast_setup
-
-# Core Mesa objects
-MESA_MODULES = $(TOP)/src/mesa/mesa.a
-
-# Libraries that the driver shared lib depends on
-LIB_DEPS = -L/usr/X11R6/lib -lX11 -lXext -lm -lpthread -lexpat -ldl -lc
-
-
-ifeq ($(WINDOW_SYSTEM),dri)
-WINOBJ=$(MESABUILDDIR)/dri/dri.a
-WINLIB=
-else
-WINOBJ=
-WINLIB=-L$(MESA)/src/glx/mini
-endif
-
ASM_SOURCES =
-OBJECTS = $(C_SOURCES:.c=.o) \
- $(ASM_SOURCES:.S=.o)
-
-
-##### RULES #####
-
-.c.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-.S.o:
- $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $(DEFINES) $< -o $@
-
-
-##### TARGETS #####
-
-default: depend $(LIB_DIR)/$(LIBNAME)
-
-
-$(LIB_DIR)/$(LIBNAME): $(OBJECTS) $(MESA_MODULES) $(WINOBJ) Makefile
- $(TOP)/bin/mklib -o $(LIBNAME) -noprefix -install $(LIB_DIR) \
- $(WINLIB) $(LIB_DEPS) $(WINOBJ) $(MESA_MODULES) $(OBJECTS)
-
-
-depend: $(C_SOURCES) $(ASM_SOURCES)
- touch depend
- $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDE_DIRS) $(C_SOURCES) $(ASM_SOURCES) \
- >& /dev/null
-
-
-# Emacs tags
-tags:
- etags `find . -name \*.[ch]` `find ../include`
-
-
-clean:
- -rm -f *.o server/*.o
+include ../Makefile.template
-include depend
+symlinks:
diff --git a/src/mesa/drivers/dri/unichrome/via_context.c b/src/mesa/drivers/dri/unichrome/via_context.c
index 80b573e0e5..9986bede6f 100644
--- a/src/mesa/drivers/dri/unichrome/via_context.c
+++ b/src/mesa/drivers/dri/unichrome/via_context.c
@@ -454,7 +454,7 @@ viaCreateContext(const __GLcontextModes *mesaVis,
_tnl_allow_vertex_fog(ctx, GL_TRUE);
#ifndef _SOLO
- vmesa->display = dpy;
+/* vmesa->display = dpy; */
vmesa->display = sPriv->display;
#endif
@@ -545,7 +545,7 @@ viaCreateContext(const __GLcontextModes *mesaVis,
{
GLboolean saam;
int count = 0, fbSize;
-#ifdef _SOLO
+#ifndef USE_XINERAMA
vmesa->saam = 0;
#else
saam = XineramaIsActive(vmesa->display);
@@ -706,7 +706,7 @@ void viaXMesaWindowMoved(viaContextPtr vmesa)
break;
}
-#ifdef _SOLO
+#ifndef USE_XINERAMA
vmesa->viaScreen->fbOffset = 0;
vmesa->saam &= ~S1;
vmesa->saam |= S0;
diff --git a/src/mesa/drivers/dri/unichrome/via_context.h b/src/mesa/drivers/dri/unichrome/via_context.h
index 1412360591..25d9325288 100644
--- a/src/mesa/drivers/dri/unichrome/via_context.h
+++ b/src/mesa/drivers/dri/unichrome/via_context.h
@@ -44,7 +44,7 @@ typedef struct via_texture_object_t *viaTextureObjectPtr;
#include "via_tex.h"
#include "via_common.h"
#include "xf86drmVIA.h"
-#ifndef _SOLO
+#ifdef USE_XINERAMA
#include "../../../../../include/extensions/Xinerama.h"
#endif
#define VIA_FALLBACK_TEXTURE 0x1
@@ -264,7 +264,7 @@ struct via_context_t {
int drawW;
int drawH;
GLuint saam;
-#ifndef _SOLO
+#ifdef USE_XINERAMA
XineramaScreenInfo *xsi;
#endif
int drawXoffSaam;
diff --git a/src/mesa/drivers/dri/unichrome/via_dri.h b/src/mesa/drivers/dri/unichrome/via_dri.h
index aef0ac4ba0..9c17cf6b1d 100644
--- a/src/mesa/drivers/dri/unichrome/via_dri.h
+++ b/src/mesa/drivers/dri/unichrome/via_dri.h
@@ -29,7 +29,7 @@ typedef struct {
int priv2;
int fbOffset;
int fbSize;
-#ifndef _SOLO
+#ifdef USE_XINERAMA
Bool drixinerama;
#endif
int backOffset;
diff --git a/src/mesa/drivers/dri/unichrome/via_screen.c b/src/mesa/drivers/dri/unichrome/via_screen.c
index e0f64cf94d..dd65b30f89 100644
--- a/src/mesa/drivers/dri/unichrome/via_screen.c
+++ b/src/mesa/drivers/dri/unichrome/via_screen.c
@@ -88,7 +88,7 @@ viaInitDriver(__DRIscreenPrivate *sPriv)
viaScreen->bytesPerPixel = gDRIPriv->bytesPerPixel;
viaScreen->fbOffset = 0;
viaScreen->fbSize = gDRIPriv->fbSize;
-#ifndef _SOLO
+#ifdef USE_XINERAMA
viaScreen->drixinerama = gDRIPriv->drixinerama;
#endif
/*=* John Sheng [2003.12.9] Tuxracer & VQ *=*/
diff --git a/src/mesa/drivers/dri/unichrome/via_screen.h b/src/mesa/drivers/dri/unichrome/via_screen.h
index f8d2b9c57a..e34636df7e 100644
--- a/src/mesa/drivers/dri/unichrome/via_screen.h
+++ b/src/mesa/drivers/dri/unichrome/via_screen.h
@@ -43,7 +43,7 @@ typedef struct {
int fbFormat;
int fbOffset;
int fbSize;
-#ifndef _SOLO
+#ifdef USE_XINERAMA
Bool drixinerama;
#endif