1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-27 00:57:50 +00:00

Update the stable DRI port to X.Org 6.7.0-release's DRI modules. Note that

the version number has changed to track the Mesa version instead of the X
release, which is not really related to DRI development.  This is because it is
very likely that we will be building the DRI drivers from Mesa soon.

Tested on:	XFree86 4.3 + R100, X.Org 6.7.0 + R200
This commit is contained in:
Eric Anholt 2004-07-23 07:07:22 +00:00
parent 6cf0bb878e
commit f172459a53
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=114469
12 changed files with 24 additions and 606 deletions

View File

@ -1,38 +1,29 @@
# New ports collection makefile for: dri
# Date created: 08 Nov 2003
# Date created: 8 Nov 2003
# Whom: anholt@FreeBSD.org
#
# $FreeBSD$
#
PORTNAME= dri
PORTVERSION= 4.3.0
PORTVERSION= 5.0.2
PORTEPOCH= 1
CATEGORIES= graphics
MASTER_SITES= ${MASTER_SITE_XFREE}
MASTER_SITE_SUBDIR= ${PORTVERSION}
DISTFILES= X430src-1.tgz \
X430src-2.tgz \
X430src-3.tgz
MASTER_SITES= ${MASTER_SITE_XORG}
DISTFILES= X11R6.7.0-src1.tar.gz \
X11R6.7.0-src3.tar.gz
MAINTAINER= anholt@FreeBSD.org
COMMENT= OpenGL hardware acceleration drivers for XFree86
COMMENT= OpenGL hardware acceleration drivers for the DRI
.for pf in \
patch-GL-Imakefile \
patch-radeondri \
patch-r200_vtxtmp_x86.S \
patch-radeon_vtxtmp_x86.S \
patch-dri_util.c
EXTRA_PATCHES+= ${FILESDIR}/${pf}
.endfor
EXTRA_PATCHES+= ${CF_PATCHES}
ONLY_FOR_ARCHS= i386 alpha
XBUILD_DIRS= lib/GL
XINSTALL_DIRS= lib/GL/mesa/src/drv
.include "${.CURDIR}/../../x11/XFree86-4-libraries/Makefile.inc"
.include "${.CURDIR}/../../x11-servers/xorg-server/Makefile.inc"
.include <bsd.port.pre.mk>
.if ${ARCH} == i386
PLIST_SUB+= I386=""

View File

@ -1,4 +1,4 @@
MD5 (xc/X430src-1.tgz) = 4f241a4f867363f40efa2b00dca292af
MD5 (xc/X430src-2.tgz) = 844c2ee908d21dbf8911fd13115bf8b4
MD5 (xc/X430src-3.tgz) = b82a0443e1b7bf860e4343e6b6766cb6
MD5 (xc/Wraphelp2.gz) = bd1910492087442288d885412e2e5535
MD5 (xorg/X11R6.7.0-src1.tar.gz) = 22465263bae7a2e9f5ad77e172cf1ab5
SIZE (xorg/X11R6.7.0-src1.tar.gz) = 30039655
MD5 (xorg/X11R6.7.0-src3.tar.gz) = 4c7144786522bbce383b21ace72bf669
SIZE (xorg/X11R6.7.0-src3.tar.gz) = 10855793

View File

@ -1,26 +0,0 @@
Index: lib/GL/dri/dri_util.c
===================================================================
RCS file: /home/ncvs/xfree/xc/lib/GL/dri/dri_util.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -u -r1.6 -r1.7
--- lib/GL/dri/dri_util.c 15 Feb 2003 22:12:29 -0000 1.6
+++ lib/GL/dri/dri_util.c 28 Apr 2003 17:01:25 -0000 1.7
@@ -921,7 +921,7 @@
int directCapable;
__DRIscreenPrivate *psp;
drmHandle hFB, hSAREA;
- char *BusID, *driverName;
+ char *BusID, *driverName = NULL;
drmMagic magic;
if (!XF86DRIQueryDirectRenderingCapable(dpy, scrn, &directCapable)) {
@@ -1010,6 +1010,8 @@
(void)XF86DRICloseConnection(dpy, scrn);
return NULL;
}
+ if (driverName)
+ Xfree(driverName);
/* install driver's callback functions */
memcpy(&psp->DriverAPI, driverAPI, sizeof(struct __DriverAPIRec));

View File

@ -1,11 +0,0 @@
--- lib/GL/mesa/src/drv/r200/r200_vtxtmp_x86.S.orig Wed Jul 16 13:48:41 2003
+++ lib/GL/mesa/src/drv/r200/r200_vtxtmp_x86.S Wed Jul 16 13:48:56 2003
@@ -28,7 +28,7 @@
#define GLOBL( x ) \
.globl x; \
-x##:
+x:
.data
.align 4

View File

@ -1,11 +0,0 @@
--- lib/GL/mesa/src/drv/radeon/radeon_vtxtmp_x86.S.orig Wed Jul 16 13:47:09 2003
+++ lib/GL/mesa/src/drv/radeon/radeon_vtxtmp_x86.S Wed Jul 16 13:47:10 2003
@@ -28,7 +28,7 @@
#define GLOBL( x ) \
.globl x; \
-x##:
+x:
.data
.align 4

View File

@ -1,234 +0,0 @@
diff -ru -x CVS lib/GL/mesa/src/drv.orig/r200/r200_context.c lib/GL/mesa/src/drv/r200/r200_context.c
--- lib/GL/mesa/src/drv.orig/r200/r200_context.c Tue Mar 11 17:51:23 2003
+++ lib/GL/mesa/src/drv/r200/r200_context.c Tue Mar 11 17:46:57 2003
@@ -391,6 +391,7 @@
*/
_tnl_destroy_pipeline( ctx );
_tnl_install_pipeline( ctx, r200_pipeline );
+ ctx->Driver.FlushVertices = r200FlushVertices;
/* Try and keep materials and vertices separate:
*/
diff -ru -x CVS lib/GL/mesa/src/drv.orig/r200/r200_swtcl.c lib/GL/mesa/src/drv/r200/r200_swtcl.c
--- lib/GL/mesa/src/drv.orig/r200/r200_swtcl.c Tue Mar 11 17:51:29 2003
+++ lib/GL/mesa/src/drv/r200/r200_swtcl.c Tue Mar 11 17:46:57 2003
@@ -44,6 +44,7 @@
#include "math/m_translate.h"
#include "tnl/tnl.h"
#include "tnl/t_context.h"
+#include "tnl/t_imm_exec.h"
#include "tnl/t_pipeline.h"
#include "r200_context.h"
@@ -1220,6 +1221,14 @@
r200ChooseVertexState( ctx );
}
+
+void r200FlushVertices( GLcontext *ctx, GLuint flags )
+{
+ _tnl_flush_vertices( ctx, flags );
+
+ if (flags & FLUSH_STORED_VERTICES)
+ R200_FIREVERTICES( R200_CONTEXT( ctx ) );
+}
/**********************************************************************/
/* Initialization. */
diff -ru -x CVS lib/GL/mesa/src/drv.orig/r200/r200_swtcl.h lib/GL/mesa/src/drv/r200/r200_swtcl.h
--- lib/GL/mesa/src/drv.orig/r200/r200_swtcl.h Tue Mar 11 17:51:29 2003
+++ lib/GL/mesa/src/drv/r200/r200_swtcl.h Tue Mar 11 17:46:57 2003
@@ -42,6 +42,7 @@
extern void r200InitSwtcl( GLcontext *ctx );
extern void r200DestroySwtcl( GLcontext *ctx );
+extern void r200FlushVertices( GLcontext *ctx, GLuint flags );
extern void r200ChooseRenderState( GLcontext *ctx );
extern void r200ChooseVertexState( GLcontext *ctx );
diff -ru -x CVS lib/GL/mesa/src/drv.orig/r200/r200_vtxfmt.c lib/GL/mesa/src/drv/r200/r200_vtxfmt.c
--- lib/GL/mesa/src/drv.orig/r200/r200_vtxfmt.c Tue Mar 11 17:51:29 2003
+++ lib/GL/mesa/src/drv/r200/r200_vtxfmt.c Tue Mar 11 17:47:00 2003
@@ -38,6 +38,7 @@
#include "r200_ioctl.h"
#include "r200_tex.h"
#include "r200_tcl.h"
+#include "r200_swtcl.h"
#include "r200_vtxfmt.h"
#include "api_noop.h"
@@ -59,7 +60,7 @@
struct r200_vb vb;
-static void r200FlushVertices( GLcontext *, GLuint );
+static void r200VtxFmtFlushVertices( GLcontext *, GLuint );
static void count_func( const char *name, struct dynfn *l )
{
@@ -357,12 +358,13 @@
fprintf(stderr, "%s from %s\n", __FUNCTION__, caller);
if (ctx->Driver.NeedFlush)
- r200FlushVertices( ctx, ctx->Driver.NeedFlush );
+ r200VtxFmtFlushVertices( ctx, ctx->Driver.NeedFlush );
if (ctx->NewState)
_mesa_update_state( ctx ); /* clear state so fell_back sticks */
_tnl_wakeup_exec( ctx );
+ ctx->Driver.FlushVertices = r200FlushVertices;
assert( rmesa->dma.flush == 0 );
rmesa->vb.fell_back = GL_TRUE;
@@ -404,6 +406,7 @@
prim = rmesa->vb.prim[0];
ctx->Driver.CurrentExecPrimitive = GL_POLYGON+1;
_tnl_wakeup_exec( ctx );
+ ctx->Driver.FlushVertices = r200FlushVertices;
assert(rmesa->dma.flush == 0);
rmesa->vb.fell_back = GL_TRUE;
@@ -756,7 +759,7 @@
fprintf(stderr, "reinstall (new install)\n");
_mesa_install_exec_vtxfmt( ctx, &rmesa->vb.vtxfmt );
- ctx->Driver.FlushVertices = r200FlushVertices;
+ ctx->Driver.FlushVertices = r200VtxFmtFlushVertices;
ctx->Driver.NewList = r200NewList;
rmesa->vb.installed = GL_TRUE;
vb.context = ctx;
@@ -772,6 +775,7 @@
if (rmesa->dma.flush)
rmesa->dma.flush( rmesa );
_tnl_wakeup_exec( ctx );
+ ctx->Driver.FlushVertices = r200FlushVertices;
rmesa->vb.installed = GL_FALSE;
vb.context = 0;
}
@@ -931,7 +935,7 @@
return GL_TRUE;
}
-static void r200FlushVertices( GLcontext *ctx, GLuint flags )
+static void r200VtxFmtFlushVertices( GLcontext *ctx, GLuint flags )
{
r200ContextPtr rmesa = R200_CONTEXT( ctx );
diff -ru -x CVS lib/GL/mesa/src/drv.orig/radeon/radeon_context.c lib/GL/mesa/src/drv/radeon/radeon_context.c
--- lib/GL/mesa/src/drv.orig/radeon/radeon_context.c Tue Mar 11 17:51:29 2003
+++ lib/GL/mesa/src/drv/radeon/radeon_context.c Tue Mar 11 17:47:00 2003
@@ -382,6 +382,7 @@
*/
_tnl_destroy_pipeline( ctx );
_tnl_install_pipeline( ctx, radeon_pipeline );
+ ctx->Driver.FlushVertices = radeonFlushVertices;
/* Try and keep materials and vertices separate:
*/
diff -ru -x CVS lib/GL/mesa/src/drv.orig/radeon/radeon_swtcl.c lib/GL/mesa/src/drv/radeon/radeon_swtcl.c
--- lib/GL/mesa/src/drv.orig/radeon/radeon_swtcl.c Tue Mar 11 17:51:29 2003
+++ lib/GL/mesa/src/drv/radeon/radeon_swtcl.c Tue Mar 11 17:47:00 2003
@@ -45,6 +45,7 @@
#include "math/m_translate.h"
#include "tnl/tnl.h"
#include "tnl/t_context.h"
+#include "tnl/t_imm_exec.h"
#include "tnl/t_pipeline.h"
#include "radeon_context.h"
@@ -1133,6 +1134,14 @@
}
}
+
+void radeonFlushVertices( GLcontext *ctx, GLuint flags )
+{
+ _tnl_flush_vertices( ctx, flags );
+
+ if (flags & FLUSH_STORED_VERTICES)
+ RADEON_FIREVERTICES( RADEON_CONTEXT( ctx ) );
+}
/**********************************************************************/
/* Initialization. */
diff -ru -x CVS lib/GL/mesa/src/drv.orig/radeon/radeon_swtcl.h lib/GL/mesa/src/drv/radeon/radeon_swtcl.h
--- lib/GL/mesa/src/drv.orig/radeon/radeon_swtcl.h Tue Mar 11 17:51:29 2003
+++ lib/GL/mesa/src/drv/radeon/radeon_swtcl.h Tue Mar 11 17:47:00 2003
@@ -43,6 +43,7 @@
extern void radeonInitSwtcl( GLcontext *ctx );
extern void radeonDestroySwtcl( GLcontext *ctx );
+extern void radeonFlushVertices( GLcontext *ctx, GLuint flags );
extern void radeonChooseRenderState( GLcontext *ctx );
extern void radeonChooseVertexState( GLcontext *ctx );
diff -ru -x CVS lib/GL/mesa/src/drv.orig/radeon/radeon_vtxfmt.c lib/GL/mesa/src/drv/radeon/radeon_vtxfmt.c
--- lib/GL/mesa/src/drv.orig/radeon/radeon_vtxfmt.c Tue Mar 11 17:51:29 2003
+++ lib/GL/mesa/src/drv/radeon/radeon_vtxfmt.c Tue Mar 11 17:47:01 2003
@@ -38,6 +38,7 @@
#include "radeon_ioctl.h"
#include "radeon_tex.h"
#include "radeon_tcl.h"
+#include "radeon_swtcl.h"
#include "radeon_vtxfmt.h"
#include "api_noop.h"
@@ -59,7 +60,7 @@
struct radeon_vb vb;
-static void radeonFlushVertices( GLcontext *, GLuint );
+static void radeonVtxfmtFlushVertices( GLcontext *, GLuint );
static void count_func( const char *name, struct dynfn *l )
{
@@ -336,12 +337,13 @@
fprintf(stderr, "%s from %s\n", __FUNCTION__, caller);
if (ctx->Driver.NeedFlush)
- radeonFlushVertices( ctx, ctx->Driver.NeedFlush );
+ radeonVtxfmtFlushVertices( ctx, ctx->Driver.NeedFlush );
if (ctx->NewState)
_mesa_update_state( ctx ); /* clear state so fell_back sticks */
_tnl_wakeup_exec( ctx );
+ ctx->Driver.FlushVertices = radeonFlushVertices;
assert( rmesa->dma.flush == 0 );
rmesa->vb.fell_back = GL_TRUE;
@@ -382,6 +384,7 @@
prim = rmesa->vb.prim[0];
ctx->Driver.CurrentExecPrimitive = GL_POLYGON+1;
_tnl_wakeup_exec( ctx );
+ ctx->Driver.FlushVertices = radeonFlushVertices;
assert(rmesa->dma.flush == 0);
rmesa->vb.fell_back = GL_TRUE;
@@ -731,7 +734,7 @@
fprintf(stderr, "reinstall (new install)\n");
_mesa_install_exec_vtxfmt( ctx, &rmesa->vb.vtxfmt );
- ctx->Driver.FlushVertices = radeonFlushVertices;
+ ctx->Driver.FlushVertices = radeonVtxfmtFlushVertices;
ctx->Driver.NewList = radeonNewList;
rmesa->vb.installed = GL_TRUE;
vb.context = ctx;
@@ -747,6 +750,7 @@
if (rmesa->dma.flush)
rmesa->dma.flush( rmesa );
_tnl_wakeup_exec( ctx );
+ ctx->Driver.FlushVertices = radeonFlushVertices;
rmesa->vb.installed = GL_FALSE;
vb.context = 0;
}
@@ -905,7 +909,7 @@
return GL_TRUE;
}
-static void radeonFlushVertices( GLcontext *ctx, GLuint flags )
+static void radeonVtxfmtFlushVertices( GLcontext *ctx, GLuint flags )
{
radeonContextPtr rmesa = RADEON_CONTEXT( ctx );

View File

@ -1,38 +1,29 @@
# New ports collection makefile for: dri
# Date created: 08 Nov 2003
# Date created: 8 Nov 2003
# Whom: anholt@FreeBSD.org
#
# $FreeBSD$
#
PORTNAME= dri
PORTVERSION= 4.3.0
PORTVERSION= 5.0.2
PORTEPOCH= 1
CATEGORIES= graphics
MASTER_SITES= ${MASTER_SITE_XFREE}
MASTER_SITE_SUBDIR= ${PORTVERSION}
DISTFILES= X430src-1.tgz \
X430src-2.tgz \
X430src-3.tgz
MASTER_SITES= ${MASTER_SITE_XORG}
DISTFILES= X11R6.7.0-src1.tar.gz \
X11R6.7.0-src3.tar.gz
MAINTAINER= anholt@FreeBSD.org
COMMENT= OpenGL hardware acceleration drivers for XFree86
COMMENT= OpenGL hardware acceleration drivers for the DRI
.for pf in \
patch-GL-Imakefile \
patch-radeondri \
patch-r200_vtxtmp_x86.S \
patch-radeon_vtxtmp_x86.S \
patch-dri_util.c
EXTRA_PATCHES+= ${FILESDIR}/${pf}
.endfor
EXTRA_PATCHES+= ${CF_PATCHES}
ONLY_FOR_ARCHS= i386 alpha
XBUILD_DIRS= lib/GL
XINSTALL_DIRS= lib/GL/mesa/src/drv
.include "${.CURDIR}/../../x11/XFree86-4-libraries/Makefile.inc"
.include "${.CURDIR}/../../x11-servers/xorg-server/Makefile.inc"
.include <bsd.port.pre.mk>
.if ${ARCH} == i386
PLIST_SUB+= I386=""

View File

@ -1,4 +1,4 @@
MD5 (xc/X430src-1.tgz) = 4f241a4f867363f40efa2b00dca292af
MD5 (xc/X430src-2.tgz) = 844c2ee908d21dbf8911fd13115bf8b4
MD5 (xc/X430src-3.tgz) = b82a0443e1b7bf860e4343e6b6766cb6
MD5 (xc/Wraphelp2.gz) = bd1910492087442288d885412e2e5535
MD5 (xorg/X11R6.7.0-src1.tar.gz) = 22465263bae7a2e9f5ad77e172cf1ab5
SIZE (xorg/X11R6.7.0-src1.tar.gz) = 30039655
MD5 (xorg/X11R6.7.0-src3.tar.gz) = 4c7144786522bbce383b21ace72bf669
SIZE (xorg/X11R6.7.0-src3.tar.gz) = 10855793

View File

@ -1,26 +0,0 @@
Index: lib/GL/dri/dri_util.c
===================================================================
RCS file: /home/ncvs/xfree/xc/lib/GL/dri/dri_util.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -u -r1.6 -r1.7
--- lib/GL/dri/dri_util.c 15 Feb 2003 22:12:29 -0000 1.6
+++ lib/GL/dri/dri_util.c 28 Apr 2003 17:01:25 -0000 1.7
@@ -921,7 +921,7 @@
int directCapable;
__DRIscreenPrivate *psp;
drmHandle hFB, hSAREA;
- char *BusID, *driverName;
+ char *BusID, *driverName = NULL;
drmMagic magic;
if (!XF86DRIQueryDirectRenderingCapable(dpy, scrn, &directCapable)) {
@@ -1010,6 +1010,8 @@
(void)XF86DRICloseConnection(dpy, scrn);
return NULL;
}
+ if (driverName)
+ Xfree(driverName);
/* install driver's callback functions */
memcpy(&psp->DriverAPI, driverAPI, sizeof(struct __DriverAPIRec));

View File

@ -1,11 +0,0 @@
--- lib/GL/mesa/src/drv/r200/r200_vtxtmp_x86.S.orig Wed Jul 16 13:48:41 2003
+++ lib/GL/mesa/src/drv/r200/r200_vtxtmp_x86.S Wed Jul 16 13:48:56 2003
@@ -28,7 +28,7 @@
#define GLOBL( x ) \
.globl x; \
-x##:
+x:
.data
.align 4

View File

@ -1,11 +0,0 @@
--- lib/GL/mesa/src/drv/radeon/radeon_vtxtmp_x86.S.orig Wed Jul 16 13:47:09 2003
+++ lib/GL/mesa/src/drv/radeon/radeon_vtxtmp_x86.S Wed Jul 16 13:47:10 2003
@@ -28,7 +28,7 @@
#define GLOBL( x ) \
.globl x; \
-x##:
+x:
.data
.align 4

View File

@ -1,234 +0,0 @@
diff -ru -x CVS lib/GL/mesa/src/drv.orig/r200/r200_context.c lib/GL/mesa/src/drv/r200/r200_context.c
--- lib/GL/mesa/src/drv.orig/r200/r200_context.c Tue Mar 11 17:51:23 2003
+++ lib/GL/mesa/src/drv/r200/r200_context.c Tue Mar 11 17:46:57 2003
@@ -391,6 +391,7 @@
*/
_tnl_destroy_pipeline( ctx );
_tnl_install_pipeline( ctx, r200_pipeline );
+ ctx->Driver.FlushVertices = r200FlushVertices;
/* Try and keep materials and vertices separate:
*/
diff -ru -x CVS lib/GL/mesa/src/drv.orig/r200/r200_swtcl.c lib/GL/mesa/src/drv/r200/r200_swtcl.c
--- lib/GL/mesa/src/drv.orig/r200/r200_swtcl.c Tue Mar 11 17:51:29 2003
+++ lib/GL/mesa/src/drv/r200/r200_swtcl.c Tue Mar 11 17:46:57 2003
@@ -44,6 +44,7 @@
#include "math/m_translate.h"
#include "tnl/tnl.h"
#include "tnl/t_context.h"
+#include "tnl/t_imm_exec.h"
#include "tnl/t_pipeline.h"
#include "r200_context.h"
@@ -1220,6 +1221,14 @@
r200ChooseVertexState( ctx );
}
+
+void r200FlushVertices( GLcontext *ctx, GLuint flags )
+{
+ _tnl_flush_vertices( ctx, flags );
+
+ if (flags & FLUSH_STORED_VERTICES)
+ R200_FIREVERTICES( R200_CONTEXT( ctx ) );
+}
/**********************************************************************/
/* Initialization. */
diff -ru -x CVS lib/GL/mesa/src/drv.orig/r200/r200_swtcl.h lib/GL/mesa/src/drv/r200/r200_swtcl.h
--- lib/GL/mesa/src/drv.orig/r200/r200_swtcl.h Tue Mar 11 17:51:29 2003
+++ lib/GL/mesa/src/drv/r200/r200_swtcl.h Tue Mar 11 17:46:57 2003
@@ -42,6 +42,7 @@
extern void r200InitSwtcl( GLcontext *ctx );
extern void r200DestroySwtcl( GLcontext *ctx );
+extern void r200FlushVertices( GLcontext *ctx, GLuint flags );
extern void r200ChooseRenderState( GLcontext *ctx );
extern void r200ChooseVertexState( GLcontext *ctx );
diff -ru -x CVS lib/GL/mesa/src/drv.orig/r200/r200_vtxfmt.c lib/GL/mesa/src/drv/r200/r200_vtxfmt.c
--- lib/GL/mesa/src/drv.orig/r200/r200_vtxfmt.c Tue Mar 11 17:51:29 2003
+++ lib/GL/mesa/src/drv/r200/r200_vtxfmt.c Tue Mar 11 17:47:00 2003
@@ -38,6 +38,7 @@
#include "r200_ioctl.h"
#include "r200_tex.h"
#include "r200_tcl.h"
+#include "r200_swtcl.h"
#include "r200_vtxfmt.h"
#include "api_noop.h"
@@ -59,7 +60,7 @@
struct r200_vb vb;
-static void r200FlushVertices( GLcontext *, GLuint );
+static void r200VtxFmtFlushVertices( GLcontext *, GLuint );
static void count_func( const char *name, struct dynfn *l )
{
@@ -357,12 +358,13 @@
fprintf(stderr, "%s from %s\n", __FUNCTION__, caller);
if (ctx->Driver.NeedFlush)
- r200FlushVertices( ctx, ctx->Driver.NeedFlush );
+ r200VtxFmtFlushVertices( ctx, ctx->Driver.NeedFlush );
if (ctx->NewState)
_mesa_update_state( ctx ); /* clear state so fell_back sticks */
_tnl_wakeup_exec( ctx );
+ ctx->Driver.FlushVertices = r200FlushVertices;
assert( rmesa->dma.flush == 0 );
rmesa->vb.fell_back = GL_TRUE;
@@ -404,6 +406,7 @@
prim = rmesa->vb.prim[0];
ctx->Driver.CurrentExecPrimitive = GL_POLYGON+1;
_tnl_wakeup_exec( ctx );
+ ctx->Driver.FlushVertices = r200FlushVertices;
assert(rmesa->dma.flush == 0);
rmesa->vb.fell_back = GL_TRUE;
@@ -756,7 +759,7 @@
fprintf(stderr, "reinstall (new install)\n");
_mesa_install_exec_vtxfmt( ctx, &rmesa->vb.vtxfmt );
- ctx->Driver.FlushVertices = r200FlushVertices;
+ ctx->Driver.FlushVertices = r200VtxFmtFlushVertices;
ctx->Driver.NewList = r200NewList;
rmesa->vb.installed = GL_TRUE;
vb.context = ctx;
@@ -772,6 +775,7 @@
if (rmesa->dma.flush)
rmesa->dma.flush( rmesa );
_tnl_wakeup_exec( ctx );
+ ctx->Driver.FlushVertices = r200FlushVertices;
rmesa->vb.installed = GL_FALSE;
vb.context = 0;
}
@@ -931,7 +935,7 @@
return GL_TRUE;
}
-static void r200FlushVertices( GLcontext *ctx, GLuint flags )
+static void r200VtxFmtFlushVertices( GLcontext *ctx, GLuint flags )
{
r200ContextPtr rmesa = R200_CONTEXT( ctx );
diff -ru -x CVS lib/GL/mesa/src/drv.orig/radeon/radeon_context.c lib/GL/mesa/src/drv/radeon/radeon_context.c
--- lib/GL/mesa/src/drv.orig/radeon/radeon_context.c Tue Mar 11 17:51:29 2003
+++ lib/GL/mesa/src/drv/radeon/radeon_context.c Tue Mar 11 17:47:00 2003
@@ -382,6 +382,7 @@
*/
_tnl_destroy_pipeline( ctx );
_tnl_install_pipeline( ctx, radeon_pipeline );
+ ctx->Driver.FlushVertices = radeonFlushVertices;
/* Try and keep materials and vertices separate:
*/
diff -ru -x CVS lib/GL/mesa/src/drv.orig/radeon/radeon_swtcl.c lib/GL/mesa/src/drv/radeon/radeon_swtcl.c
--- lib/GL/mesa/src/drv.orig/radeon/radeon_swtcl.c Tue Mar 11 17:51:29 2003
+++ lib/GL/mesa/src/drv/radeon/radeon_swtcl.c Tue Mar 11 17:47:00 2003
@@ -45,6 +45,7 @@
#include "math/m_translate.h"
#include "tnl/tnl.h"
#include "tnl/t_context.h"
+#include "tnl/t_imm_exec.h"
#include "tnl/t_pipeline.h"
#include "radeon_context.h"
@@ -1133,6 +1134,14 @@
}
}
+
+void radeonFlushVertices( GLcontext *ctx, GLuint flags )
+{
+ _tnl_flush_vertices( ctx, flags );
+
+ if (flags & FLUSH_STORED_VERTICES)
+ RADEON_FIREVERTICES( RADEON_CONTEXT( ctx ) );
+}
/**********************************************************************/
/* Initialization. */
diff -ru -x CVS lib/GL/mesa/src/drv.orig/radeon/radeon_swtcl.h lib/GL/mesa/src/drv/radeon/radeon_swtcl.h
--- lib/GL/mesa/src/drv.orig/radeon/radeon_swtcl.h Tue Mar 11 17:51:29 2003
+++ lib/GL/mesa/src/drv/radeon/radeon_swtcl.h Tue Mar 11 17:47:00 2003
@@ -43,6 +43,7 @@
extern void radeonInitSwtcl( GLcontext *ctx );
extern void radeonDestroySwtcl( GLcontext *ctx );
+extern void radeonFlushVertices( GLcontext *ctx, GLuint flags );
extern void radeonChooseRenderState( GLcontext *ctx );
extern void radeonChooseVertexState( GLcontext *ctx );
diff -ru -x CVS lib/GL/mesa/src/drv.orig/radeon/radeon_vtxfmt.c lib/GL/mesa/src/drv/radeon/radeon_vtxfmt.c
--- lib/GL/mesa/src/drv.orig/radeon/radeon_vtxfmt.c Tue Mar 11 17:51:29 2003
+++ lib/GL/mesa/src/drv/radeon/radeon_vtxfmt.c Tue Mar 11 17:47:01 2003
@@ -38,6 +38,7 @@
#include "radeon_ioctl.h"
#include "radeon_tex.h"
#include "radeon_tcl.h"
+#include "radeon_swtcl.h"
#include "radeon_vtxfmt.h"
#include "api_noop.h"
@@ -59,7 +60,7 @@
struct radeon_vb vb;
-static void radeonFlushVertices( GLcontext *, GLuint );
+static void radeonVtxfmtFlushVertices( GLcontext *, GLuint );
static void count_func( const char *name, struct dynfn *l )
{
@@ -336,12 +337,13 @@
fprintf(stderr, "%s from %s\n", __FUNCTION__, caller);
if (ctx->Driver.NeedFlush)
- radeonFlushVertices( ctx, ctx->Driver.NeedFlush );
+ radeonVtxfmtFlushVertices( ctx, ctx->Driver.NeedFlush );
if (ctx->NewState)
_mesa_update_state( ctx ); /* clear state so fell_back sticks */
_tnl_wakeup_exec( ctx );
+ ctx->Driver.FlushVertices = radeonFlushVertices;
assert( rmesa->dma.flush == 0 );
rmesa->vb.fell_back = GL_TRUE;
@@ -382,6 +384,7 @@
prim = rmesa->vb.prim[0];
ctx->Driver.CurrentExecPrimitive = GL_POLYGON+1;
_tnl_wakeup_exec( ctx );
+ ctx->Driver.FlushVertices = radeonFlushVertices;
assert(rmesa->dma.flush == 0);
rmesa->vb.fell_back = GL_TRUE;
@@ -731,7 +734,7 @@
fprintf(stderr, "reinstall (new install)\n");
_mesa_install_exec_vtxfmt( ctx, &rmesa->vb.vtxfmt );
- ctx->Driver.FlushVertices = radeonFlushVertices;
+ ctx->Driver.FlushVertices = radeonVtxfmtFlushVertices;
ctx->Driver.NewList = radeonNewList;
rmesa->vb.installed = GL_TRUE;
vb.context = ctx;
@@ -747,6 +750,7 @@
if (rmesa->dma.flush)
rmesa->dma.flush( rmesa );
_tnl_wakeup_exec( ctx );
+ ctx->Driver.FlushVertices = radeonFlushVertices;
rmesa->vb.installed = GL_FALSE;
vb.context = 0;
}
@@ -905,7 +909,7 @@
return GL_TRUE;
}
-static void radeonFlushVertices( GLcontext *ctx, GLuint flags )
+static void radeonVtxfmtFlushVertices( GLcontext *ctx, GLuint flags )
{
radeonContextPtr rmesa = RADEON_CONTEXT( ctx );