From 74d563cdfbfb07cc666d60dc909e90ddb9949cbb Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Thu, 29 Apr 2004 12:23:39 +0000 Subject: [PATCH] Allow *_dri.so to build in Mesa tree with the 'linux-dri' target. --- configs/linux-dri | 10 +- include/GL/internal/dri_interface.h | 5 + src/mesa/drivers/dri/Makefile | 2 + src/mesa/drivers/dri/Makefile.template | 11 +- src/mesa/drivers/dri/dri_client/Makefile | 1 + src/mesa/drivers/dri/dri_client/XF86dri.c | 2 - src/mesa/drivers/dri/dri_client/dri_util.c | 178 +++++++--- src/mesa/drivers/dri/dri_client/dri_util.h | 19 - .../dri/dri_client/imports/glxclient.h | 330 +----------------- src/mesa/drivers/dri/ffb/Makefile | 89 +---- src/mesa/drivers/dri/ffb/ffb_xmesa.c | 18 +- src/mesa/drivers/dri/gamma/Makefile | 83 +---- src/mesa/drivers/dri/i810/Makefile | 83 +---- src/mesa/drivers/dri/i810/i810ioctl.c | 12 +- src/mesa/drivers/dri/i810/i810screen.c | 2 +- src/mesa/drivers/dri/i810/server/i810_dri.h | 2 +- src/mesa/drivers/dri/i830/Makefile | 2 + src/mesa/drivers/dri/mach64/Makefile | 83 +---- src/mesa/drivers/dri/mach64/mach64_context.h | 2 + src/mesa/drivers/dri/mach64/mach64_screen.c | 7 +- src/mesa/drivers/dri/mga/Makefile | 89 +---- src/mesa/drivers/dri/mga/mga_xmesa.c | 2 +- src/mesa/drivers/dri/r128/Makefile | 84 +---- src/mesa/drivers/dri/r128/r128_ioctl.c | 10 +- src/mesa/drivers/dri/r128/r128_screen.c | 10 +- src/mesa/drivers/dri/r200/Makefile | 92 +---- src/mesa/drivers/dri/r200/r200_context.c | 1 + src/mesa/drivers/dri/r200/r200_screen.c | 2 +- src/mesa/drivers/dri/radeon/Makefile | 117 +------ src/mesa/drivers/dri/radeon/radeon_screen.c | 2 +- src/mesa/drivers/dri/radeon/radeon_screen.h | 2 +- src/mesa/drivers/dri/sis/Makefile | 82 +---- src/mesa/drivers/dri/tdfx/Makefile | 80 +---- src/mesa/drivers/dri/unichrome/Makefile | 82 +---- src/mesa/drivers/dri/unichrome/via_context.c | 6 +- src/mesa/drivers/dri/unichrome/via_context.h | 4 +- src/mesa/drivers/dri/unichrome/via_dri.h | 2 +- src/mesa/drivers/dri/unichrome/via_screen.c | 2 +- src/mesa/drivers/dri/unichrome/via_screen.h | 2 +- 39 files changed, 235 insertions(+), 1377 deletions(-) diff --git a/configs/linux-dri b/configs/linux-dri index 1fa60eb0933..70c71e58126 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 109b4ee8452..14b3751484e 100644 --- a/include/GL/internal/dri_interface.h +++ b/include/GL/internal/dri_interface.h @@ -35,6 +35,9 @@ * \author Ian Romanick */ +#ifndef DRI_INTERFACE_H +#define DRI_INTERFACE_H + /* FIXME: With a small amount of work, these two includes can be removed. */ #include #include @@ -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 43731c00503..4d7b08ec0d4 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 33bd22e6e57..250259785b3 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 14ba1948b28..930e50504ff 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 ea14b7a0703..82ffb303550 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 428472873e4..08f3fee1819 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 f189b5a9677..4764bbbc665 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 317ea011169..74dfe69c956 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 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 42ed196256d..05972ca70f6 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 ae31bfeb034..0fa8675e023 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 1dcd922a43b..e72246100c3 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 ab7873a2bc3..4f36a33762f 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 3d1be4c902f..829ad04c7e5 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 a095b28add1..8bb62217a92 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 2931988c879..cfca20a95b8 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 f6ba1fa6216..8a75927081d 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 77cc9420bf9..c855f4d882a 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 03b90a44717..e424c0bbbfb 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 6ef16c11b27..4d36369ce9d 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 249d810e0c8..58c925da487 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 0a00b347b38..df7856241fb 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 20434987015..bcda0a4d7d6 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 6ea8d529652..d9fc02501a7 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 f77c325db19..5825e95ef26 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 7a3b248c0c2..137660b3712 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 fa37d2b2e2c..95c7c323627 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 d115ef20fca..c5c29dd587d 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 2037d591010..e6f7c29d1ae 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 14ea13648c9..f080d474462 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 5c80281777f..d501fa1f238 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 0ecc6e56e05..0c1c5081c74 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 ddbbc416bc5..6517285e4ba 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 1af4f23af1e..5cef902860d 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 80b573e0e51..9986bede6f5 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 14123605914..25d9325288f 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 aef0ac4ba0f..9c17cf6b1d8 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 e0f64cf94d6..dd65b30f896 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 f8d2b9c57a6..e34636df7e4 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 -- 2.30.2