Allow *_dri.so to build in Mesa tree with the 'linux-dri' target.
This commit is contained in:
parent
c35dcfcf0a
commit
74d563cdfb
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -14,7 +14,9 @@ $(LIB_DIR):
|
|||
|
||||
|
||||
subdirs:
|
||||
echo $(DRI_DIRS)
|
||||
@for dir in $(DRI_DIRS) ; do \
|
||||
echo $$dir ; \
|
||||
(cd $$dir ; make) || exit 1; \
|
||||
done
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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) ) {
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -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__ */
|
||||
|
|
|
@ -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)
|
||||
include ../Makefile.template
|
||||
|
||||
|
||||
##### 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 depend
|
||||
symlinks:
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
include ../Makefile.template
|
||||
|
||||
|
||||
##### 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 depend
|
||||
symlinks:
|
||||
|
|
|
@ -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)
|
||||
include ../Makefile.template
|
||||
|
||||
|
||||
##### 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 depend
|
||||
symlinks:
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -34,5 +34,7 @@ C_SOURCES = \
|
|||
ASM_SOURCES =
|
||||
|
||||
|
||||
|
||||
include ../Makefile.template
|
||||
|
||||
symlinks:
|
||||
|
|
|
@ -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)
|
||||
include ../Makefile.template
|
||||
|
||||
|
||||
##### 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 depend
|
||||
symlinks:
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
$(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)
|
||||
include ../Makefile.template
|
||||
|
||||
|
||||
##### 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 depend
|
||||
symlinks:
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
#include "vblank.h"
|
||||
|
||||
#ifndef _SOLO
|
||||
#include "glxextensions.h"
|
||||
#include "GL/internal/dri_interface.h"
|
||||
#endif
|
||||
|
||||
/* MGA configuration
|
||||
|
|
|
@ -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)
|
||||
|
||||
include ../Makefile.template
|
||||
|
||||
##### 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 depend
|
||||
symlinks:
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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/$@ $@
|
||||
for i in $(SYMLINKS) ; do rm -f $$i && test -f ../radeon/$$i && ln -s ../../radeon/$$i $$i ; done
|
||||
|
||||
symlinks: $(SYMLINKS)
|
||||
|
||||
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)
|
||||
|
||||
|
||||
include depend
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
$(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 = $(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)
|
||||
|
||||
include ../Makefile.template
|
||||
|
||||
##### 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 depend
|
||||
symlinks:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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)
|
||||
include ../Makefile.template
|
||||
|
||||
|
||||
##### 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 depend
|
||||
symlinks:
|
||||
|
|
|
@ -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)
|
||||
include ../Makefile.template
|
||||
|
||||
symlinks:
|
||||
|
||||
|
||||
##### 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 depend
|
||||
|
|
|
@ -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)
|
||||
|
||||
include ../Makefile.template
|
||||
|
||||
##### 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 depend
|
||||
symlinks:
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -29,7 +29,7 @@ typedef struct {
|
|||
int priv2;
|
||||
int fbOffset;
|
||||
int fbSize;
|
||||
#ifndef _SOLO
|
||||
#ifdef USE_XINERAMA
|
||||
Bool drixinerama;
|
||||
#endif
|
||||
int backOffset;
|
||||
|
|
|
@ -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 *=*/
|
||||
|
|
|
@ -43,7 +43,7 @@ typedef struct {
|
|||
int fbFormat;
|
||||
int fbOffset;
|
||||
int fbSize;
|
||||
#ifndef _SOLO
|
||||
#ifdef USE_XINERAMA
|
||||
Bool drixinerama;
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue