summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoridr <idr>2003-04-04 02:59:44 +0000
committeridr <idr>2003-04-04 02:59:44 +0000
commitb4822972522a7bc360e36b924785ce1a0b348771 (patch)
treee11b082416fa11eba9c4b56800cacaaa9dcc1e02
parentb75e30d125b52a3b02d7c7f4e4e175b504d1bb37 (diff)
Second part of trunk-to-branch merge.
-rw-r--r--xc/config/cf/NetBSD.cf2
-rw-r--r--xc/config/cf/X11.tmpl16
-rw-r--r--xc/config/cf/host.def3
-rw-r--r--xc/lib/GL/mesa/src/drv/r200/r200_context.h24
-rw-r--r--xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt.c275
-rw-r--r--xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt.h3
-rw-r--r--xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt_c.c276
-rw-r--r--xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt_sse.c36
-rw-r--r--xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt_x86.c159
-rw-r--r--xc/lib/GL/mesa/src/drv/radeon/radeon_context.c8
-rw-r--r--xc/lib/GL/mesa/src/drv/radeon/radeon_context.h27
-rw-r--r--xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt.c255
-rw-r--r--xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt.h6
-rw-r--r--xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt_c.c273
-rw-r--r--xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt_sse.c32
-rw-r--r--xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt_x86.c155
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/drm_vm.h5
17 files changed, 827 insertions, 728 deletions
diff --git a/xc/config/cf/NetBSD.cf b/xc/config/cf/NetBSD.cf
index 9594cc38d..fb2ba8965 100644
--- a/xc/config/cf/NetBSD.cf
+++ b/xc/config/cf/NetBSD.cf
@@ -553,7 +553,9 @@ InstallManPageAliasesBase(file,destdir,aliases)
#endif /* HasSharedLibraries */
/* Always build the XInput library, regardless of server support on this plattform */
+#ifndef BuildXInputLib
#define BuildXInputLib YES
+#endif
#if defined(i386Architecture) || defined(Arm32Architecture) || defined(AlphaArchitecture) || defined(PpcArchitecture)
# include <xfree86.cf>
diff --git a/xc/config/cf/X11.tmpl b/xc/config/cf/X11.tmpl
index a6943eb7b..9358be60b 100644
--- a/xc/config/cf/X11.tmpl
+++ b/xc/config/cf/X11.tmpl
@@ -2181,14 +2181,14 @@ ProjectUnsharedLibReferences(XTHRSTUB,XThrStub,$(XTHRSTUBSRC),XBuildLibDir)
#define GLwUseXmStubs NO /* create stub (weak) Motif symbols */
#endif
#else
-#undef SharedLibGlw
-#define SharedLibGlw NO
-#undef NormalLibGlw
-#define NormalLibGlw NO
-#undef DebugLibGlw
-#define DebugLibGlw NO
-#undef ProfileLibGlw
-#define ProfileLibGlw NO
+#undef SharedLibGLw
+#define SharedLibGLw NO
+#undef NormalLibGLw
+#define NormalLibGLw NO
+#undef DebugLibGLw
+#define DebugLibGLw NO
+#undef ProfileLibGLw
+#define ProfileLibGLw NO
#endif
#ifndef SharedLibXext
diff --git a/xc/config/cf/host.def b/xc/config/cf/host.def
index f0f41a99a..eb2c3eb55 100644
--- a/xc/config/cf/host.def
+++ b/xc/config/cf/host.def
@@ -62,7 +62,7 @@
/* #define GlxBuiltInMga YES */
/* #define GlxBuiltInR128 YES */
/* #define GlxBuiltInRadeon YES */
-/* #define DoLoadableServer NO */
+#define DoLoadableServer YES
/* Optionally turn this on to change the place where you install the build.
* Warning: trailing blanks will cause build failures.
@@ -88,6 +88,7 @@
#define BuildLibrariesForXServers NO
#define BuildLibrariesForConfigTools NO
#define BuildGLXLibrary YES
+#define BuildXInputLib NO
#define BuildXIE NO
#define BuildPexExt NO
#define XprtServer NO
diff --git a/xc/lib/GL/mesa/src/drv/r200/r200_context.h b/xc/lib/GL/mesa/src/drv/r200/r200_context.h
index 7ef17c32d..3c04c0cd8 100644
--- a/xc/lib/GL/mesa/src/drv/r200/r200_context.h
+++ b/xc/lib/GL/mesa/src/drv/r200/r200_context.h
@@ -46,6 +46,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "macros.h"
#include "mtypes.h"
+#include "colormac.h"
#include "r200_reg.h"
#define ENABLE_HW_3D_TEXTURE 0 /* XXX this is temporary! */
@@ -682,8 +683,6 @@ struct dfn_lists {
struct dynfn MultiTexCoord1fvARB;
};
-struct _vb;
-
struct dfn_generators {
struct dynfn *(*Vertex2f)( GLcontext *, const int * );
struct dynfn *(*Vertex2fv)( GLcontext *, const int * );
@@ -714,9 +713,14 @@ struct dfn_generators {
};
-struct r200_vb {
- /* Keep these first: referenced from codegen templates:
- */
+
+struct r200_prim {
+ GLuint start;
+ GLuint end;
+ GLuint prim;
+};
+
+struct r200_vbinfo {
GLint counter, initial_counter;
GLint *dmaptr;
void (*notify)( void );
@@ -741,23 +745,13 @@ struct r200_vb {
r200_color_t *specptr;
GLfloat *texcoordptr[2];
- GLcontext *context; /* current context : Single thread only! */
-};
-struct r200_prim {
- GLuint start;
- GLuint end;
- GLuint prim;
-};
-
-struct r200_vbinfo {
GLenum *prim; /* &ctx->Driver.CurrentExecPrimitive */
GLuint primflags;
GLboolean enabled; /* *_NO_VTXFMT / *_NO_TCL env vars */
GLboolean installed;
GLboolean fell_back;
GLboolean recheck;
- GLint initial_counter;
GLint nrverts;
GLuint vtxfmt_0, vtxfmt_1;
diff --git a/xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt.c b/xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt.c
index c0f70436e..81d2bfab1 100644
--- a/xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt.c
+++ b/xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt.c
@@ -47,7 +47,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "api_noop.h"
#include "api_arrayelt.h"
#include "context.h"
-#include "mmath.h"
#include "mtypes.h"
#include "enums.h"
#include "glapi.h"
@@ -60,8 +59,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "tnl/t_context.h"
#include "tnl/t_array_api.h"
-struct r200_vb vb;
-
static void r200VtxFmtFlushVertices( GLcontext *, GLuint );
static void count_func( const char *name, struct dynfn *l )
@@ -108,33 +105,32 @@ void r200_copy_to_current( GLcontext *ctx )
r200ContextPtr rmesa = R200_CONTEXT(ctx);
assert(ctx->Driver.NeedFlush & FLUSH_UPDATE_CURRENT);
- assert(vb.context == ctx);
if (rmesa->vb.vtxfmt_0 & R200_VTX_N0) {
- ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0] = vb.normalptr[0];
- ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1] = vb.normalptr[1];
- ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2] = vb.normalptr[2];
+ ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0] = rmesa->vb.normalptr[0];
+ ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1] = rmesa->vb.normalptr[1];
+ ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2] = rmesa->vb.normalptr[2];
}
switch( VTX_COLOR(rmesa->vb.vtxfmt_0, 0) ) {
case R200_VTX_PK_RGBA:
- ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0] = UBYTE_TO_FLOAT( vb.colorptr->red );
- ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1] = UBYTE_TO_FLOAT( vb.colorptr->green );
- ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2] = UBYTE_TO_FLOAT( vb.colorptr->blue );
- ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3] = UBYTE_TO_FLOAT( vb.colorptr->alpha );
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0] = UBYTE_TO_FLOAT( rmesa->vb.colorptr->red );
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1] = UBYTE_TO_FLOAT( rmesa->vb.colorptr->green );
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2] = UBYTE_TO_FLOAT( rmesa->vb.colorptr->blue );
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3] = UBYTE_TO_FLOAT( rmesa->vb.colorptr->alpha );
break;
case R200_VTX_FP_RGB:
- ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0] = vb.floatcolorptr[0];
- ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1] = vb.floatcolorptr[1];
- ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2] = vb.floatcolorptr[2];
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0] = rmesa->vb.floatcolorptr[0];
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1] = rmesa->vb.floatcolorptr[1];
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2] = rmesa->vb.floatcolorptr[2];
break;
case R200_VTX_FP_RGBA:
- ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0] = vb.floatcolorptr[0];
- ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1] = vb.floatcolorptr[1];
- ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2] = vb.floatcolorptr[2];
- ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3] = vb.floatcolorptr[3];
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0] = rmesa->vb.floatcolorptr[0];
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1] = rmesa->vb.floatcolorptr[1];
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2] = rmesa->vb.floatcolorptr[2];
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3] = rmesa->vb.floatcolorptr[3];
break;
default:
@@ -142,21 +138,21 @@ void r200_copy_to_current( GLcontext *ctx )
}
if (VTX_COLOR(rmesa->vb.vtxfmt_0, 1) == R200_VTX_PK_RGBA) {
- ctx->Current.Attrib[VERT_ATTRIB_COLOR1][0] = UBYTE_TO_FLOAT( vb.specptr->red );
- ctx->Current.Attrib[VERT_ATTRIB_COLOR1][1] = UBYTE_TO_FLOAT( vb.specptr->green );
- ctx->Current.Attrib[VERT_ATTRIB_COLOR1][2] = UBYTE_TO_FLOAT( vb.specptr->blue );
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR1][0] = UBYTE_TO_FLOAT( rmesa->vb.specptr->red );
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR1][1] = UBYTE_TO_FLOAT( rmesa->vb.specptr->green );
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR1][2] = UBYTE_TO_FLOAT( rmesa->vb.specptr->blue );
}
if (rmesa->vb.vtxfmt_1 & (7 << R200_VTX_TEX0_COMP_CNT_SHIFT)) {
- ctx->Current.Attrib[VERT_ATTRIB_TEX0][0] = vb.texcoordptr[0][0];
- ctx->Current.Attrib[VERT_ATTRIB_TEX0][1] = vb.texcoordptr[0][1];
+ ctx->Current.Attrib[VERT_ATTRIB_TEX0][0] = rmesa->vb.texcoordptr[0][0];
+ ctx->Current.Attrib[VERT_ATTRIB_TEX0][1] = rmesa->vb.texcoordptr[0][1];
ctx->Current.Attrib[VERT_ATTRIB_TEX0][2] = 0.0F;
ctx->Current.Attrib[VERT_ATTRIB_TEX0][3] = 1.0F;
}
if (rmesa->vb.vtxfmt_1 & (7 << R200_VTX_TEX1_COMP_CNT_SHIFT)) {
- ctx->Current.Attrib[VERT_ATTRIB_TEX1][0] = vb.texcoordptr[1][0];
- ctx->Current.Attrib[VERT_ATTRIB_TEX1][1] = vb.texcoordptr[1][1];
+ ctx->Current.Attrib[VERT_ATTRIB_TEX1][0] = rmesa->vb.texcoordptr[1][0];
+ ctx->Current.Attrib[VERT_ATTRIB_TEX1][1] = rmesa->vb.texcoordptr[1][1];
ctx->Current.Attrib[VERT_ATTRIB_TEX1][2] = 0.0F;
ctx->Current.Attrib[VERT_ATTRIB_TEX1][3] = 1.0F;
}
@@ -183,12 +179,13 @@ static void flush_prims( r200ContextPtr rmesa )
struct r200_dma_region tmp = rmesa->dma.current;
tmp.buf->refcount++;
- tmp.aos_size = vb.vertex_size;
- tmp.aos_stride = vb.vertex_size;
+ tmp.aos_size = rmesa->vb.vertex_size;
+ tmp.aos_stride = rmesa->vb.vertex_size;
tmp.aos_start = GET_START(&tmp);
rmesa->dma.current.ptr = rmesa->dma.current.start +=
- (vb.initial_counter - vb.counter) * vb.vertex_size * 4;
+ (rmesa->vb.initial_counter - rmesa->vb.counter) *
+ rmesa->vb.vertex_size * 4;
rmesa->tcl.vertex_format = rmesa->vb.vtxfmt_0;
rmesa->tcl.aos_components[0] = &tmp;
@@ -231,7 +228,7 @@ static void flush_prims( r200ContextPtr rmesa )
rmesa->vb.primlist[i].end);
if (rmesa->vb.primlist[i].start < rmesa->vb.primlist[i].end)
- r200EmitPrimitive( vb.context,
+ r200EmitPrimitive( rmesa->glCtx,
rmesa->vb.primlist[i].start,
rmesa->vb.primlist[i].end,
rmesa->vb.primlist[i].prim );
@@ -245,20 +242,24 @@ static void flush_prims( r200ContextPtr rmesa )
static void start_prim( r200ContextPtr rmesa, GLuint mode )
{
if (R200_DEBUG & DEBUG_VFMT)
- fprintf(stderr, "%s %d\n", __FUNCTION__, vb.initial_counter - vb.counter);
+ fprintf(stderr, "%s %d\n", __FUNCTION__,
+ rmesa->vb.initial_counter - rmesa->vb.counter);
- rmesa->vb.primlist[rmesa->vb.nrprims].start = vb.initial_counter - vb.counter;
+ rmesa->vb.primlist[rmesa->vb.nrprims].start =
+ rmesa->vb.initial_counter - rmesa->vb.counter;
rmesa->vb.primlist[rmesa->vb.nrprims].prim = mode;
}
static void note_last_prim( r200ContextPtr rmesa, GLuint flags )
{
if (R200_DEBUG & DEBUG_VFMT)
- fprintf(stderr, "%s %d\n", __FUNCTION__, vb.initial_counter - vb.counter);
+ fprintf(stderr, "%s %d\n", __FUNCTION__,
+ rmesa->vb.initial_counter - rmesa->vb.counter);
if (rmesa->vb.prim[0] != GL_POLYGON+1) {
rmesa->vb.primlist[rmesa->vb.nrprims].prim |= flags;
- rmesa->vb.primlist[rmesa->vb.nrprims].end = vb.initial_counter - vb.counter;
+ rmesa->vb.primlist[rmesa->vb.nrprims].end =
+ rmesa->vb.initial_counter - rmesa->vb.counter;
if (++(rmesa->vb.nrprims) == R200_MAX_PRIMS)
flush_prims( rmesa );
@@ -272,12 +273,12 @@ static void copy_vertex( r200ContextPtr rmesa, GLuint n, GLfloat *dst )
GLfloat *src = (GLfloat *)(rmesa->dma.current.address +
rmesa->dma.current.ptr +
(rmesa->vb.primlist[rmesa->vb.nrprims].start + n) *
- vb.vertex_size * 4);
+ rmesa->vb.vertex_size * 4);
if (R200_DEBUG & DEBUG_VFMT)
fprintf(stderr, "copy_vertex %d\n", rmesa->vb.primlist[rmesa->vb.nrprims].start + n);
- for (i = 0 ; i < vb.vertex_size; i++) {
+ for (i = 0 ; i < rmesa->vb.vertex_size; i++) {
dst[i] = src[i];
}
}
@@ -289,7 +290,8 @@ static void copy_vertex( r200ContextPtr rmesa, GLuint n, GLfloat *dst )
static GLuint copy_dma_verts( r200ContextPtr rmesa, GLfloat (*tmp)[15] )
{
GLuint ovf, i;
- GLuint nr = (vb.initial_counter - vb.counter) - rmesa->vb.primlist[rmesa->vb.nrprims].start;
+ GLuint nr = (rmesa->vb.initial_counter - rmesa->vb.counter) -
+ rmesa->vb.primlist[rmesa->vb.nrprims].start;
if (R200_DEBUG & DEBUG_VFMT)
fprintf(stderr, "%s %d verts\n", __FUNCTION__, nr);
@@ -353,7 +355,7 @@ static GLuint copy_dma_verts( r200ContextPtr rmesa, GLfloat (*tmp)[15] )
static void VFMT_FALLBACK_OUTSIDE_BEGIN_END( const char *caller )
{
- GLcontext *ctx = vb.context;
+ GET_CURRENT_CONTEXT(ctx);
r200ContextPtr rmesa = R200_CONTEXT(ctx);
if (R200_DEBUG & (DEBUG_VFMT|DEBUG_FALLBACKS))
@@ -371,13 +373,12 @@ static void VFMT_FALLBACK_OUTSIDE_BEGIN_END( const char *caller )
assert( rmesa->dma.flush == 0 );
rmesa->vb.fell_back = GL_TRUE;
rmesa->vb.installed = GL_FALSE;
-/* vb.context = 0; */
}
static void VFMT_FALLBACK( const char *caller )
{
- GLcontext *ctx = vb.context;
+ GET_CURRENT_CONTEXT(ctx);
r200ContextPtr rmesa = R200_CONTEXT(ctx);
GLfloat tmp[3][15];
GLuint i, prim;
@@ -413,7 +414,6 @@ static void VFMT_FALLBACK( const char *caller )
assert(rmesa->dma.flush == 0);
rmesa->vb.fell_back = GL_TRUE;
rmesa->vb.installed = GL_FALSE;
- vb.context = 0;
glBegin( prim );
if (rmesa->vb.installed_color_3f_sz == 4)
@@ -462,50 +462,51 @@ static void VFMT_FALLBACK( const char *caller )
/* Replay current vertex
*/
if (ind0 & R200_VTX_N0)
- glNormal3fv( vb.normalptr );
+ glNormal3fv( rmesa->vb.normalptr );
if (VTX_COLOR(ind0, 0) == R200_VTX_PK_RGBA)
- glColor4ub( vb.colorptr->red, vb.colorptr->green, vb.colorptr->blue, vb.colorptr->alpha );
+ glColor4ub( rmesa->vb.colorptr->red, rmesa->vb.colorptr->green, rmesa->vb.colorptr->blue, rmesa->vb.colorptr->alpha );
else if (VTX_COLOR(ind0, 0) == R200_VTX_FP_RGBA)
- glColor4fv( vb.floatcolorptr );
+ glColor4fv( rmesa->vb.floatcolorptr );
else if (VTX_COLOR(ind0, 0) == R200_VTX_FP_RGB) {
if (rmesa->vb.installed_color_3f_sz == 4 && alpha != 1.0)
- glColor4f( vb.floatcolorptr[0],
- vb.floatcolorptr[1],
- vb.floatcolorptr[2],
+ glColor4f( rmesa->vb.floatcolorptr[0],
+ rmesa->vb.floatcolorptr[1],
+ rmesa->vb.floatcolorptr[2],
alpha );
else
- glColor3fv( vb.floatcolorptr );
+ glColor3fv( rmesa->vb.floatcolorptr );
}
if (VTX_COLOR(ind0, 1) == R200_VTX_PK_RGBA)
- _glapi_Dispatch->SecondaryColor3ubEXT( vb.specptr->red, vb.specptr->green, vb.specptr->blue );
+ _glapi_Dispatch->SecondaryColor3ubEXT( rmesa->vb.specptr->red, rmesa->vb.specptr->green, rmesa->vb.specptr->blue );
if (ind1 & (7 << R200_VTX_TEX0_COMP_CNT_SHIFT))
- glTexCoord2fv( vb.texcoordptr[0] );
+ glTexCoord2fv( rmesa->vb.texcoordptr[0] );
if (ind1 & (7 << R200_VTX_TEX1_COMP_CNT_SHIFT))
- glMultiTexCoord2fvARB( GL_TEXTURE1_ARB, vb.texcoordptr[1] );
+ glMultiTexCoord2fvARB( GL_TEXTURE1_ARB, rmesa->vb.texcoordptr[1] );
}
static void wrap_buffer( void )
{
- GLcontext *ctx = vb.context;
+ GET_CURRENT_CONTEXT(ctx);
r200ContextPtr rmesa = R200_CONTEXT(ctx);
GLfloat tmp[3][15];
GLuint i, nrverts;
if (R200_DEBUG & (DEBUG_VFMT|DEBUG_PRIMS))
- fprintf(stderr, "%s %d\n", __FUNCTION__, vb.initial_counter - vb.counter);
+ fprintf(stderr, "%s %d\n", __FUNCTION__,
+ rmesa->vb.initial_counter - rmesa->vb.counter);
/* Don't deal with parity.
*/
- if ((((vb.initial_counter - vb.counter) -
+ if ((((rmesa->vb.initial_counter - rmesa->vb.counter) -
rmesa->vb.primlist[rmesa->vb.nrprims].start) & 1)) {
- vb.counter++;
- vb.initial_counter++;
+ rmesa->vb.counter++;
+ rmesa->vb.initial_counter++;
return;
}
@@ -534,12 +535,12 @@ static void wrap_buffer( void )
/* Reset counter, dmaptr
*/
- vb.dmaptr = (int *)(rmesa->dma.current.ptr + rmesa->dma.current.address);
- vb.counter = (rmesa->dma.current.end - rmesa->dma.current.ptr) /
- (vb.vertex_size * 4);
- vb.counter--;
- vb.initial_counter = vb.counter;
- vb.notify = wrap_buffer;
+ rmesa->vb.dmaptr = (int *)(rmesa->dma.current.ptr + rmesa->dma.current.address);
+ rmesa->vb.counter = (rmesa->dma.current.end - rmesa->dma.current.ptr) /
+ (rmesa->vb.vertex_size * 4);
+ rmesa->vb.counter--;
+ rmesa->vb.initial_counter = rmesa->vb.counter;
+ rmesa->vb.notify = wrap_buffer;
rmesa->dma.flush = flush_prims;
@@ -554,15 +555,15 @@ static void wrap_buffer( void )
for (i = 0 ; i < nrverts; i++) {
if (R200_DEBUG & DEBUG_VERTS) {
int j;
- fprintf(stderr, "re-emit vertex %d to %p\n", i, vb.dmaptr);
+ fprintf(stderr, "re-emit vertex %d to %p\n", i, rmesa->vb.dmaptr);
if (R200_DEBUG & DEBUG_VERBOSE)
- for (j = 0 ; j < vb.vertex_size; j++)
+ for (j = 0 ; j < rmesa->vb.vertex_size; j++)
fprintf(stderr, "\t%08x/%f\n", *(int*)&tmp[i][j], tmp[i][j]);
}
- memcpy( vb.dmaptr, tmp[i], vb.vertex_size * 4 );
- vb.dmaptr += vb.vertex_size;
- vb.counter--;
+ memcpy( rmesa->vb.dmaptr, tmp[i], rmesa->vb.vertex_size * 4 );
+ rmesa->vb.dmaptr += rmesa->vb.vertex_size;
+ rmesa->vb.counter--;
}
}
@@ -650,71 +651,71 @@ static GLboolean check_vtx_fmt( GLcontext *ctx )
rmesa->vb.vtxfmt_1 = ind1;
rmesa->vb.prim = &ctx->Driver.CurrentExecPrimitive;
- vb.vertex_size = 3;
- vb.normalptr = ctx->Current.Attrib[VERT_ATTRIB_NORMAL];
- vb.colorptr = NULL;
- vb.floatcolorptr = ctx->Current.Attrib[VERT_ATTRIB_COLOR0];
- vb.specptr = NULL;
- vb.floatspecptr = ctx->Current.Attrib[VERT_ATTRIB_COLOR1];
- vb.texcoordptr[0] = ctx->Current.Attrib[VERT_ATTRIB_TEX0];
- vb.texcoordptr[1] = ctx->Current.Attrib[VERT_ATTRIB_TEX1];
+ rmesa->vb.vertex_size = 3;
+ rmesa->vb.normalptr = ctx->Current.Attrib[VERT_ATTRIB_NORMAL];
+ rmesa->vb.colorptr = NULL;
+ rmesa->vb.floatcolorptr = ctx->Current.Attrib[VERT_ATTRIB_COLOR0];
+ rmesa->vb.specptr = NULL;
+ rmesa->vb.floatspecptr = ctx->Current.Attrib[VERT_ATTRIB_COLOR1];
+ rmesa->vb.texcoordptr[0] = ctx->Current.Attrib[VERT_ATTRIB_TEX0];
+ rmesa->vb.texcoordptr[1] = ctx->Current.Attrib[VERT_ATTRIB_TEX1];
/* Run through and initialize the vertex components in the order
* the hardware understands:
*/
if (ind0 & R200_VTX_N0) {
- vb.normalptr = &vb.vertex[vb.vertex_size].f;
- vb.vertex_size += 3;
- vb.normalptr[0] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0];
- vb.normalptr[1] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1];
- vb.normalptr[2] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2];
+ rmesa->vb.normalptr = &rmesa->vb.vertex[rmesa->vb.vertex_size].f;
+ rmesa->vb.vertex_size += 3;
+ rmesa->vb.normalptr[0] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0];
+ rmesa->vb.normalptr[1] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1];
+ rmesa->vb.normalptr[2] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2];
}
if (VTX_COLOR(ind0, 0) == R200_VTX_PK_RGBA) {
- vb.colorptr = &vb.vertex[vb.vertex_size].color;
- vb.vertex_size += 1;
- UNCLAMPED_FLOAT_TO_CHAN( vb.colorptr->red, ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0] );
- UNCLAMPED_FLOAT_TO_CHAN( vb.colorptr->green, ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1] );
- UNCLAMPED_FLOAT_TO_CHAN( vb.colorptr->blue, ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2] );
- UNCLAMPED_FLOAT_TO_CHAN( vb.colorptr->alpha, ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3] );
+ rmesa->vb.colorptr = &rmesa->vb.vertex[rmesa->vb.vertex_size].color;
+ rmesa->vb.vertex_size += 1;
+ UNCLAMPED_FLOAT_TO_CHAN( rmesa->vb.colorptr->red, ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0] );
+ UNCLAMPED_FLOAT_TO_CHAN( rmesa->vb.colorptr->green, ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1] );
+ UNCLAMPED_FLOAT_TO_CHAN( rmesa->vb.colorptr->blue, ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2] );
+ UNCLAMPED_FLOAT_TO_CHAN( rmesa->vb.colorptr->alpha, ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3] );
}
else if (VTX_COLOR(ind0, 0) == R200_VTX_FP_RGBA) {
- vb.floatcolorptr = &vb.vertex[vb.vertex_size].f;
- vb.vertex_size += 4;
- vb.floatcolorptr[0] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0];
- vb.floatcolorptr[1] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1];
- vb.floatcolorptr[2] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2];
- vb.floatcolorptr[3] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3];
+ rmesa->vb.floatcolorptr = &rmesa->vb.vertex[rmesa->vb.vertex_size].f;
+ rmesa->vb.vertex_size += 4;
+ rmesa->vb.floatcolorptr[0] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0];
+ rmesa->vb.floatcolorptr[1] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1];
+ rmesa->vb.floatcolorptr[2] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2];
+ rmesa->vb.floatcolorptr[3] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3];
}
else if (VTX_COLOR(ind0, 0) == R200_VTX_FP_RGB) {
- vb.floatcolorptr = &vb.vertex[vb.vertex_size].f;
- vb.vertex_size += 3;
- vb.floatcolorptr[0] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0];
- vb.floatcolorptr[1] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1];
- vb.floatcolorptr[2] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2];
+ rmesa->vb.floatcolorptr = &rmesa->vb.vertex[rmesa->vb.vertex_size].f;
+ rmesa->vb.vertex_size += 3;
+ rmesa->vb.floatcolorptr[0] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0];
+ rmesa->vb.floatcolorptr[1] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1];
+ rmesa->vb.floatcolorptr[2] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2];
}
if (VTX_COLOR(ind0, 1) == R200_VTX_PK_RGBA) {
- vb.specptr = &vb.vertex[vb.vertex_size].color;
- vb.vertex_size += 1;
- UNCLAMPED_FLOAT_TO_CHAN( vb.specptr->red, ctx->Current.Attrib[VERT_ATTRIB_COLOR1][0] );
- UNCLAMPED_FLOAT_TO_CHAN( vb.specptr->green, ctx->Current.Attrib[VERT_ATTRIB_COLOR1][1] );
- UNCLAMPED_FLOAT_TO_CHAN( vb.specptr->blue, ctx->Current.Attrib[VERT_ATTRIB_COLOR1][2] );
+ rmesa->vb.specptr = &rmesa->vb.vertex[rmesa->vb.vertex_size].color;
+ rmesa->vb.vertex_size += 1;
+ UNCLAMPED_FLOAT_TO_CHAN( rmesa->vb.specptr->red, ctx->Current.Attrib[VERT_ATTRIB_COLOR1][0] );
+ UNCLAMPED_FLOAT_TO_CHAN( rmesa->vb.specptr->green, ctx->Current.Attrib[VERT_ATTRIB_COLOR1][1] );
+ UNCLAMPED_FLOAT_TO_CHAN( rmesa->vb.specptr->blue, ctx->Current.Attrib[VERT_ATTRIB_COLOR1][2] );
}
if (ind1 & (7 << R200_VTX_TEX0_COMP_CNT_SHIFT)) {
- vb.texcoordptr[0] = &vb.vertex[vb.vertex_size].f;
- vb.vertex_size += 2;
- vb.texcoordptr[0][0] = ctx->Current.Attrib[VERT_ATTRIB_TEX0][0];
- vb.texcoordptr[0][1] = ctx->Current.Attrib[VERT_ATTRIB_TEX0][1];
+ rmesa->vb.texcoordptr[0] = &rmesa->vb.vertex[rmesa->vb.vertex_size].f;
+ rmesa->vb.vertex_size += 2;
+ rmesa->vb.texcoordptr[0][0] = ctx->Current.Attrib[VERT_ATTRIB_TEX0][0];
+ rmesa->vb.texcoordptr[0][1] = ctx->Current.Attrib[VERT_ATTRIB_TEX0][1];
}
if (ind1 & (7 << R200_VTX_TEX1_COMP_CNT_SHIFT)) {
- vb.texcoordptr[1] = &vb.vertex[vb.vertex_size].f;
- vb.vertex_size += 2;
- vb.texcoordptr[1][0] = ctx->Current.Attrib[VERT_ATTRIB_TEX1][0];
- vb.texcoordptr[1][1] = ctx->Current.Attrib[VERT_ATTRIB_TEX1][1];
+ rmesa->vb.texcoordptr[1] = &rmesa->vb.vertex[rmesa->vb.vertex_size].f;
+ rmesa->vb.vertex_size += 2;
+ rmesa->vb.texcoordptr[1][0] = ctx->Current.Attrib[VERT_ATTRIB_TEX1][0];
+ rmesa->vb.texcoordptr[1][1] = ctx->Current.Attrib[VERT_ATTRIB_TEX1][1];
}
if (rmesa->vb.installed_vertex_format != rmesa->vb.vtxfmt_0) {
@@ -767,7 +768,6 @@ static void r200VtxfmtValidate( GLcontext *ctx )
ctx->Driver.FlushVertices = r200VtxFmtFlushVertices;
ctx->Driver.NewList = r200NewList;
rmesa->vb.installed = GL_TRUE;
- vb.context = ctx;
}
else if (R200_DEBUG & DEBUG_VFMT)
fprintf(stderr, "%s: already installed", __FUNCTION__);
@@ -782,7 +782,6 @@ static void r200VtxfmtValidate( GLcontext *ctx )
_tnl_wakeup_exec( ctx );
ctx->Driver.FlushVertices = r200FlushVertices;
rmesa->vb.installed = GL_FALSE;
- vb.context = 0;
}
}
}
@@ -794,7 +793,7 @@ static void r200VtxfmtValidate( GLcontext *ctx )
static void r200_Materialfv( GLenum face, GLenum pname,
const GLfloat *params )
{
- GLcontext *ctx = vb.context;
+ GET_CURRENT_CONTEXT(ctx);
r200ContextPtr rmesa = R200_CONTEXT( ctx );
if (R200_DEBUG & DEBUG_VFMT)
@@ -806,7 +805,7 @@ static void r200_Materialfv( GLenum face, GLenum pname,
return;
}
_mesa_noop_Materialfv( face, pname, params );
- r200UpdateMaterial( vb.context );
+ r200UpdateMaterial( ctx );
}
@@ -814,7 +813,7 @@ static void r200_Materialfv( GLenum face, GLenum pname,
*/
static void r200_Begin( GLenum mode )
{
- GLcontext *ctx = vb.context;
+ GET_CURRENT_CONTEXT(ctx);
r200ContextPtr rmesa = R200_CONTEXT(ctx);
if (R200_DEBUG & DEBUG_VFMT)
@@ -846,7 +845,7 @@ static void r200_Begin( GLenum mode )
}
- if (rmesa->dma.flush && vb.counter < 12) {
+ if (rmesa->dma.flush && rmesa->vb.counter < 12) {
if (R200_DEBUG & DEBUG_VFMT)
fprintf(stderr, "%s: flush almost-empty buffers\n", __FUNCTION__);
flush_prims( rmesa );
@@ -855,20 +854,20 @@ static void r200_Begin( GLenum mode )
/* Need to arrange to save vertices here? Or always copy from dma (yuk)?
*/
if (!rmesa->dma.flush) {
- if (rmesa->dma.current.ptr + 12*vb.vertex_size*4 >
+ if (rmesa->dma.current.ptr + 12*rmesa->vb.vertex_size*4 >
rmesa->dma.current.end) {
R200_NEWPRIM( rmesa );
r200RefillCurrentDmaRegion( rmesa );
}
- vb.dmaptr = (int *)(rmesa->dma.current.address + rmesa->dma.current.ptr);
- vb.counter = (rmesa->dma.current.end - rmesa->dma.current.ptr) /
- (vb.vertex_size * 4);
- vb.counter--;
- vb.initial_counter = vb.counter;
- vb.notify = wrap_buffer;
+ rmesa->vb.dmaptr = (int *)(rmesa->dma.current.address + rmesa->dma.current.ptr);
+ rmesa->vb.counter = (rmesa->dma.current.end - rmesa->dma.current.ptr) /
+ (rmesa->vb.vertex_size * 4);
+ rmesa->vb.counter--;
+ rmesa->vb.initial_counter = rmesa->vb.counter;
+ rmesa->vb.notify = wrap_buffer;
rmesa->dma.flush = flush_prims;
- vb.context->Driver.NeedFlush |= FLUSH_STORED_VERTICES;
+ ctx->Driver.NeedFlush |= FLUSH_STORED_VERTICES;
}
@@ -880,7 +879,7 @@ static void r200_Begin( GLenum mode )
static void r200_End( void )
{
- GLcontext *ctx = vb.context;
+ GET_CURRENT_CONTEXT(ctx);
r200ContextPtr rmesa = R200_CONTEXT(ctx);
if (R200_DEBUG & DEBUG_VFMT)
@@ -948,7 +947,6 @@ static void r200VtxFmtFlushVertices( GLcontext *ctx, GLuint flags )
fprintf(stderr, "%s\n", __FUNCTION__);
assert(rmesa->vb.installed);
- assert(vb.context == ctx);
if (flags & FLUSH_UPDATE_CURRENT) {
r200_copy_to_current( ctx );
@@ -959,11 +957,10 @@ static void r200VtxFmtFlushVertices( GLcontext *ctx, GLuint flags )
}
if (flags & FLUSH_STORED_VERTICES) {
- r200ContextPtr rmesa = R200_CONTEXT( ctx );
assert (rmesa->dma.flush == 0 ||
rmesa->dma.flush == flush_prims);
if (rmesa->dma.flush == flush_prims)
- flush_prims( R200_CONTEXT( ctx ) );
+ flush_prims( rmesa );
ctx->Driver.NeedFlush &= ~FLUSH_STORED_VERTICES;
}
}
@@ -1041,7 +1038,6 @@ void r200VtxfmtInit( GLcontext *ctx )
TNL_CONTEXT(ctx)->Driver.NotifyBegin = r200NotifyBegin;
- vb.context = ctx;
rmesa->vb.enabled = 1;
rmesa->vb.prim = &ctx->Driver.CurrentExecPrimitive;
rmesa->vb.primflags = 0;
@@ -1088,34 +1084,11 @@ static void free_funcs( struct dynfn *l )
void r200VtxfmtUnbindContext( GLcontext *ctx )
{
- if (R200_CONTEXT(ctx)->vb.installed) {
- assert(vb.context == ctx);
- VFMT_FALLBACK_OUTSIDE_BEGIN_END( __FUNCTION__ );
- }
-
- TNL_CONTEXT(ctx)->Driver.NotifyBegin = 0;
}
void r200VtxfmtMakeCurrent( GLcontext *ctx )
{
- r200ContextPtr rmesa = R200_CONTEXT( ctx );
-
-#if defined(THREADS)
- /* Insider knowledge: this value is zero when multithreading has
- * been detected.
- */
- if (_glapi_Context == 0) {
- if (R200_DEBUG & (DEBUG_DRI|DEBUG_VFMT))
- fprintf(stderr, "**** Multithreading: disabling vtxfmt!\n");
- TNL_CONTEXT(ctx)->Driver.NotifyBegin = 0;
- return;
- }
-#endif
-
- if (rmesa->vb.enabled) {
- TNL_CONTEXT(ctx)->Driver.NotifyBegin = r200NotifyBegin;
- }
}
diff --git a/xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt.h b/xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt.h
index 4f0aeb8c6..fde3eca46 100644
--- a/xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt.h
+++ b/xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt.h
@@ -43,9 +43,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-extern struct r200_vb vb;
-
-
extern void r200VtxfmtUpdate( GLcontext *ctx );
extern void r200VtxfmtInit( GLcontext *ctx );
extern void r200VtxfmtInvalidate( GLcontext *ctx );
diff --git a/xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt_c.c b/xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt_c.c
index 759cf696c..b7f3fec43 100644
--- a/xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt_c.c
+++ b/xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt_c.c
@@ -50,65 +50,73 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
static void r200_Vertex3f( GLfloat x, GLfloat y, GLfloat z )
{
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
int i;
- *vb.dmaptr++ = *(int *)&x;
- *vb.dmaptr++ = *(int *)&y;
- *vb.dmaptr++ = *(int *)&z;
+ *rmesa->vb.dmaptr++ = *(int *)&x;
+ *rmesa->vb.dmaptr++ = *(int *)&y;
+ *rmesa->vb.dmaptr++ = *(int *)&z;
- for (i = 3; i < vb.vertex_size; i++)
- *vb.dmaptr++ = vb.vertex[i].i;
+ for (i = 3; i < rmesa->vb.vertex_size; i++)
+ *rmesa->vb.dmaptr++ = rmesa->vb.vertex[i].i;
- if (--vb.counter == 0)
- vb.notify();
+ if (--rmesa->vb.counter == 0)
+ rmesa->vb.notify();
}
static void r200_Vertex3fv( const GLfloat *v )
{
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
int i;
- *vb.dmaptr++ = *(int *)&v[0];
- *vb.dmaptr++ = *(int *)&v[1];
- *vb.dmaptr++ = *(int *)&v[2];
+ *rmesa->vb.dmaptr++ = *(int *)&v[0];
+ *rmesa->vb.dmaptr++ = *(int *)&v[1];
+ *rmesa->vb.dmaptr++ = *(int *)&v[2];
- for (i = 3; i < vb.vertex_size; i++)
- *vb.dmaptr++ = vb.vertex[i].i;
+ for (i = 3; i < rmesa->vb.vertex_size; i++)
+ *rmesa->vb.dmaptr++ = rmesa->vb.vertex[i].i;
- if (--vb.counter == 0)
- vb.notify();
+ if (--rmesa->vb.counter == 0)
+ rmesa->vb.notify();
}
static void r200_Vertex2f( GLfloat x, GLfloat y )
{
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
int i;
+
+ *rmesa->vb.dmaptr++ = *(int *)&x;
+ *rmesa->vb.dmaptr++ = *(int *)&y;
+ *rmesa->vb.dmaptr++ = 0;
- *vb.dmaptr++ = *(int *)&x;
- *vb.dmaptr++ = *(int *)&y;
- *vb.dmaptr++ = 0;
-
- for (i = 3; i < vb.vertex_size; i++)
- *vb.dmaptr++ = vb.vertex[i].i;
+ for (i = 3; i < rmesa->vb.vertex_size; i++)
+ *rmesa->vb.dmaptr++ = rmesa->vb.vertex[i].i;
- if (--vb.counter == 0)
- vb.notify();
+ if (--rmesa->vb.counter == 0)
+ rmesa->vb.notify();
}
static void r200_Vertex2fv( const GLfloat *v )
{
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
int i;
- *vb.dmaptr++ = *(int *)&v[0];
- *vb.dmaptr++ = *(int *)&v[1];
- *vb.dmaptr++ = 0;
+ *rmesa->vb.dmaptr++ = *(int *)&v[0];
+ *rmesa->vb.dmaptr++ = *(int *)&v[1];
+ *rmesa->vb.dmaptr++ = 0;
- for (i = 3; i < vb.vertex_size; i++)
- *vb.dmaptr++ = vb.vertex[i].i;
+ for (i = 3; i < rmesa->vb.vertex_size; i++)
+ *rmesa->vb.dmaptr++ = rmesa->vb.vertex[i].i;
- if (--vb.counter == 0)
- vb.notify();
+ if (--rmesa->vb.counter == 0)
+ rmesa->vb.notify();
}
@@ -117,7 +125,9 @@ static void r200_Vertex2fv( const GLfloat *v )
*/
static void r200_Color3ub_ub( GLubyte r, GLubyte g, GLubyte b )
{
- r200_color_t *dest = vb.colorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ r200_color_t *dest = rmesa->vb.colorptr;
dest->red = r;
dest->green = g;
dest->blue = b;
@@ -126,7 +136,9 @@ static void r200_Color3ub_ub( GLubyte r, GLubyte g, GLubyte b )
static void r200_Color3ubv_ub( const GLubyte *v )
{
- r200_color_t *dest = vb.colorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ r200_color_t *dest = rmesa->vb.colorptr;
dest->red = v[0];
dest->green = v[1];
dest->blue = v[2];
@@ -135,7 +147,9 @@ static void r200_Color3ubv_ub( const GLubyte *v )
static void r200_Color4ub_ub( GLubyte r, GLubyte g, GLubyte b, GLubyte a )
{
- r200_color_t *dest = vb.colorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ r200_color_t *dest = rmesa->vb.colorptr;
dest->red = r;
dest->green = g;
dest->blue = b;
@@ -144,13 +158,17 @@ static void r200_Color4ub_ub( GLubyte r, GLubyte g, GLubyte b, GLubyte a )
static void r200_Color4ubv_ub( const GLubyte *v )
{
- *(GLuint *)vb.colorptr = LE32_TO_CPU(*(GLuint *)v);
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ *(GLuint *)rmesa->vb.colorptr = LE32_TO_CPU(*(GLuint *)v);
}
static void r200_Color3f_ub( GLfloat r, GLfloat g, GLfloat b )
{
- r200_color_t *dest = vb.colorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ r200_color_t *dest = rmesa->vb.colorptr;
UNCLAMPED_FLOAT_TO_UBYTE( dest->red, r );
UNCLAMPED_FLOAT_TO_UBYTE( dest->green, g );
UNCLAMPED_FLOAT_TO_UBYTE( dest->blue, b );
@@ -159,7 +177,9 @@ static void r200_Color3f_ub( GLfloat r, GLfloat g, GLfloat b )
static void r200_Color3fv_ub( const GLfloat *v )
{
- r200_color_t *dest = vb.colorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ r200_color_t *dest = rmesa->vb.colorptr;
UNCLAMPED_FLOAT_TO_UBYTE( dest->red, v[0] );
UNCLAMPED_FLOAT_TO_UBYTE( dest->green, v[1] );
UNCLAMPED_FLOAT_TO_UBYTE( dest->blue, v[2] );
@@ -168,7 +188,9 @@ static void r200_Color3fv_ub( const GLfloat *v )
static void r200_Color4f_ub( GLfloat r, GLfloat g, GLfloat b, GLfloat a )
{
- r200_color_t *dest = vb.colorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ r200_color_t *dest = rmesa->vb.colorptr;
UNCLAMPED_FLOAT_TO_UBYTE( dest->red, r );
UNCLAMPED_FLOAT_TO_UBYTE( dest->green, g );
UNCLAMPED_FLOAT_TO_UBYTE( dest->blue, b );
@@ -177,7 +199,9 @@ static void r200_Color4f_ub( GLfloat r, GLfloat g, GLfloat b, GLfloat a )
static void r200_Color4fv_ub( const GLfloat *v )
{
- r200_color_t *dest = vb.colorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ r200_color_t *dest = rmesa->vb.colorptr;
UNCLAMPED_FLOAT_TO_UBYTE( dest->red, v[0] );
UNCLAMPED_FLOAT_TO_UBYTE( dest->green, v[1] );
UNCLAMPED_FLOAT_TO_UBYTE( dest->blue, v[2] );
@@ -189,7 +213,9 @@ static void r200_Color4fv_ub( const GLfloat *v )
*/
static void r200_Color3ub_4f( GLubyte r, GLubyte g, GLubyte b )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = UBYTE_TO_FLOAT(r);
dest[1] = UBYTE_TO_FLOAT(g);
dest[2] = UBYTE_TO_FLOAT(b);
@@ -198,7 +224,9 @@ static void r200_Color3ub_4f( GLubyte r, GLubyte g, GLubyte b )
static void r200_Color3ubv_4f( const GLubyte *v )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = UBYTE_TO_FLOAT(v[0]);
dest[1] = UBYTE_TO_FLOAT(v[1]);
dest[2] = UBYTE_TO_FLOAT(v[2]);
@@ -207,7 +235,9 @@ static void r200_Color3ubv_4f( const GLubyte *v )
static void r200_Color4ub_4f( GLubyte r, GLubyte g, GLubyte b, GLubyte a )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = UBYTE_TO_FLOAT(r);
dest[1] = UBYTE_TO_FLOAT(g);
dest[2] = UBYTE_TO_FLOAT(b);
@@ -216,7 +246,9 @@ static void r200_Color4ub_4f( GLubyte r, GLubyte g, GLubyte b, GLubyte a )
static void r200_Color4ubv_4f( const GLubyte *v )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = UBYTE_TO_FLOAT(v[0]);
dest[1] = UBYTE_TO_FLOAT(v[1]);
dest[2] = UBYTE_TO_FLOAT(v[2]);
@@ -226,7 +258,9 @@ static void r200_Color4ubv_4f( const GLubyte *v )
static void r200_Color3f_4f( GLfloat r, GLfloat g, GLfloat b )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = r;
dest[1] = g;
dest[2] = b;
@@ -235,7 +269,9 @@ static void r200_Color3f_4f( GLfloat r, GLfloat g, GLfloat b )
static void r200_Color3fv_4f( const GLfloat *v )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = v[0];
dest[1] = v[1];
dest[2] = v[2];
@@ -244,7 +280,9 @@ static void r200_Color3fv_4f( const GLfloat *v )
static void r200_Color4f_4f( GLfloat r, GLfloat g, GLfloat b, GLfloat a )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = r;
dest[1] = g;
dest[2] = b;
@@ -253,7 +291,9 @@ static void r200_Color4f_4f( GLfloat r, GLfloat g, GLfloat b, GLfloat a )
static void r200_Color4fv_4f( const GLfloat *v )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = v[0];
dest[1] = v[1];
dest[2] = v[2];
@@ -265,7 +305,9 @@ static void r200_Color4fv_4f( const GLfloat *v )
*/
static void r200_Color3ub_3f( GLubyte r, GLubyte g, GLubyte b )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = UBYTE_TO_FLOAT(r);
dest[1] = UBYTE_TO_FLOAT(g);
dest[2] = UBYTE_TO_FLOAT(b);
@@ -273,7 +315,9 @@ static void r200_Color3ub_3f( GLubyte r, GLubyte g, GLubyte b )
static void r200_Color3ubv_3f( const GLubyte *v )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = UBYTE_TO_FLOAT(v[0]);
dest[1] = UBYTE_TO_FLOAT(v[1]);
dest[2] = UBYTE_TO_FLOAT(v[2]);
@@ -281,26 +325,32 @@ static void r200_Color3ubv_3f( const GLubyte *v )
static void r200_Color4ub_3f( GLubyte r, GLubyte g, GLubyte b, GLubyte a )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = UBYTE_TO_FLOAT(r);
dest[1] = UBYTE_TO_FLOAT(g);
dest[2] = UBYTE_TO_FLOAT(b);
- vb.context->Current.Attrib[VERT_ATTRIB_COLOR0][3] = UBYTE_TO_FLOAT(a);
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3] = UBYTE_TO_FLOAT(a);
}
static void r200_Color4ubv_3f( const GLubyte *v )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = UBYTE_TO_FLOAT(v[0]);
dest[1] = UBYTE_TO_FLOAT(v[1]);
dest[2] = UBYTE_TO_FLOAT(v[2]);
- vb.context->Current.Attrib[VERT_ATTRIB_COLOR0][3] = UBYTE_TO_FLOAT(v[3]);
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3] = UBYTE_TO_FLOAT(v[3]);
}
static void r200_Color3f_3f( GLfloat r, GLfloat g, GLfloat b )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = r;
dest[1] = g;
dest[2] = b;
@@ -308,7 +358,9 @@ static void r200_Color3f_3f( GLfloat r, GLfloat g, GLfloat b )
static void r200_Color3fv_3f( const GLfloat *v )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = v[0];
dest[1] = v[1];
dest[2] = v[2];
@@ -316,20 +368,24 @@ static void r200_Color3fv_3f( const GLfloat *v )
static void r200_Color4f_3f( GLfloat r, GLfloat g, GLfloat b, GLfloat a )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = r;
dest[1] = g;
dest[2] = b;
- vb.context->Current.Attrib[VERT_ATTRIB_COLOR0][3] = a;
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3] = a;
}
static void r200_Color4fv_3f( const GLfloat *v )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = v[0];
dest[1] = v[1];
dest[2] = v[2];
- vb.context->Current.Attrib[VERT_ATTRIB_COLOR0][3] = v[3];
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3] = v[3];
}
@@ -337,7 +393,9 @@ static void r200_Color4fv_3f( const GLfloat *v )
*/
static void r200_SecondaryColor3ubEXT_ub( GLubyte r, GLubyte g, GLubyte b )
{
- r200_color_t *dest = vb.specptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ r200_color_t *dest = rmesa->vb.specptr;
dest->red = r;
dest->green = g;
dest->blue = b;
@@ -346,7 +404,9 @@ static void r200_SecondaryColor3ubEXT_ub( GLubyte r, GLubyte g, GLubyte b )
static void r200_SecondaryColor3ubvEXT_ub( const GLubyte *v )
{
- r200_color_t *dest = vb.specptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ r200_color_t *dest = rmesa->vb.specptr;
dest->red = v[0];
dest->green = v[1];
dest->blue = v[2];
@@ -355,7 +415,9 @@ static void r200_SecondaryColor3ubvEXT_ub( const GLubyte *v )
static void r200_SecondaryColor3fEXT_ub( GLfloat r, GLfloat g, GLfloat b )
{
- r200_color_t *dest = vb.specptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ r200_color_t *dest = rmesa->vb.specptr;
UNCLAMPED_FLOAT_TO_UBYTE( dest->red, r );
UNCLAMPED_FLOAT_TO_UBYTE( dest->green, g );
UNCLAMPED_FLOAT_TO_UBYTE( dest->blue, b );
@@ -364,7 +426,9 @@ static void r200_SecondaryColor3fEXT_ub( GLfloat r, GLfloat g, GLfloat b )
static void r200_SecondaryColor3fvEXT_ub( const GLfloat *v )
{
- r200_color_t *dest = vb.specptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ r200_color_t *dest = rmesa->vb.specptr;
UNCLAMPED_FLOAT_TO_UBYTE( dest->red, v[0] );
UNCLAMPED_FLOAT_TO_UBYTE( dest->green, v[1] );
UNCLAMPED_FLOAT_TO_UBYTE( dest->blue, v[2] );
@@ -373,7 +437,9 @@ static void r200_SecondaryColor3fvEXT_ub( const GLfloat *v )
static void r200_SecondaryColor3ubEXT_3f( GLubyte r, GLubyte g, GLubyte b )
{
- GLfloat *dest = vb.floatspecptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatspecptr;
dest[0] = UBYTE_TO_FLOAT(r);
dest[1] = UBYTE_TO_FLOAT(g);
dest[2] = UBYTE_TO_FLOAT(b);
@@ -382,7 +448,9 @@ static void r200_SecondaryColor3ubEXT_3f( GLubyte r, GLubyte g, GLubyte b )
static void r200_SecondaryColor3ubvEXT_3f( const GLubyte *v )
{
- GLfloat *dest = vb.floatspecptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatspecptr;
dest[0] = UBYTE_TO_FLOAT(v[0]);
dest[1] = UBYTE_TO_FLOAT(v[1]);
dest[2] = UBYTE_TO_FLOAT(v[2]);
@@ -391,7 +459,9 @@ static void r200_SecondaryColor3ubvEXT_3f( const GLubyte *v )
static void r200_SecondaryColor3fEXT_3f( GLfloat r, GLfloat g, GLfloat b )
{
- GLfloat *dest = vb.floatspecptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatspecptr;
dest[0] = r;
dest[1] = g;
dest[2] = b;
@@ -400,7 +470,9 @@ static void r200_SecondaryColor3fEXT_3f( GLfloat r, GLfloat g, GLfloat b )
static void r200_SecondaryColor3fvEXT_3f( const GLfloat *v )
{
- GLfloat *dest = vb.floatspecptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatspecptr;
dest[0] = v[0];
dest[1] = v[1];
dest[2] = v[2];
@@ -413,7 +485,9 @@ static void r200_SecondaryColor3fvEXT_3f( const GLfloat *v )
*/
static void r200_Normal3f( GLfloat n0, GLfloat n1, GLfloat n2 )
{
- GLfloat *dest = vb.normalptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.normalptr;
dest[0] = n0;
dest[1] = n1;
dest[2] = n2;
@@ -421,7 +495,9 @@ static void r200_Normal3f( GLfloat n0, GLfloat n1, GLfloat n2 )
static void r200_Normal3fv( const GLfloat *v )
{
- GLfloat *dest = vb.normalptr;
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.normalptr;
dest[0] = v[0];
dest[1] = v[1];
dest[2] = v[2];
@@ -432,28 +508,36 @@ static void r200_Normal3fv( const GLfloat *v )
*/
static void r200_TexCoord1f( GLfloat s )
{
- GLfloat *dest = vb.texcoordptr[0];
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.texcoordptr[0];
dest[0] = s;
dest[1] = 0;
}
static void r200_TexCoord1fv( const GLfloat *v )
{
- GLfloat *dest = vb.texcoordptr[0];
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.texcoordptr[0];
dest[0] = v[0];
dest[1] = 0;
}
static void r200_TexCoord2f( GLfloat s, GLfloat t )
{
- GLfloat *dest = vb.texcoordptr[0];
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.texcoordptr[0];
dest[0] = s;
dest[1] = t;
}
static void r200_TexCoord2fv( const GLfloat *v )
{
- GLfloat *dest = vb.texcoordptr[0];
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.texcoordptr[0];
dest[0] = v[0];
dest[1] = v[1];
}
@@ -471,28 +555,36 @@ static void r200_TexCoord2fv( const GLfloat *v )
static void r200_MultiTexCoord1fARB( GLenum target, GLfloat s )
{
- GLfloat *dest = vb.texcoordptr[target & 1];
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.texcoordptr[target & 1];
dest[0] = s;
dest[1] = 0;
}
static void r200_MultiTexCoord1fvARB( GLenum target, const GLfloat *v )
{
- GLfloat *dest = vb.texcoordptr[(target - GL_TEXTURE0_ARB)&1];
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.texcoordptr[target & 1];
dest[0] = v[0];
dest[1] = 0;
}
static void r200_MultiTexCoord2fARB( GLenum target, GLfloat s, GLfloat t )
{
- GLfloat *dest = vb.texcoordptr[target & 1];
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.texcoordptr[target & 1];
dest[0] = s;
dest[1] = t;
}
static void r200_MultiTexCoord2fvARB( GLenum target, const GLfloat *v )
{
- GLfloat *dest = vb.texcoordptr[target & 1];
+ GET_CURRENT_CONTEXT(ctx);
+ r200ContextPtr rmesa = R200_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.texcoordptr[target & 1];
dest[0] = v[0];
dest[1] = v[1];
}
@@ -515,29 +607,30 @@ static struct dynfn *lookup( struct dynfn *l, const int *key )
#define CHOOSE(FN, FNTYPE, MASK0, MASK1, ARGS1, ARGS2 ) \
static void choose_##FN ARGS1 \
{ \
- r200ContextPtr rmesa = R200_CONTEXT(vb.context); \
+ GET_CURRENT_CONTEXT(ctx); \
+ r200ContextPtr rmesa = R200_CONTEXT(ctx); \
int key[2]; \
struct dynfn *dfn; \
\
- key[0] = rmesa->vb.vtxfmt_0 & MASK0; \
- key[1] = rmesa->vb.vtxfmt_1 & MASK1; \
+ key[0] = rmesa->vb.vtxfmt_0 & MASK0; \
+ key[1] = rmesa->vb.vtxfmt_1 & MASK1; \
\
dfn = lookup( &rmesa->vb.dfn_cache.FN, key ); \
if (dfn == 0) \
- dfn = rmesa->vb.codegen.FN( vb.context, key ); \
+ dfn = rmesa->vb.codegen.FN( ctx, key ); \
else if (R200_DEBUG & DEBUG_CODEGEN) \
fprintf(stderr, "%s -- cached codegen\n", __FUNCTION__ ); \
\
if (dfn) \
- vb.context->Exec->FN = (FNTYPE)(dfn->code); \
+ ctx->Exec->FN = (FNTYPE)(dfn->code); \
else { \
if (R200_DEBUG & DEBUG_CODEGEN) \
fprintf(stderr, "%s -- generic version\n", __FUNCTION__ ); \
- vb.context->Exec->FN = r200_##FN; \
+ ctx->Exec->FN = r200_##FN; \
} \
\
- vb.context->Driver.NeedFlush |= FLUSH_UPDATE_CURRENT; \
- vb.context->Exec->FN ARGS2; \
+ ctx->Driver.NeedFlush |= FLUSH_UPDATE_CURRENT; \
+ ctx->Exec->FN ARGS2; \
}
@@ -552,8 +645,8 @@ static void choose_##FN ARGS1 \
#define CHOOSE_COLOR(FN, FNTYPE, NR, MASK0, MASK1, ARGS1, ARGS2 ) \
static void choose_##FN ARGS1 \
{ \
- GLcontext *ctx = vb.context; \
- r200ContextPtr rmesa = R200_CONTEXT(vb.context); \
+ GET_CURRENT_CONTEXT(ctx); \
+ r200ContextPtr rmesa = R200_CONTEXT(ctx); \
int key[2]; \
struct dynfn *dfn; \
\
@@ -609,7 +702,8 @@ static void choose_##FN ARGS1 \
#define CHOOSE_SECONDARY_COLOR(FN, FNTYPE, MASK0, MASK1, ARGS1, ARGS2 ) \
static void choose_##FN ARGS1 \
{ \
- r200ContextPtr rmesa = R200_CONTEXT(vb.context); \
+ GET_CURRENT_CONTEXT(ctx); \
+ r200ContextPtr rmesa = R200_CONTEXT(ctx); \
int key[2]; \
struct dynfn *dfn; \
\
@@ -618,21 +712,21 @@ static void choose_##FN ARGS1 \
\
dfn = lookup( &rmesa->vb.dfn_cache.FN, key ); \
if (dfn == 0) \
- dfn = rmesa->vb.codegen.FN( vb.context, key ); \
+ dfn = rmesa->vb.codegen.FN( ctx, key ); \
else if (R200_DEBUG & DEBUG_CODEGEN) \
fprintf(stderr, "%s -- cached version\n", __FUNCTION__ ); \
\
if (dfn) \
- vb.context->Exec->FN = (FNTYPE)(dfn->code); \
+ ctx->Exec->FN = (FNTYPE)(dfn->code); \
else { \
if (R200_DEBUG & DEBUG_CODEGEN) \
fprintf(stderr, "%s -- generic version\n", __FUNCTION__ ); \
- vb.context->Exec->FN = (VTX_COLOR(rmesa->vb.vtxfmt_0,1) == R200_VTX_PK_RGBA) \
+ ctx->Exec->FN = (VTX_COLOR(rmesa->vb.vtxfmt_0,1) == R200_VTX_PK_RGBA) \
? r200_##FN##_ub : r200_##FN##_3f; \
} \
\
- vb.context->Driver.NeedFlush |= FLUSH_UPDATE_CURRENT; \
- vb.context->Exec->FN ARGS2; \
+ ctx->Driver.NeedFlush |= FLUSH_UPDATE_CURRENT; \
+ ctx->Exec->FN ARGS2; \
}
diff --git a/xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt_sse.c b/xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt_sse.c
index 0b9470ee0..83eb3e13b 100644
--- a/xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt_sse.c
+++ b/xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt_sse.c
@@ -117,16 +117,16 @@ static struct dynfn *r200_makeSSENormal3fv( GLcontext *ctx, const int *key )
{
r200ContextPtr rmesa = R200_CONTEXT(ctx);
- return r200_makeSSEAttribute3fv( & rmesa->vb.dfn_cache.Normal3fv,
- key, __FUNCTION__, vb.normalptr );
+ return r200_makeSSEAttribute3fv( & rmesa->vb.dfn_cache.Normal3fv, key,
+ __FUNCTION__, rmesa->vb.normalptr );
}
static struct dynfn *r200_makeSSENormal3f( GLcontext *ctx, const int * key )
{
r200ContextPtr rmesa = R200_CONTEXT(ctx);
- return r200_makeSSEAttribute3f( & rmesa->vb.dfn_cache.Normal3f,
- key, __FUNCTION__, vb.normalptr );
+ return r200_makeSSEAttribute3f( & rmesa->vb.dfn_cache.Normal3f, key,
+ __FUNCTION__, rmesa->vb.normalptr );
}
static struct dynfn *r200_makeSSEColor3fv( GLcontext *ctx, const int * key )
@@ -137,8 +137,8 @@ static struct dynfn *r200_makeSSEColor3fv( GLcontext *ctx, const int * key )
{
r200ContextPtr rmesa = R200_CONTEXT(ctx);
- return r200_makeSSEAttribute3fv( & rmesa->vb.dfn_cache.Color3fv,
- key, __FUNCTION__, vb.floatcolorptr );
+ return r200_makeSSEAttribute3fv( & rmesa->vb.dfn_cache.Color3fv, key,
+ __FUNCTION__, rmesa->vb.floatcolorptr );
}
}
@@ -150,8 +150,8 @@ static struct dynfn *r200_makeSSEColor3f( GLcontext *ctx, const int * key )
{
r200ContextPtr rmesa = R200_CONTEXT(ctx);
- return r200_makeSSEAttribute3f( & rmesa->vb.dfn_cache.Color3f,
- key, __FUNCTION__, vb.floatcolorptr );
+ return r200_makeSSEAttribute3f( & rmesa->vb.dfn_cache.Color3f, key,
+ __FUNCTION__, rmesa->vb.floatcolorptr );
}
}
@@ -159,16 +159,16 @@ static struct dynfn *r200_makeSSETexCoord2fv( GLcontext *ctx, const int * key )
{
r200ContextPtr rmesa = R200_CONTEXT(ctx);
- return r200_makeSSEAttribute2fv( & rmesa->vb.dfn_cache.TexCoord2fv,
- key, __FUNCTION__, vb.texcoordptr[0] );
+ return r200_makeSSEAttribute2fv( & rmesa->vb.dfn_cache.TexCoord2fv, key,
+ __FUNCTION__, rmesa->vb.texcoordptr[0] );
}
static struct dynfn *r200_makeSSETexCoord2f( GLcontext *ctx, const int * key )
{
r200ContextPtr rmesa = R200_CONTEXT(ctx);
- return r200_makeSSEAttribute2f( & rmesa->vb.dfn_cache.TexCoord2f,
- key, __FUNCTION__, vb.texcoordptr[0] );
+ return r200_makeSSEAttribute2f( & rmesa->vb.dfn_cache.TexCoord2f, key,
+ __FUNCTION__, rmesa->vb.texcoordptr[0] );
}
static struct dynfn *r200_makeSSEMultiTexCoord2fv( GLcontext *ctx, const int * key )
@@ -179,12 +179,12 @@ static struct dynfn *r200_makeSSEMultiTexCoord2fv( GLcontext *ctx, const int * k
if (R200_DEBUG & DEBUG_CODEGEN)
fprintf(stderr, "%s 0x%08x\n", __FUNCTION__, key[0] );
- if (vb.texcoordptr[1] == vb.texcoordptr[0]+4) {
+ if (rmesa->vb.texcoordptr[1] == rmesa->vb.texcoordptr[0]+4) {
DFN ( _sse_MultiTexCoord2fv, rmesa->vb.dfn_cache.MultiTexCoord2fvARB );
- FIXUP(dfn->code, 18, 0xdeadbeef, (int)vb.texcoordptr[0]);
+ FIXUP(dfn->code, 18, 0xdeadbeef, (int)rmesa->vb.texcoordptr[0]);
} else {
DFN ( _sse_MultiTexCoord2fv_2, rmesa->vb.dfn_cache.MultiTexCoord2fvARB );
- FIXUP(dfn->code, 14, 0x0, (int)vb.texcoordptr);
+ FIXUP(dfn->code, 14, 0x0, (int)rmesa->vb.texcoordptr);
}
return dfn;
}
@@ -197,12 +197,12 @@ static struct dynfn *r200_makeSSEMultiTexCoord2f( GLcontext *ctx, const int * ke
if (R200_DEBUG & DEBUG_CODEGEN)
fprintf(stderr, "%s 0x%08x\n", __FUNCTION__, key[0] );
- if (vb.texcoordptr[1] == vb.texcoordptr[0]+4) {
+ if (rmesa->vb.texcoordptr[1] == rmesa->vb.texcoordptr[0]+4) {
DFN ( _sse_MultiTexCoord2f, rmesa->vb.dfn_cache.MultiTexCoord2fARB );
- FIXUP(dfn->code, 16, 0xdeadbeef, (int)vb.texcoordptr[0]);
+ FIXUP(dfn->code, 16, 0xdeadbeef, (int)rmesa->vb.texcoordptr[0]);
} else {
DFN ( _sse_MultiTexCoord2f_2, rmesa->vb.dfn_cache.MultiTexCoord2fARB );
- FIXUP(dfn->code, 15, 0x0, (int)vb.texcoordptr);
+ FIXUP(dfn->code, 15, 0x0, (int)rmesa->vb.texcoordptr);
}
return dfn;
}
diff --git a/xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt_x86.c b/xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt_x86.c
index 67e5ac966..a806eca0b 100644
--- a/xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt_x86.c
+++ b/xc/lib/GL/mesa/src/drv/r200/r200_vtxfmt_x86.c
@@ -36,7 +36,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "glheader.h"
#include "imports.h"
-#include "mmath.h"
#include "simple_list.h"
#include "r200_vtxfmt.h"
@@ -76,43 +75,43 @@ struct dynfn *r200_makeX86Vertex3f( GLcontext *ctx, const int *key )
if (R200_DEBUG & DEBUG_CODEGEN)
fprintf(stderr, "%s 0x%08x 0x%08x %d\n", __FUNCTION__,
- key[0], key[1], vb.vertex_size );
+ key[0], key[1], rmesa->vb.vertex_size );
- switch (vb.vertex_size) {
+ switch (rmesa->vb.vertex_size) {
case 4: {
DFN ( _x86_Vertex3f_4, rmesa->vb.dfn_cache.Vertex3f );
- FIXUP(dfn->code, 2, 0x0, (int)&vb.dmaptr);
- FIXUP(dfn->code, 25, 0x0, (int)&vb.vertex[3]);
- FIXUP(dfn->code, 36, 0x0, (int)&vb.counter);
- FIXUP(dfn->code, 46, 0x0, (int)&vb.dmaptr);
- FIXUP(dfn->code, 51, 0x0, (int)&vb.counter);
- FIXUP(dfn->code, 60, 0x0, (int)&vb.notify);
+ FIXUP(dfn->code, 2, 0x0, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 25, 0x0, (int)&rmesa->vb.vertex[3]);
+ FIXUP(dfn->code, 36, 0x0, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 46, 0x0, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 51, 0x0, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 60, 0x0, (int)&rmesa->vb.notify);
break;
}
case 6: {
DFN ( _x86_Vertex3f_6, rmesa->vb.dfn_cache.Vertex3f );
- FIXUP(dfn->code, 3, 0x0, (int)&vb.dmaptr);
- FIXUP(dfn->code, 28, 0x0, (int)&vb.vertex[3]);
- FIXUP(dfn->code, 34, 0x0, (int)&vb.vertex[4]);
- FIXUP(dfn->code, 40, 0x0, (int)&vb.vertex[5]);
- FIXUP(dfn->code, 57, 0x0, (int)&vb.counter);
- FIXUP(dfn->code, 63, 0x0, (int)&vb.dmaptr);
- FIXUP(dfn->code, 70, 0x0, (int)&vb.counter);
- FIXUP(dfn->code, 79, 0x0, (int)&vb.notify);
+ FIXUP(dfn->code, 3, 0x0, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 28, 0x0, (int)&rmesa->vb.vertex[3]);
+ FIXUP(dfn->code, 34, 0x0, (int)&rmesa->vb.vertex[4]);
+ FIXUP(dfn->code, 40, 0x0, (int)&rmesa->vb.vertex[5]);
+ FIXUP(dfn->code, 57, 0x0, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 63, 0x0, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 70, 0x0, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 79, 0x0, (int)&rmesa->vb.notify);
break;
}
default: {
DFN ( _x86_Vertex3f, rmesa->vb.dfn_cache.Vertex3f );
- FIXUP(dfn->code, 3, 0x0, (int)&vb.vertex[3]);
- FIXUP(dfn->code, 9, 0x0, (int)&vb.dmaptr);
- FIXUP(dfn->code, 37, 0x0, vb.vertex_size-3);
- FIXUP(dfn->code, 44, 0x0, (int)&vb.counter);
- FIXUP(dfn->code, 50, 0x0, (int)&vb.dmaptr);
- FIXUP(dfn->code, 56, 0x0, (int)&vb.counter);
- FIXUP(dfn->code, 67, 0x0, (int)&vb.notify);
+ FIXUP(dfn->code, 3, 0x0, (int)&rmesa->vb.vertex[3]);
+ FIXUP(dfn->code, 9, 0x0, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 37, 0x0, rmesa->vb.vertex_size-3);
+ FIXUP(dfn->code, 44, 0x0, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 50, 0x0, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 56, 0x0, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 67, 0x0, (int)&rmesa->vb.notify);
break;
}
}
@@ -129,20 +128,20 @@ struct dynfn *r200_makeX86Vertex3fv( GLcontext *ctx, const int *key )
if (R200_DEBUG & DEBUG_CODEGEN)
fprintf(stderr, "%s 0x%08x 0x%08x %d\n", __FUNCTION__,
- key[0], key[1], vb.vertex_size );
+ key[0], key[1], rmesa->vb.vertex_size );
- switch (vb.vertex_size) {
+ switch (rmesa->vb.vertex_size) {
case 6: {
DFN ( _x86_Vertex3fv_6, rmesa->vb.dfn_cache.Vertex3fv );
- FIXUP(dfn->code, 1, 0x00000000, (int)&vb.dmaptr);
- FIXUP(dfn->code, 27, 0x0000001c, (int)&vb.vertex[3]);
- FIXUP(dfn->code, 33, 0x00000020, (int)&vb.vertex[4]);
- FIXUP(dfn->code, 45, 0x00000024, (int)&vb.vertex[5]);
- FIXUP(dfn->code, 56, 0x00000000, (int)&vb.dmaptr);
- FIXUP(dfn->code, 61, 0x00000004, (int)&vb.counter);
- FIXUP(dfn->code, 67, 0x00000004, (int)&vb.counter);
- FIXUP(dfn->code, 76, 0x00000008, (int)&vb.notify);
+ FIXUP(dfn->code, 1, 0x00000000, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 27, 0x0000001c, (int)&rmesa->vb.vertex[3]);
+ FIXUP(dfn->code, 33, 0x00000020, (int)&rmesa->vb.vertex[4]);
+ FIXUP(dfn->code, 45, 0x00000024, (int)&rmesa->vb.vertex[5]);
+ FIXUP(dfn->code, 56, 0x00000000, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 61, 0x00000004, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 67, 0x00000004, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 76, 0x00000008, (int)&rmesa->vb.notify);
break;
}
@@ -150,16 +149,16 @@ struct dynfn *r200_makeX86Vertex3fv( GLcontext *ctx, const int *key )
case 8: {
DFN ( _x86_Vertex3fv_8, rmesa->vb.dfn_cache.Vertex3fv );
- FIXUP(dfn->code, 1, 0x00000000, (int)&vb.dmaptr);
- FIXUP(dfn->code, 27, 0x0000001c, (int)&vb.vertex[3]);
- FIXUP(dfn->code, 33, 0x00000020, (int)&vb.vertex[4]);
- FIXUP(dfn->code, 45, 0x0000001c, (int)&vb.vertex[5]);
- FIXUP(dfn->code, 51, 0x00000020, (int)&vb.vertex[6]);
- FIXUP(dfn->code, 63, 0x00000024, (int)&vb.vertex[7]);
- FIXUP(dfn->code, 74, 0x00000000, (int)&vb.dmaptr);
- FIXUP(dfn->code, 79, 0x00000004, (int)&vb.counter);
- FIXUP(dfn->code, 85, 0x00000004, (int)&vb.counter);
- FIXUP(dfn->code, 94, 0x00000008, (int)&vb.notify);
+ FIXUP(dfn->code, 1, 0x00000000, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 27, 0x0000001c, (int)&rmesa->vb.vertex[3]);
+ FIXUP(dfn->code, 33, 0x00000020, (int)&rmesa->vb.vertex[4]);
+ FIXUP(dfn->code, 45, 0x0000001c, (int)&rmesa->vb.vertex[5]);
+ FIXUP(dfn->code, 51, 0x00000020, (int)&rmesa->vb.vertex[6]);
+ FIXUP(dfn->code, 63, 0x00000024, (int)&rmesa->vb.vertex[7]);
+ FIXUP(dfn->code, 74, 0x00000000, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 79, 0x00000004, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 85, 0x00000004, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 94, 0x00000008, (int)&rmesa->vb.notify);
break;
}
@@ -168,13 +167,13 @@ struct dynfn *r200_makeX86Vertex3fv( GLcontext *ctx, const int *key )
default: {
DFN ( _x86_Vertex3fv, rmesa->vb.dfn_cache.Vertex3fv );
- FIXUP(dfn->code, 8, 0x01010101, (int)&vb.dmaptr);
- FIXUP(dfn->code, 32, 0x00000006, vb.vertex_size-3);
- FIXUP(dfn->code, 37, 0x00000058, (int)&vb.vertex[3]);
- FIXUP(dfn->code, 45, 0x01010101, (int)&vb.dmaptr);
- FIXUP(dfn->code, 50, 0x02020202, (int)&vb.counter);
- FIXUP(dfn->code, 58, 0x02020202, (int)&vb.counter);
- FIXUP(dfn->code, 67, 0x0, (int)&vb.notify);
+ FIXUP(dfn->code, 8, 0x01010101, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 32, 0x00000006, rmesa->vb.vertex_size-3);
+ FIXUP(dfn->code, 37, 0x00000058, (int)&rmesa->vb.vertex[3]);
+ FIXUP(dfn->code, 45, 0x01010101, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 50, 0x02020202, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 58, 0x02020202, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 67, 0x0, (int)&rmesa->vb.notify);
break;
}
}
@@ -252,16 +251,16 @@ struct dynfn *r200_makeX86Normal3fv( GLcontext *ctx, const int *key )
{
r200ContextPtr rmesa = R200_CONTEXT(ctx);
- return r200_makeX86Attribute3fv( & rmesa->vb.dfn_cache.Normal3fv,
- key, __FUNCTION__, vb.normalptr );
+ return r200_makeX86Attribute3fv( & rmesa->vb.dfn_cache.Normal3fv, key,
+ __FUNCTION__, rmesa->vb.normalptr );
}
struct dynfn *r200_makeX86Normal3f( GLcontext *ctx, const int *key )
{
r200ContextPtr rmesa = R200_CONTEXT(ctx);
- return r200_makeX86Attribute3f( & rmesa->vb.dfn_cache.Normal3f,
- key, __FUNCTION__, vb.normalptr );
+ return r200_makeX86Attribute3f( & rmesa->vb.dfn_cache.Normal3f, key,
+ __FUNCTION__, rmesa->vb.normalptr );
}
struct dynfn *r200_makeX86Color4ubv( GLcontext *ctx, const int *key )
@@ -275,17 +274,17 @@ struct dynfn *r200_makeX86Color4ubv( GLcontext *ctx, const int *key )
if (VTX_COLOR(key[0],0) == R200_VTX_PK_RGBA) {
DFN ( _x86_Color4ubv_ub, rmesa->vb.dfn_cache.Color4ubv);
- FIXUP(dfn->code, 5, 0x12345678, (int)vb.colorptr);
+ FIXUP(dfn->code, 5, 0x12345678, (int)rmesa->vb.colorptr);
return dfn;
}
else {
DFN ( _x86_Color4ubv_4f, rmesa->vb.dfn_cache.Color4ubv);
FIXUP(dfn->code, 2, 0x00000000, (int)_mesa_ubyte_to_float_color_tab);
- FIXUP(dfn->code, 27, 0xdeadbeaf, (int)vb.floatcolorptr);
- FIXUP(dfn->code, 33, 0xdeadbeaf, (int)vb.floatcolorptr+4);
- FIXUP(dfn->code, 55, 0xdeadbeaf, (int)vb.floatcolorptr+8);
- FIXUP(dfn->code, 61, 0xdeadbeaf, (int)vb.floatcolorptr+12);
+ FIXUP(dfn->code, 27, 0xdeadbeaf, (int)rmesa->vb.floatcolorptr);
+ FIXUP(dfn->code, 33, 0xdeadbeaf, (int)rmesa->vb.floatcolorptr+4);
+ FIXUP(dfn->code, 55, 0xdeadbeaf, (int)rmesa->vb.floatcolorptr+8);
+ FIXUP(dfn->code, 61, 0xdeadbeaf, (int)rmesa->vb.floatcolorptr+12);
return dfn;
}
}
@@ -300,10 +299,10 @@ struct dynfn *r200_makeX86Color4ub( GLcontext *ctx, const int *key )
r200ContextPtr rmesa = R200_CONTEXT(ctx);
DFN ( _x86_Color4ub_ub, rmesa->vb.dfn_cache.Color4ub );
- FIXUP(dfn->code, 18, 0x0, (int)vb.colorptr);
- FIXUP(dfn->code, 24, 0x0, (int)vb.colorptr+1);
- FIXUP(dfn->code, 30, 0x0, (int)vb.colorptr+2);
- FIXUP(dfn->code, 36, 0x0, (int)vb.colorptr+3);
+ FIXUP(dfn->code, 18, 0x0, (int)rmesa->vb.colorptr);
+ FIXUP(dfn->code, 24, 0x0, (int)rmesa->vb.colorptr+1);
+ FIXUP(dfn->code, 30, 0x0, (int)rmesa->vb.colorptr+2);
+ FIXUP(dfn->code, 36, 0x0, (int)rmesa->vb.colorptr+3);
return dfn;
}
else
@@ -319,8 +318,8 @@ struct dynfn *r200_makeX86Color3fv( GLcontext *ctx, const int *key )
{
r200ContextPtr rmesa = R200_CONTEXT(ctx);
- return r200_makeX86Attribute3fv( & rmesa->vb.dfn_cache.Color3fv,
- key, __FUNCTION__, vb.floatcolorptr );
+ return r200_makeX86Attribute3fv( & rmesa->vb.dfn_cache.Color3fv, key,
+ __FUNCTION__, rmesa->vb.floatcolorptr );
}
}
@@ -332,8 +331,8 @@ struct dynfn *r200_makeX86Color3f( GLcontext *ctx, const int *key )
{
r200ContextPtr rmesa = R200_CONTEXT(ctx);
- return r200_makeX86Attribute3f( & rmesa->vb.dfn_cache.Color3f,
- key, __FUNCTION__, vb.floatcolorptr );
+ return r200_makeX86Attribute3f( & rmesa->vb.dfn_cache.Color3f, key,
+ __FUNCTION__, rmesa->vb.floatcolorptr );
}
}
@@ -343,16 +342,16 @@ struct dynfn *r200_makeX86TexCoord2fv( GLcontext *ctx, const int *key )
{
r200ContextPtr rmesa = R200_CONTEXT(ctx);
- return r200_makeX86Attribute2fv( & rmesa->vb.dfn_cache.TexCoord2fv,
- key, __FUNCTION__, vb.texcoordptr[0] );
+ return r200_makeX86Attribute2fv( & rmesa->vb.dfn_cache.TexCoord2fv, key,
+ __FUNCTION__, rmesa->vb.texcoordptr[0] );
}
struct dynfn *r200_makeX86TexCoord2f( GLcontext *ctx, const int *key )
{
r200ContextPtr rmesa = R200_CONTEXT(ctx);
- return r200_makeX86Attribute2f( & rmesa->vb.dfn_cache.TexCoord2f,
- key, __FUNCTION__, vb.texcoordptr[0] );
+ return r200_makeX86Attribute2f( & rmesa->vb.dfn_cache.TexCoord2f, key,
+ __FUNCTION__, rmesa->vb.texcoordptr[0] );
}
struct dynfn *r200_makeX86MultiTexCoord2fvARB( GLcontext *ctx, const int *key )
@@ -363,13 +362,13 @@ struct dynfn *r200_makeX86MultiTexCoord2fvARB( GLcontext *ctx, const int *key )
if (R200_DEBUG & DEBUG_CODEGEN)
fprintf(stderr, "%s 0x%08x 0x%08x\n", __FUNCTION__, key[0], key[1] );
- if (vb.texcoordptr[1] == vb.texcoordptr[0]+4) {
+ if (rmesa->vb.texcoordptr[1] == rmesa->vb.texcoordptr[0]+4) {
DFN ( _x86_MultiTexCoord2fv, rmesa->vb.dfn_cache.MultiTexCoord2fvARB );
- FIXUP(dfn->code, 21, 0xdeadbeef, (int)vb.texcoordptr[0]);
- FIXUP(dfn->code, 27, 0xdeadbeef, (int)vb.texcoordptr[0]+4);
+ FIXUP(dfn->code, 21, 0xdeadbeef, (int)rmesa->vb.texcoordptr[0]);
+ FIXUP(dfn->code, 27, 0xdeadbeef, (int)rmesa->vb.texcoordptr[0]+4);
} else {
DFN ( _x86_MultiTexCoord2fv_2, rmesa->vb.dfn_cache.MultiTexCoord2fvARB );
- FIXUP(dfn->code, 14, 0x0, (int)vb.texcoordptr);
+ FIXUP(dfn->code, 14, 0x0, (int)rmesa->vb.texcoordptr);
}
return dfn;
}
@@ -383,17 +382,17 @@ struct dynfn *r200_makeX86MultiTexCoord2fARB( GLcontext *ctx,
if (R200_DEBUG & DEBUG_CODEGEN)
fprintf(stderr, "%s 0x%08x 0x%08x\n", __FUNCTION__, key[0], key[1] );
- if (vb.texcoordptr[1] == vb.texcoordptr[0]+4) {
+ if (rmesa->vb.texcoordptr[1] == rmesa->vb.texcoordptr[0]+4) {
DFN ( _x86_MultiTexCoord2f, rmesa->vb.dfn_cache.MultiTexCoord2fARB );
- FIXUP(dfn->code, 20, 0xdeadbeef, (int)vb.texcoordptr[0]);
- FIXUP(dfn->code, 26, 0xdeadbeef, (int)vb.texcoordptr[0]+4);
+ FIXUP(dfn->code, 20, 0xdeadbeef, (int)rmesa->vb.texcoordptr[0]);
+ FIXUP(dfn->code, 26, 0xdeadbeef, (int)rmesa->vb.texcoordptr[0]+4);
}
else {
/* Note: this might get generated multiple times, even though the
* actual emitted code is the same.
*/
DFN ( _x86_MultiTexCoord2f_2, rmesa->vb.dfn_cache.MultiTexCoord2fARB );
- FIXUP(dfn->code, 18, 0x0, (int)vb.texcoordptr);
+ FIXUP(dfn->code, 18, 0x0, (int)rmesa->vb.texcoordptr);
}
return dfn;
}
diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_context.c b/xc/lib/GL/mesa/src/drv/radeon/radeon_context.c
index 6afc7309a..169be3dea 100644
--- a/xc/lib/GL/mesa/src/drv/radeon/radeon_context.c
+++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_context.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_context.c,v 1.4 2002/09/10 00:39:39 dawes Exp $ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_context.c,v 1.7 2003/02/08 21:26:45 dawes Exp $ */
/**************************************************************************
Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and
@@ -343,8 +343,8 @@ radeonCreateContext( const __GLcontextModes *glVisual,
* etc.
*/
ctx->Const.MaxArrayLockSize =
- MIN2( ctx->Const.MaxArrayLockSize,
- RADEON_BUFFER_SIZE / RADEON_MAX_TCL_VERTSIZE );
+ MIN2( ctx->Const.MaxArrayLockSize,
+ RADEON_BUFFER_SIZE / RADEON_MAX_TCL_VERTSIZE );
rmesa->boxes = (getenv("LIBGL_PERFORMANCE_BOXES") != NULL);
@@ -470,7 +470,6 @@ void radeonDestroyContext( __DRIcontextPrivate *driContextPriv )
radeonDestroySwtcl( rmesa->glCtx );
radeonReleaseArrays( rmesa->glCtx, ~0 );
-
if (rmesa->dma.current.buf) {
radeonReleaseDmaRegion( rmesa, &rmesa->dma.current, __FUNCTION__ );
radeonFlushCmdBuf( rmesa, __FUNCTION__ );
@@ -591,6 +590,5 @@ radeonUnbindContext( __DRIcontextPrivate *driContextPriv )
if (RADEON_DEBUG & DEBUG_DRI)
fprintf(stderr, "%s ctx %p\n", __FUNCTION__, rmesa->glCtx);
- radeonVtxfmtUnbindContext( rmesa->glCtx );
return GL_TRUE;
}
diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_context.h b/xc/lib/GL/mesa/src/drv/radeon/radeon_context.h
index 11095c9f5..4004d3fe5 100644
--- a/xc/lib/GL/mesa/src/drv/radeon/radeon_context.h
+++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_context.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_context.h,v 1.4 2002/09/10 00:39:39 dawes Exp $ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_context.h,v 1.6 2002/12/16 16:18:58 dawes Exp $ */
/**************************************************************************
Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and
@@ -51,6 +51,7 @@ typedef struct radeon_context *radeonContextPtr;
#include "radeon_screen.h"
#include "mm.h"
#include "texmem.h"
+#include "colormac.h"
/* Flags for software fallback cases */
/* See correponding strings in radeon_swtcl.c */
@@ -584,8 +585,6 @@ struct dfn_lists {
struct dynfn MultiTexCoord1fvARB;
};
-struct _vb;
-
struct dfn_generators {
struct dynfn *(*Vertex2f)( GLcontext *, int );
struct dynfn *(*Vertex2fv)( GLcontext *, int );
@@ -616,9 +615,14 @@ struct dfn_generators {
};
-struct radeon_vb {
- /* Keep these first: referenced from codegen templates:
- */
+
+struct radeon_prim {
+ GLuint start;
+ GLuint end;
+ GLuint prim;
+};
+
+struct radeon_vbinfo {
GLint counter, initial_counter;
GLint *dmaptr;
void (*notify)( void );
@@ -643,23 +647,12 @@ struct radeon_vb {
radeon_color_t *specptr;
GLfloat *texcoordptr[2];
- GLcontext *context; /* current context : Single thread only! */
-};
-
-struct radeon_prim {
- GLuint start;
- GLuint end;
- GLuint prim;
-};
-
-struct radeon_vbinfo {
GLenum *prim; /* &ctx->Driver.CurrentExecPrimitive */
GLuint primflags;
GLboolean enabled; /* *_NO_VTXFMT / *_NO_TCL env vars */
GLboolean installed;
GLboolean fell_back;
GLboolean recheck;
- GLint initial_counter;
GLint nrverts;
GLuint vertex_format;
diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt.c b/xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt.c
index e42d116d5..3d11518c1 100644
--- a/xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt.c
+++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt.c
@@ -37,7 +37,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "api_noop.h"
#include "api_arrayelt.h"
#include "context.h"
-#include "mmath.h"
#include "mtypes.h"
#include "enums.h"
#include "glapi.h"
@@ -58,8 +57,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "radeon_swtcl.h"
#include "radeon_vtxfmt.h"
-struct radeon_vb vb;
-
static void radeonVtxfmtFlushVertices( GLcontext *, GLuint );
static void count_func( const char *name, struct dynfn *l )
@@ -106,46 +103,45 @@ void radeon_copy_to_current( GLcontext *ctx )
radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
assert(ctx->Driver.NeedFlush & FLUSH_UPDATE_CURRENT);
- assert(vb.context == ctx);
if (rmesa->vb.vertex_format & RADEON_CP_VC_FRMT_N0) {
- ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0] = vb.normalptr[0];
- ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1] = vb.normalptr[1];
- ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2] = vb.normalptr[2];
+ ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0] = rmesa->vb.normalptr[0];
+ ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1] = rmesa->vb.normalptr[1];
+ ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2] = rmesa->vb.normalptr[2];
}
if (rmesa->vb.vertex_format & RADEON_CP_VC_FRMT_PKCOLOR) {
- ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0] = UBYTE_TO_FLOAT( vb.colorptr->red );
- ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1] = UBYTE_TO_FLOAT( vb.colorptr->green );
- ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2] = UBYTE_TO_FLOAT( vb.colorptr->blue );
- ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3] = UBYTE_TO_FLOAT( vb.colorptr->alpha );
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0] = UBYTE_TO_FLOAT( rmesa->vb.colorptr->red );
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1] = UBYTE_TO_FLOAT( rmesa->vb.colorptr->green );
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2] = UBYTE_TO_FLOAT( rmesa->vb.colorptr->blue );
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3] = UBYTE_TO_FLOAT( rmesa->vb.colorptr->alpha );
}
if (rmesa->vb.vertex_format & RADEON_CP_VC_FRMT_FPCOLOR) {
- ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0] = vb.floatcolorptr[0];
- ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1] = vb.floatcolorptr[1];
- ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2] = vb.floatcolorptr[2];
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0] = rmesa->vb.floatcolorptr[0];
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1] = rmesa->vb.floatcolorptr[1];
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2] = rmesa->vb.floatcolorptr[2];
}
if (rmesa->vb.vertex_format & RADEON_CP_VC_FRMT_FPALPHA)
- ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3] = vb.floatcolorptr[3];
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3] = rmesa->vb.floatcolorptr[3];
if (rmesa->vb.vertex_format & RADEON_CP_VC_FRMT_PKSPEC) {
- ctx->Current.Attrib[VERT_ATTRIB_COLOR1][0] = UBYTE_TO_FLOAT( vb.specptr->red );
- ctx->Current.Attrib[VERT_ATTRIB_COLOR1][1] = UBYTE_TO_FLOAT( vb.specptr->green );
- ctx->Current.Attrib[VERT_ATTRIB_COLOR1][2] = UBYTE_TO_FLOAT( vb.specptr->blue );
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR1][0] = UBYTE_TO_FLOAT( rmesa->vb.specptr->red );
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR1][1] = UBYTE_TO_FLOAT( rmesa->vb.specptr->green );
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR1][2] = UBYTE_TO_FLOAT( rmesa->vb.specptr->blue );
}
if (rmesa->vb.vertex_format & RADEON_CP_VC_FRMT_ST0) {
- ctx->Current.Attrib[VERT_ATTRIB_TEX0][0] = vb.texcoordptr[0][0];
- ctx->Current.Attrib[VERT_ATTRIB_TEX0][1] = vb.texcoordptr[0][1];
+ ctx->Current.Attrib[VERT_ATTRIB_TEX0][0] = rmesa->vb.texcoordptr[0][0];
+ ctx->Current.Attrib[VERT_ATTRIB_TEX0][1] = rmesa->vb.texcoordptr[0][1];
ctx->Current.Attrib[VERT_ATTRIB_TEX0][2] = 0.0F;
ctx->Current.Attrib[VERT_ATTRIB_TEX0][3] = 1.0F;
}
if (rmesa->vb.vertex_format & RADEON_CP_VC_FRMT_ST1) {
- ctx->Current.Attrib[VERT_ATTRIB_TEX1][0] = vb.texcoordptr[1][0];
- ctx->Current.Attrib[VERT_ATTRIB_TEX1][1] = vb.texcoordptr[1][1];
+ ctx->Current.Attrib[VERT_ATTRIB_TEX1][0] = rmesa->vb.texcoordptr[1][0];
+ ctx->Current.Attrib[VERT_ATTRIB_TEX1][1] = rmesa->vb.texcoordptr[1][1];
ctx->Current.Attrib[VERT_ATTRIB_TEX1][2] = 0.0F;
ctx->Current.Attrib[VERT_ATTRIB_TEX1][3] = 1.0F;
}
@@ -172,12 +168,12 @@ static void flush_prims( radeonContextPtr rmesa )
struct radeon_dma_region tmp = rmesa->dma.current;
tmp.buf->refcount++;
- tmp.aos_size = vb.vertex_size;
- tmp.aos_stride = vb.vertex_size;
+ tmp.aos_size = rmesa->vb.vertex_size;
+ tmp.aos_stride = rmesa->vb.vertex_size;
tmp.aos_start = GET_START(&tmp);
rmesa->dma.current.ptr = rmesa->dma.current.start +=
- (vb.initial_counter - vb.counter) * vb.vertex_size * 4;
+ (rmesa->vb.initial_counter - rmesa->vb.counter) * rmesa->vb.vertex_size * 4;
rmesa->tcl.vertex_format = rmesa->vb.vertex_format;
rmesa->tcl.aos_components[0] = &tmp;
@@ -211,7 +207,7 @@ static void flush_prims( radeonContextPtr rmesa )
rmesa->vb.primlist[i].start,
rmesa->vb.primlist[i].end);
- radeonEmitPrimitive( vb.context,
+ radeonEmitPrimitive( rmesa->glCtx,
rmesa->vb.primlist[i].start,
rmesa->vb.primlist[i].end,
rmesa->vb.primlist[i].prim );
@@ -225,20 +221,20 @@ static void flush_prims( radeonContextPtr rmesa )
static void start_prim( radeonContextPtr rmesa, GLuint mode )
{
if (RADEON_DEBUG & DEBUG_VFMT)
- fprintf(stderr, "%s %d\n", __FUNCTION__, vb.initial_counter - vb.counter);
+ fprintf(stderr, "%s %d\n", __FUNCTION__, rmesa->vb.initial_counter - rmesa->vb.counter);
- rmesa->vb.primlist[rmesa->vb.nrprims].start = vb.initial_counter - vb.counter;
+ rmesa->vb.primlist[rmesa->vb.nrprims].start = rmesa->vb.initial_counter - rmesa->vb.counter;
rmesa->vb.primlist[rmesa->vb.nrprims].prim = mode;
}
static void note_last_prim( radeonContextPtr rmesa, GLuint flags )
{
if (RADEON_DEBUG & DEBUG_VFMT)
- fprintf(stderr, "%s %d\n", __FUNCTION__, vb.initial_counter - vb.counter);
+ fprintf(stderr, "%s %d\n", __FUNCTION__, rmesa->vb.initial_counter - rmesa->vb.counter);
if (rmesa->vb.prim[0] != GL_POLYGON+1) {
rmesa->vb.primlist[rmesa->vb.nrprims].prim |= flags;
- rmesa->vb.primlist[rmesa->vb.nrprims].end = vb.initial_counter - vb.counter;
+ rmesa->vb.primlist[rmesa->vb.nrprims].end = rmesa->vb.initial_counter - rmesa->vb.counter;
if (++(rmesa->vb.nrprims) == RADEON_MAX_PRIMS)
flush_prims( rmesa );
@@ -252,12 +248,12 @@ static void copy_vertex( radeonContextPtr rmesa, GLuint n, GLfloat *dst )
GLfloat *src = (GLfloat *)(rmesa->dma.current.address +
rmesa->dma.current.ptr +
(rmesa->vb.primlist[rmesa->vb.nrprims].start + n) *
- vb.vertex_size * 4);
+ rmesa->vb.vertex_size * 4);
if (RADEON_DEBUG & DEBUG_VFMT)
fprintf(stderr, "copy_vertex %d\n", rmesa->vb.primlist[rmesa->vb.nrprims].start + n);
- for (i = 0 ; i < vb.vertex_size; i++) {
+ for (i = 0 ; i < rmesa->vb.vertex_size; i++) {
dst[i] = src[i];
}
}
@@ -269,7 +265,7 @@ static void copy_vertex( radeonContextPtr rmesa, GLuint n, GLfloat *dst )
static GLuint copy_dma_verts( radeonContextPtr rmesa, GLfloat (*tmp)[15] )
{
GLuint ovf, i;
- GLuint nr = (vb.initial_counter - vb.counter) - rmesa->vb.primlist[rmesa->vb.nrprims].start;
+ GLuint nr = (rmesa->vb.initial_counter - rmesa->vb.counter) - rmesa->vb.primlist[rmesa->vb.nrprims].start;
if (RADEON_DEBUG & DEBUG_VFMT)
fprintf(stderr, "%s %d verts\n", __FUNCTION__, nr);
@@ -333,7 +329,7 @@ static GLuint copy_dma_verts( radeonContextPtr rmesa, GLfloat (*tmp)[15] )
static void VFMT_FALLBACK_OUTSIDE_BEGIN_END( const char *caller )
{
- GLcontext *ctx = vb.context;
+ GET_CURRENT_CONTEXT(ctx);
radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
if (RADEON_DEBUG & (DEBUG_VFMT|DEBUG_FALLBACKS))
@@ -351,13 +347,12 @@ static void VFMT_FALLBACK_OUTSIDE_BEGIN_END( const char *caller )
assert( rmesa->dma.flush == 0 );
rmesa->vb.fell_back = GL_TRUE;
rmesa->vb.installed = GL_FALSE;
- vb.context = 0;
}
static void VFMT_FALLBACK( const char *caller )
{
- GLcontext *ctx = vb.context;
+ GET_CURRENT_CONTEXT(ctx);
radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
GLfloat tmp[3][15];
GLuint i, prim;
@@ -392,7 +387,6 @@ static void VFMT_FALLBACK( const char *caller )
assert(rmesa->dma.flush == 0);
rmesa->vb.fell_back = GL_TRUE;
rmesa->vb.installed = GL_FALSE;
- vb.context = 0;
glBegin( prim );
if (rmesa->vb.installed_color_3f_sz == 4)
@@ -442,50 +436,50 @@ static void VFMT_FALLBACK( const char *caller )
/* Replay current vertex
*/
if (ind & RADEON_CP_VC_FRMT_N0)
- glNormal3fv( vb.normalptr );
+ glNormal3fv( rmesa->vb.normalptr );
if (ind & RADEON_CP_VC_FRMT_PKCOLOR)
- glColor4ub( vb.colorptr->red, vb.colorptr->green, vb.colorptr->blue, vb.colorptr->alpha );
+ glColor4ub( rmesa->vb.colorptr->red, rmesa->vb.colorptr->green, rmesa->vb.colorptr->blue, rmesa->vb.colorptr->alpha );
else if (ind & RADEON_CP_VC_FRMT_FPALPHA)
- glColor4fv( vb.floatcolorptr );
+ glColor4fv( rmesa->vb.floatcolorptr );
else if (ind & RADEON_CP_VC_FRMT_FPCOLOR) {
if (rmesa->vb.installed_color_3f_sz == 4 && alpha != 1.0)
- glColor4f( vb.floatcolorptr[0],
- vb.floatcolorptr[1],
- vb.floatcolorptr[2],
+ glColor4f( rmesa->vb.floatcolorptr[0],
+ rmesa->vb.floatcolorptr[1],
+ rmesa->vb.floatcolorptr[2],
alpha );
else
- glColor3fv( vb.floatcolorptr );
+ glColor3fv( rmesa->vb.floatcolorptr );
}
if (ind & RADEON_CP_VC_FRMT_PKSPEC)
- _glapi_Dispatch->SecondaryColor3ubEXT( vb.specptr->red, vb.specptr->green, vb.specptr->blue );
+ _glapi_Dispatch->SecondaryColor3ubEXT( rmesa->vb.specptr->red, rmesa->vb.specptr->green, rmesa->vb.specptr->blue );
if (ind & RADEON_CP_VC_FRMT_ST0)
- glTexCoord2fv( vb.texcoordptr[0] );
+ glTexCoord2fv( rmesa->vb.texcoordptr[0] );
if (ind & RADEON_CP_VC_FRMT_ST1)
- glMultiTexCoord2fvARB( GL_TEXTURE1_ARB, vb.texcoordptr[1] );
+ glMultiTexCoord2fvARB( GL_TEXTURE1_ARB, rmesa->vb.texcoordptr[1] );
}
static void wrap_buffer( void )
{
- GLcontext *ctx = vb.context;
+ GET_CURRENT_CONTEXT(ctx);
radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
GLfloat tmp[3][15];
GLuint i, nrverts;
if (RADEON_DEBUG & (DEBUG_VFMT|DEBUG_PRIMS))
- fprintf(stderr, "%s %d\n", __FUNCTION__, vb.initial_counter - vb.counter);
+ fprintf(stderr, "%s %d\n", __FUNCTION__, rmesa->vb.initial_counter - rmesa->vb.counter);
/* Don't deal with parity.
*/
- if ((((vb.initial_counter - vb.counter) -
+ if ((((rmesa->vb.initial_counter - rmesa->vb.counter) -
rmesa->vb.primlist[rmesa->vb.nrprims].start) & 1)) {
- vb.counter++;
- vb.initial_counter++;
+ rmesa->vb.counter++;
+ rmesa->vb.initial_counter++;
return;
}
@@ -514,12 +508,12 @@ static void wrap_buffer( void )
/* Reset counter, dmaptr
*/
- vb.dmaptr = (int *)(rmesa->dma.current.ptr + rmesa->dma.current.address);
- vb.counter = (rmesa->dma.current.end - rmesa->dma.current.ptr) /
- (vb.vertex_size * 4);
- vb.counter--;
- vb.initial_counter = vb.counter;
- vb.notify = wrap_buffer;
+ rmesa->vb.dmaptr = (int *)(rmesa->dma.current.ptr + rmesa->dma.current.address);
+ rmesa->vb.counter = (rmesa->dma.current.end - rmesa->dma.current.ptr) /
+ (rmesa->vb.vertex_size * 4);
+ rmesa->vb.counter--;
+ rmesa->vb.initial_counter = rmesa->vb.counter;
+ rmesa->vb.notify = wrap_buffer;
rmesa->dma.flush = flush_prims;
@@ -533,15 +527,15 @@ static void wrap_buffer( void )
for (i = 0 ; i < nrverts; i++) {
if (RADEON_DEBUG & DEBUG_VERTS) {
int j;
- fprintf(stderr, "re-emit vertex %d to %p\n", i, vb.dmaptr);
+ fprintf(stderr, "re-emit vertex %d to %p\n", i, rmesa->vb.dmaptr);
if (RADEON_DEBUG & DEBUG_VERBOSE)
- for (j = 0 ; j < vb.vertex_size; j++)
+ for (j = 0 ; j < rmesa->vb.vertex_size; j++)
fprintf(stderr, "\t%08x/%f\n", *(int*)&tmp[i][j], tmp[i][j]);
}
- memcpy( vb.dmaptr, tmp[i], vb.vertex_size * 4 );
- vb.dmaptr += vb.vertex_size;
- vb.counter--;
+ memcpy( rmesa->vb.dmaptr, tmp[i], rmesa->vb.vertex_size * 4 );
+ rmesa->vb.dmaptr += rmesa->vb.vertex_size;
+ rmesa->vb.counter--;
}
}
@@ -625,71 +619,71 @@ static GLboolean check_vtx_fmt( GLcontext *ctx )
RADEON_NEWPRIM(rmesa);
rmesa->vb.vertex_format = ind;
- vb.vertex_size = 3;
+ rmesa->vb.vertex_size = 3;
rmesa->vb.prim = &ctx->Driver.CurrentExecPrimitive;
- vb.normalptr = ctx->Current.Attrib[VERT_ATTRIB_NORMAL];
- vb.colorptr = NULL;
- vb.floatcolorptr = ctx->Current.Attrib[VERT_ATTRIB_COLOR0];
- vb.specptr = NULL;
- vb.floatspecptr = ctx->Current.Attrib[VERT_ATTRIB_COLOR1];
- vb.texcoordptr[0] = ctx->Current.Attrib[VERT_ATTRIB_TEX0];
- vb.texcoordptr[1] = ctx->Current.Attrib[VERT_ATTRIB_TEX1];
+ rmesa->vb.normalptr = ctx->Current.Attrib[VERT_ATTRIB_NORMAL];
+ rmesa->vb.colorptr = NULL;
+ rmesa->vb.floatcolorptr = ctx->Current.Attrib[VERT_ATTRIB_COLOR0];
+ rmesa->vb.specptr = NULL;
+ rmesa->vb.floatspecptr = ctx->Current.Attrib[VERT_ATTRIB_COLOR1];
+ rmesa->vb.texcoordptr[0] = ctx->Current.Attrib[VERT_ATTRIB_TEX0];
+ rmesa->vb.texcoordptr[1] = ctx->Current.Attrib[VERT_ATTRIB_TEX1];
/* Run through and initialize the vertex components in the order
* the hardware understands:
*/
if (ind & RADEON_CP_VC_FRMT_N0) {
- vb.normalptr = &vb.vertex[vb.vertex_size].f;
- vb.vertex_size += 3;
- vb.normalptr[0] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0];
- vb.normalptr[1] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1];
- vb.normalptr[2] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2];
+ rmesa->vb.normalptr = &rmesa->vb.vertex[rmesa->vb.vertex_size].f;
+ rmesa->vb.vertex_size += 3;
+ rmesa->vb.normalptr[0] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][0];
+ rmesa->vb.normalptr[1] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][1];
+ rmesa->vb.normalptr[2] = ctx->Current.Attrib[VERT_ATTRIB_NORMAL][2];
}
if (ind & RADEON_CP_VC_FRMT_PKCOLOR) {
- vb.colorptr = &vb.vertex[vb.vertex_size].color;
- vb.vertex_size += 1;
- UNCLAMPED_FLOAT_TO_CHAN( vb.colorptr->red, ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0] );
- UNCLAMPED_FLOAT_TO_CHAN( vb.colorptr->green, ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1] );
- UNCLAMPED_FLOAT_TO_CHAN( vb.colorptr->blue, ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2] );
- UNCLAMPED_FLOAT_TO_CHAN( vb.colorptr->alpha, ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3] );
+ rmesa->vb.colorptr = &rmesa->vb.vertex[rmesa->vb.vertex_size].color;
+ rmesa->vb.vertex_size += 1;
+ UNCLAMPED_FLOAT_TO_CHAN( rmesa->vb.colorptr->red, ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0] );
+ UNCLAMPED_FLOAT_TO_CHAN( rmesa->vb.colorptr->green, ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1] );
+ UNCLAMPED_FLOAT_TO_CHAN( rmesa->vb.colorptr->blue, ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2] );
+ UNCLAMPED_FLOAT_TO_CHAN( rmesa->vb.colorptr->alpha, ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3] );
}
if (ind & RADEON_CP_VC_FRMT_FPCOLOR) {
assert(!(ind & RADEON_CP_VC_FRMT_PKCOLOR));
- vb.floatcolorptr = &vb.vertex[vb.vertex_size].f;
- vb.vertex_size += 3;
- vb.floatcolorptr[0] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0];
- vb.floatcolorptr[1] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1];
- vb.floatcolorptr[2] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2];
+ rmesa->vb.floatcolorptr = &rmesa->vb.vertex[rmesa->vb.vertex_size].f;
+ rmesa->vb.vertex_size += 3;
+ rmesa->vb.floatcolorptr[0] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][0];
+ rmesa->vb.floatcolorptr[1] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][1];
+ rmesa->vb.floatcolorptr[2] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][2];
if (ind & RADEON_CP_VC_FRMT_FPALPHA) {
- vb.vertex_size += 1;
- vb.floatcolorptr[3] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3];
+ rmesa->vb.vertex_size += 1;
+ rmesa->vb.floatcolorptr[3] = ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3];
}
}
if (ind & RADEON_CP_VC_FRMT_PKSPEC) {
- vb.specptr = &vb.vertex[vb.vertex_size].color;
- vb.vertex_size += 1;
- UNCLAMPED_FLOAT_TO_CHAN( vb.specptr->red, ctx->Current.Attrib[VERT_ATTRIB_COLOR1][0] );
- UNCLAMPED_FLOAT_TO_CHAN( vb.specptr->green, ctx->Current.Attrib[VERT_ATTRIB_COLOR1][1] );
- UNCLAMPED_FLOAT_TO_CHAN( vb.specptr->blue, ctx->Current.Attrib[VERT_ATTRIB_COLOR1][2] );
+ rmesa->vb.specptr = &rmesa->vb.vertex[rmesa->vb.vertex_size].color;
+ rmesa->vb.vertex_size += 1;
+ UNCLAMPED_FLOAT_TO_CHAN( rmesa->vb.specptr->red, ctx->Current.Attrib[VERT_ATTRIB_COLOR1][0] );
+ UNCLAMPED_FLOAT_TO_CHAN( rmesa->vb.specptr->green, ctx->Current.Attrib[VERT_ATTRIB_COLOR1][1] );
+ UNCLAMPED_FLOAT_TO_CHAN( rmesa->vb.specptr->blue, ctx->Current.Attrib[VERT_ATTRIB_COLOR1][2] );
}
if (ind & RADEON_CP_VC_FRMT_ST0) {
- vb.texcoordptr[0] = &vb.vertex[vb.vertex_size].f;
- vb.vertex_size += 2;
- vb.texcoordptr[0][0] = ctx->Current.Attrib[VERT_ATTRIB_TEX0][0];
- vb.texcoordptr[0][1] = ctx->Current.Attrib[VERT_ATTRIB_TEX0][1];
+ rmesa->vb.texcoordptr[0] = &rmesa->vb.vertex[rmesa->vb.vertex_size].f;
+ rmesa->vb.vertex_size += 2;
+ rmesa->vb.texcoordptr[0][0] = ctx->Current.Attrib[VERT_ATTRIB_TEX0][0];
+ rmesa->vb.texcoordptr[0][1] = ctx->Current.Attrib[VERT_ATTRIB_TEX0][1];
}
if (ind & RADEON_CP_VC_FRMT_ST1) {
- vb.texcoordptr[1] = &vb.vertex[vb.vertex_size].f;
- vb.vertex_size += 2;
- vb.texcoordptr[1][0] = ctx->Current.Attrib[VERT_ATTRIB_TEX1][0];
- vb.texcoordptr[1][1] = ctx->Current.Attrib[VERT_ATTRIB_TEX1][1];
+ rmesa->vb.texcoordptr[1] = &rmesa->vb.vertex[rmesa->vb.vertex_size].f;
+ rmesa->vb.vertex_size += 2;
+ rmesa->vb.texcoordptr[1][0] = ctx->Current.Attrib[VERT_ATTRIB_TEX1][0];
+ rmesa->vb.texcoordptr[1][1] = ctx->Current.Attrib[VERT_ATTRIB_TEX1][1];
}
if (rmesa->vb.installed_vertex_format != rmesa->vb.vertex_format) {
@@ -741,7 +735,6 @@ static void radeonVtxfmtValidate( GLcontext *ctx )
ctx->Driver.FlushVertices = radeonVtxfmtFlushVertices;
ctx->Driver.NewList = radeonNewList;
rmesa->vb.installed = GL_TRUE;
- vb.context = ctx;
}
else if (RADEON_DEBUG & DEBUG_VFMT)
fprintf(stderr, "%s: already installed", __FUNCTION__);
@@ -756,7 +749,6 @@ static void radeonVtxfmtValidate( GLcontext *ctx )
_tnl_wakeup_exec( ctx );
ctx->Driver.FlushVertices = radeonFlushVertices;
rmesa->vb.installed = GL_FALSE;
- vb.context = 0;
}
}
}
@@ -768,7 +760,7 @@ static void radeonVtxfmtValidate( GLcontext *ctx )
static void radeon_Materialfv( GLenum face, GLenum pname,
const GLfloat *params )
{
- GLcontext *ctx = vb.context;
+ GET_CURRENT_CONTEXT(ctx);
radeonContextPtr rmesa = RADEON_CONTEXT( ctx );
if (RADEON_DEBUG & DEBUG_VFMT)
@@ -780,7 +772,7 @@ static void radeon_Materialfv( GLenum face, GLenum pname,
return;
}
_mesa_noop_Materialfv( face, pname, params );
- radeonUpdateMaterial( vb.context );
+ radeonUpdateMaterial( ctx );
}
@@ -788,7 +780,7 @@ static void radeon_Materialfv( GLenum face, GLenum pname,
*/
static void radeon_Begin( GLenum mode )
{
- GLcontext *ctx = vb.context;
+ GET_CURRENT_CONTEXT(ctx);
radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
if (RADEON_DEBUG & DEBUG_VFMT)
@@ -820,7 +812,7 @@ static void radeon_Begin( GLenum mode )
}
- if (rmesa->dma.flush && vb.counter < 12) {
+ if (rmesa->dma.flush && rmesa->vb.counter < 12) {
if (RADEON_DEBUG & DEBUG_VFMT)
fprintf(stderr, "%s: flush almost-empty buffers\n", __FUNCTION__);
flush_prims( rmesa );
@@ -829,20 +821,20 @@ static void radeon_Begin( GLenum mode )
/* Need to arrange to save vertices here? Or always copy from dma (yuk)?
*/
if (!rmesa->dma.flush) {
- if (rmesa->dma.current.ptr + 12*vb.vertex_size*4 >
+ if (rmesa->dma.current.ptr + 12*rmesa->vb.vertex_size*4 >
rmesa->dma.current.end) {
RADEON_NEWPRIM( rmesa );
radeonRefillCurrentDmaRegion( rmesa );
}
- vb.dmaptr = (int *)(rmesa->dma.current.address + rmesa->dma.current.ptr);
- vb.counter = (rmesa->dma.current.end - rmesa->dma.current.ptr) /
- (vb.vertex_size * 4);
- vb.counter--;
- vb.initial_counter = vb.counter;
- vb.notify = wrap_buffer;
+ rmesa->vb.dmaptr = (int *)(rmesa->dma.current.address + rmesa->dma.current.ptr);
+ rmesa->vb.counter = (rmesa->dma.current.end - rmesa->dma.current.ptr) /
+ (rmesa->vb.vertex_size * 4);
+ rmesa->vb.counter--;
+ rmesa->vb.initial_counter = rmesa->vb.counter;
+ rmesa->vb.notify = wrap_buffer;
rmesa->dma.flush = flush_prims;
- vb.context->Driver.NeedFlush |= FLUSH_STORED_VERTICES;
+ ctx->Driver.NeedFlush |= FLUSH_STORED_VERTICES;
}
@@ -854,7 +846,7 @@ static void radeon_Begin( GLenum mode )
static void radeon_End( void )
{
- GLcontext *ctx = vb.context;
+ GET_CURRENT_CONTEXT(ctx);
radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
if (RADEON_DEBUG & DEBUG_VFMT)
@@ -922,7 +914,6 @@ static void radeonVtxfmtFlushVertices( GLcontext *ctx, GLuint flags )
fprintf(stderr, "%s\n", __FUNCTION__);
assert(rmesa->vb.installed);
- assert(vb.context == ctx);
if (flags & FLUSH_UPDATE_CURRENT) {
radeon_copy_to_current( ctx );
@@ -1015,7 +1006,6 @@ void radeonVtxfmtInit( GLcontext *ctx )
TNL_CONTEXT(ctx)->Driver.NotifyBegin = radeonNotifyBegin;
- vb.context = ctx;
rmesa->vb.enabled = 1;
rmesa->vb.prim = &ctx->Driver.CurrentExecPrimitive;
rmesa->vb.primflags = 0;
@@ -1060,37 +1050,10 @@ static void free_funcs( struct dynfn *l )
}
}
-void radeonVtxfmtUnbindContext( GLcontext *ctx )
-{
- if (RADEON_CONTEXT(ctx)->vb.installed) {
- assert(vb.context == ctx);
- VFMT_FALLBACK_OUTSIDE_BEGIN_END( __FUNCTION__ );
- }
-
- TNL_CONTEXT(ctx)->Driver.NotifyBegin = 0;
-}
void radeonVtxfmtMakeCurrent( GLcontext *ctx )
{
- radeonContextPtr rmesa = RADEON_CONTEXT( ctx );
-
-#if defined(THREADS)
- /* Insider knowledge: this value is zero when multithreading has
- * been detected.
- */
- if (_glapi_Context == 0) {
- if (RADEON_DEBUG & (DEBUG_DRI|DEBUG_VFMT))
- fprintf(stderr, "**** Multithreading: disabling vtxfmt!\n");
- TNL_CONTEXT(ctx)->Driver.NotifyBegin = 0;
- return;
- }
-#endif
-
-
- if (rmesa->vb.enabled) {
- TNL_CONTEXT(ctx)->Driver.NotifyBegin = radeonNotifyBegin;
- }
}
diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt.h b/xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt.h
index 1a765aaa7..9792fcbb7 100644
--- a/xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt.h
+++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt.h
@@ -1,4 +1,4 @@
-/* $XFree86$ */
+/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt.h,v 1.3 2002/12/21 17:02:16 dawes Exp $ */
/**************************************************************************
Copyright 2000, 2001 ATI Technologies Inc., Ontario, Canada, and
@@ -41,10 +41,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "radeon_context.h"
-
-extern struct radeon_vb vb;
-
-
extern void radeonVtxfmtUpdate( GLcontext *ctx );
extern void radeonVtxfmtInit( GLcontext *ctx );
extern void radeonVtxfmtInvalidate( GLcontext *ctx );
diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt_c.c b/xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt_c.c
index 39d57a4f1..188e34a42 100644
--- a/xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt_c.c
+++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt_c.c
@@ -47,65 +47,73 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
static void radeon_Vertex3f( GLfloat x, GLfloat y, GLfloat z )
{
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
int i;
- *vb.dmaptr++ = *(int *)&x;
- *vb.dmaptr++ = *(int *)&y;
- *vb.dmaptr++ = *(int *)&z;
+ *rmesa->vb.dmaptr++ = *(int *)&x;
+ *rmesa->vb.dmaptr++ = *(int *)&y;
+ *rmesa->vb.dmaptr++ = *(int *)&z;
- for (i = 3; i < vb.vertex_size; i++)
- *vb.dmaptr++ = vb.vertex[i].i;
+ for (i = 3; i < rmesa->vb.vertex_size; i++)
+ *rmesa->vb.dmaptr++ = rmesa->vb.vertex[i].i;
- if (--vb.counter == 0)
- vb.notify();
+ if (--rmesa->vb.counter == 0)
+ rmesa->vb.notify();
}
static void radeon_Vertex3fv( const GLfloat *v )
{
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
int i;
- *vb.dmaptr++ = *(int *)&v[0];
- *vb.dmaptr++ = *(int *)&v[1];
- *vb.dmaptr++ = *(int *)&v[2];
+ *rmesa->vb.dmaptr++ = *(int *)&v[0];
+ *rmesa->vb.dmaptr++ = *(int *)&v[1];
+ *rmesa->vb.dmaptr++ = *(int *)&v[2];
- for (i = 3; i < vb.vertex_size; i++)
- *vb.dmaptr++ = vb.vertex[i].i;
+ for (i = 3; i < rmesa->vb.vertex_size; i++)
+ *rmesa->vb.dmaptr++ = rmesa->vb.vertex[i].i;
- if (--vb.counter == 0)
- vb.notify();
+ if (--rmesa->vb.counter == 0)
+ rmesa->vb.notify();
}
static void radeon_Vertex2f( GLfloat x, GLfloat y )
{
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
int i;
- *vb.dmaptr++ = *(int *)&x;
- *vb.dmaptr++ = *(int *)&y;
- *vb.dmaptr++ = 0;
+ *rmesa->vb.dmaptr++ = *(int *)&x;
+ *rmesa->vb.dmaptr++ = *(int *)&y;
+ *rmesa->vb.dmaptr++ = 0;
- for (i = 3; i < vb.vertex_size; i++)
- *vb.dmaptr++ = vb.vertex[i].i;
-
- if (--vb.counter == 0)
- vb.notify();
+ for (i = 3; i < rmesa->vb.vertex_size; i++)
+ *rmesa->vb.dmaptr++ = *(int *)&rmesa->vb.vertex[i];
+
+ if (--rmesa->vb.counter == 0)
+ rmesa->vb.notify();
}
static void radeon_Vertex2fv( const GLfloat *v )
{
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
int i;
- *vb.dmaptr++ = *(int *)&v[0];
- *vb.dmaptr++ = *(int *)&v[1];
- *vb.dmaptr++ = 0;
+ *rmesa->vb.dmaptr++ = *(int *)&v[0];
+ *rmesa->vb.dmaptr++ = *(int *)&v[1];
+ *rmesa->vb.dmaptr++ = 0;
- for (i = 3; i < vb.vertex_size; i++)
- *vb.dmaptr++ = vb.vertex[i].i;
+ for (i = 3; i < rmesa->vb.vertex_size; i++)
+ *rmesa->vb.dmaptr++ = rmesa->vb.vertex[i].i;
- if (--vb.counter == 0)
- vb.notify();
+ if (--rmesa->vb.counter == 0)
+ rmesa->vb.notify();
}
@@ -114,7 +122,9 @@ static void radeon_Vertex2fv( const GLfloat *v )
*/
static void radeon_Color3ub_ub( GLubyte r, GLubyte g, GLubyte b )
{
- radeon_color_t *dest = vb.colorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ radeon_color_t *dest = rmesa->vb.colorptr;
dest->red = r;
dest->green = g;
dest->blue = b;
@@ -123,7 +133,9 @@ static void radeon_Color3ub_ub( GLubyte r, GLubyte g, GLubyte b )
static void radeon_Color3ubv_ub( const GLubyte *v )
{
- radeon_color_t *dest = vb.colorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ radeon_color_t *dest = rmesa->vb.colorptr;
dest->red = v[0];
dest->green = v[1];
dest->blue = v[2];
@@ -132,7 +144,9 @@ static void radeon_Color3ubv_ub( const GLubyte *v )
static void radeon_Color4ub_ub( GLubyte r, GLubyte g, GLubyte b, GLubyte a )
{
- radeon_color_t *dest = vb.colorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ radeon_color_t *dest = rmesa->vb.colorptr;
dest->red = r;
dest->green = g;
dest->blue = b;
@@ -141,13 +155,17 @@ static void radeon_Color4ub_ub( GLubyte r, GLubyte g, GLubyte b, GLubyte a )
static void radeon_Color4ubv_ub( const GLubyte *v )
{
- *(GLuint *)vb.colorptr = LE32_TO_CPU(*(GLuint *)v);
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ *(GLuint *)rmesa->vb.colorptr = LE32_TO_CPU(*(GLuint *)v);
}
static void radeon_Color3f_ub( GLfloat r, GLfloat g, GLfloat b )
{
- radeon_color_t *dest = vb.colorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ radeon_color_t *dest = rmesa->vb.colorptr;
UNCLAMPED_FLOAT_TO_UBYTE( dest->red, r );
UNCLAMPED_FLOAT_TO_UBYTE( dest->green, g );
UNCLAMPED_FLOAT_TO_UBYTE( dest->blue, b );
@@ -156,7 +174,9 @@ static void radeon_Color3f_ub( GLfloat r, GLfloat g, GLfloat b )
static void radeon_Color3fv_ub( const GLfloat *v )
{
- radeon_color_t *dest = vb.colorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ radeon_color_t *dest = rmesa->vb.colorptr;
UNCLAMPED_FLOAT_TO_UBYTE( dest->red, v[0] );
UNCLAMPED_FLOAT_TO_UBYTE( dest->green, v[1] );
UNCLAMPED_FLOAT_TO_UBYTE( dest->blue, v[2] );
@@ -165,7 +185,9 @@ static void radeon_Color3fv_ub( const GLfloat *v )
static void radeon_Color4f_ub( GLfloat r, GLfloat g, GLfloat b, GLfloat a )
{
- radeon_color_t *dest = vb.colorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ radeon_color_t *dest = rmesa->vb.colorptr;
UNCLAMPED_FLOAT_TO_UBYTE( dest->red, r );
UNCLAMPED_FLOAT_TO_UBYTE( dest->green, g );
UNCLAMPED_FLOAT_TO_UBYTE( dest->blue, b );
@@ -174,7 +196,9 @@ static void radeon_Color4f_ub( GLfloat r, GLfloat g, GLfloat b, GLfloat a )
static void radeon_Color4fv_ub( const GLfloat *v )
{
- radeon_color_t *dest = vb.colorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ radeon_color_t *dest = rmesa->vb.colorptr;
UNCLAMPED_FLOAT_TO_UBYTE( dest->red, v[0] );
UNCLAMPED_FLOAT_TO_UBYTE( dest->green, v[1] );
UNCLAMPED_FLOAT_TO_UBYTE( dest->blue, v[2] );
@@ -186,7 +210,9 @@ static void radeon_Color4fv_ub( const GLfloat *v )
*/
static void radeon_Color3ub_4f( GLubyte r, GLubyte g, GLubyte b )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = UBYTE_TO_FLOAT(r);
dest[1] = UBYTE_TO_FLOAT(g);
dest[2] = UBYTE_TO_FLOAT(b);
@@ -195,7 +221,9 @@ static void radeon_Color3ub_4f( GLubyte r, GLubyte g, GLubyte b )
static void radeon_Color3ubv_4f( const GLubyte *v )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = UBYTE_TO_FLOAT(v[0]);
dest[1] = UBYTE_TO_FLOAT(v[1]);
dest[2] = UBYTE_TO_FLOAT(v[2]);
@@ -204,7 +232,9 @@ static void radeon_Color3ubv_4f( const GLubyte *v )
static void radeon_Color4ub_4f( GLubyte r, GLubyte g, GLubyte b, GLubyte a )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = UBYTE_TO_FLOAT(r);
dest[1] = UBYTE_TO_FLOAT(g);
dest[2] = UBYTE_TO_FLOAT(b);
@@ -213,7 +243,9 @@ static void radeon_Color4ub_4f( GLubyte r, GLubyte g, GLubyte b, GLubyte a )
static void radeon_Color4ubv_4f( const GLubyte *v )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = UBYTE_TO_FLOAT(v[0]);
dest[1] = UBYTE_TO_FLOAT(v[1]);
dest[2] = UBYTE_TO_FLOAT(v[2]);
@@ -223,7 +255,9 @@ static void radeon_Color4ubv_4f( const GLubyte *v )
static void radeon_Color3f_4f( GLfloat r, GLfloat g, GLfloat b )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = r;
dest[1] = g;
dest[2] = b;
@@ -232,7 +266,9 @@ static void radeon_Color3f_4f( GLfloat r, GLfloat g, GLfloat b )
static void radeon_Color3fv_4f( const GLfloat *v )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = v[0];
dest[1] = v[1];
dest[2] = v[2];
@@ -241,7 +277,9 @@ static void radeon_Color3fv_4f( const GLfloat *v )
static void radeon_Color4f_4f( GLfloat r, GLfloat g, GLfloat b, GLfloat a )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = r;
dest[1] = g;
dest[2] = b;
@@ -250,7 +288,9 @@ static void radeon_Color4f_4f( GLfloat r, GLfloat g, GLfloat b, GLfloat a )
static void radeon_Color4fv_4f( const GLfloat *v )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = v[0];
dest[1] = v[1];
dest[2] = v[2];
@@ -262,7 +302,9 @@ static void radeon_Color4fv_4f( const GLfloat *v )
*/
static void radeon_Color3ub_3f( GLubyte r, GLubyte g, GLubyte b )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = UBYTE_TO_FLOAT(r);
dest[1] = UBYTE_TO_FLOAT(g);
dest[2] = UBYTE_TO_FLOAT(b);
@@ -270,7 +312,9 @@ static void radeon_Color3ub_3f( GLubyte r, GLubyte g, GLubyte b )
static void radeon_Color3ubv_3f( const GLubyte *v )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = UBYTE_TO_FLOAT(v[0]);
dest[1] = UBYTE_TO_FLOAT(v[1]);
dest[2] = UBYTE_TO_FLOAT(v[2]);
@@ -278,26 +322,32 @@ static void radeon_Color3ubv_3f( const GLubyte *v )
static void radeon_Color4ub_3f( GLubyte r, GLubyte g, GLubyte b, GLubyte a )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = UBYTE_TO_FLOAT(r);
dest[1] = UBYTE_TO_FLOAT(g);
dest[2] = UBYTE_TO_FLOAT(b);
- vb.context->Current.Attrib[VERT_ATTRIB_COLOR0][3] = UBYTE_TO_FLOAT(a);
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3] = UBYTE_TO_FLOAT(a);
}
static void radeon_Color4ubv_3f( const GLubyte *v )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = UBYTE_TO_FLOAT(v[0]);
dest[1] = UBYTE_TO_FLOAT(v[1]);
dest[2] = UBYTE_TO_FLOAT(v[2]);
- vb.context->Current.Attrib[VERT_ATTRIB_COLOR0][3] = UBYTE_TO_FLOAT(v[3]);
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3] = UBYTE_TO_FLOAT(v[3]);
}
static void radeon_Color3f_3f( GLfloat r, GLfloat g, GLfloat b )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = r;
dest[1] = g;
dest[2] = b;
@@ -305,7 +355,9 @@ static void radeon_Color3f_3f( GLfloat r, GLfloat g, GLfloat b )
static void radeon_Color3fv_3f( const GLfloat *v )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = v[0];
dest[1] = v[1];
dest[2] = v[2];
@@ -313,20 +365,24 @@ static void radeon_Color3fv_3f( const GLfloat *v )
static void radeon_Color4f_3f( GLfloat r, GLfloat g, GLfloat b, GLfloat a )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = r;
dest[1] = g;
dest[2] = b;
- vb.context->Current.Attrib[VERT_ATTRIB_COLOR0][3] = a;
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3] = a;
}
static void radeon_Color4fv_3f( const GLfloat *v )
{
- GLfloat *dest = vb.floatcolorptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatcolorptr;
dest[0] = v[0];
dest[1] = v[1];
dest[2] = v[2];
- vb.context->Current.Attrib[VERT_ATTRIB_COLOR0][3] = v[3];
+ ctx->Current.Attrib[VERT_ATTRIB_COLOR0][3] = v[3];
}
@@ -334,7 +390,9 @@ static void radeon_Color4fv_3f( const GLfloat *v )
*/
static void radeon_SecondaryColor3ubEXT_ub( GLubyte r, GLubyte g, GLubyte b )
{
- radeon_color_t *dest = vb.specptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ radeon_color_t *dest = rmesa->vb.specptr;
dest->red = r;
dest->green = g;
dest->blue = b;
@@ -343,7 +401,9 @@ static void radeon_SecondaryColor3ubEXT_ub( GLubyte r, GLubyte g, GLubyte b )
static void radeon_SecondaryColor3ubvEXT_ub( const GLubyte *v )
{
- radeon_color_t *dest = vb.specptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ radeon_color_t *dest = rmesa->vb.specptr;
dest->red = v[0];
dest->green = v[1];
dest->blue = v[2];
@@ -352,7 +412,9 @@ static void radeon_SecondaryColor3ubvEXT_ub( const GLubyte *v )
static void radeon_SecondaryColor3fEXT_ub( GLfloat r, GLfloat g, GLfloat b )
{
- radeon_color_t *dest = vb.specptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ radeon_color_t *dest = rmesa->vb.specptr;
UNCLAMPED_FLOAT_TO_UBYTE( dest->red, r );
UNCLAMPED_FLOAT_TO_UBYTE( dest->green, g );
UNCLAMPED_FLOAT_TO_UBYTE( dest->blue, b );
@@ -361,7 +423,9 @@ static void radeon_SecondaryColor3fEXT_ub( GLfloat r, GLfloat g, GLfloat b )
static void radeon_SecondaryColor3fvEXT_ub( const GLfloat *v )
{
- radeon_color_t *dest = vb.specptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ radeon_color_t *dest = rmesa->vb.specptr;
UNCLAMPED_FLOAT_TO_UBYTE( dest->red, v[0] );
UNCLAMPED_FLOAT_TO_UBYTE( dest->green, v[1] );
UNCLAMPED_FLOAT_TO_UBYTE( dest->blue, v[2] );
@@ -370,7 +434,9 @@ static void radeon_SecondaryColor3fvEXT_ub( const GLfloat *v )
static void radeon_SecondaryColor3ubEXT_3f( GLubyte r, GLubyte g, GLubyte b )
{
- GLfloat *dest = vb.floatspecptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatspecptr;
dest[0] = UBYTE_TO_FLOAT(r);
dest[1] = UBYTE_TO_FLOAT(g);
dest[2] = UBYTE_TO_FLOAT(b);
@@ -379,7 +445,9 @@ static void radeon_SecondaryColor3ubEXT_3f( GLubyte r, GLubyte g, GLubyte b )
static void radeon_SecondaryColor3ubvEXT_3f( const GLubyte *v )
{
- GLfloat *dest = vb.floatspecptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatspecptr;
dest[0] = UBYTE_TO_FLOAT(v[0]);
dest[1] = UBYTE_TO_FLOAT(v[1]);
dest[2] = UBYTE_TO_FLOAT(v[2]);
@@ -388,7 +456,9 @@ static void radeon_SecondaryColor3ubvEXT_3f( const GLubyte *v )
static void radeon_SecondaryColor3fEXT_3f( GLfloat r, GLfloat g, GLfloat b )
{
- GLfloat *dest = vb.floatspecptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatspecptr;
dest[0] = r;
dest[1] = g;
dest[2] = b;
@@ -397,7 +467,9 @@ static void radeon_SecondaryColor3fEXT_3f( GLfloat r, GLfloat g, GLfloat b )
static void radeon_SecondaryColor3fvEXT_3f( const GLfloat *v )
{
- GLfloat *dest = vb.floatspecptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.floatspecptr;
dest[0] = v[0];
dest[1] = v[1];
dest[2] = v[2];
@@ -405,12 +477,13 @@ static void radeon_SecondaryColor3fvEXT_3f( const GLfloat *v )
}
-
/* Normal
*/
static void radeon_Normal3f( GLfloat n0, GLfloat n1, GLfloat n2 )
{
- GLfloat *dest = vb.normalptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.normalptr;
dest[0] = n0;
dest[1] = n1;
dest[2] = n2;
@@ -418,7 +491,9 @@ static void radeon_Normal3f( GLfloat n0, GLfloat n1, GLfloat n2 )
static void radeon_Normal3fv( const GLfloat *v )
{
- GLfloat *dest = vb.normalptr;
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.normalptr;
dest[0] = v[0];
dest[1] = v[1];
dest[2] = v[2];
@@ -429,28 +504,36 @@ static void radeon_Normal3fv( const GLfloat *v )
*/
static void radeon_TexCoord1f( GLfloat s )
{
- GLfloat *dest = vb.texcoordptr[0];
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.texcoordptr[0];
dest[0] = s;
dest[1] = 0;
}
static void radeon_TexCoord1fv( const GLfloat *v )
{
- GLfloat *dest = vb.texcoordptr[0];
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.texcoordptr[0];
dest[0] = v[0];
dest[1] = 0;
}
static void radeon_TexCoord2f( GLfloat s, GLfloat t )
{
- GLfloat *dest = vb.texcoordptr[0];
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.texcoordptr[0];
dest[0] = s;
dest[1] = t;
}
static void radeon_TexCoord2fv( const GLfloat *v )
{
- GLfloat *dest = vb.texcoordptr[0];
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.texcoordptr[0];
dest[0] = v[0];
dest[1] = v[1];
}
@@ -468,28 +551,36 @@ static void radeon_TexCoord2fv( const GLfloat *v )
static void radeon_MultiTexCoord1fARB( GLenum target, GLfloat s )
{
- GLfloat *dest = vb.texcoordptr[target & 1];
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.texcoordptr[target & 1];
dest[0] = s;
dest[1] = 0;
}
static void radeon_MultiTexCoord1fvARB( GLenum target, const GLfloat *v )
{
- GLfloat *dest = vb.texcoordptr[target & 1];
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.texcoordptr[target & 1];
dest[0] = v[0];
dest[1] = 0;
}
static void radeon_MultiTexCoord2fARB( GLenum target, GLfloat s, GLfloat t )
{
- GLfloat *dest = vb.texcoordptr[target & 1];
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.texcoordptr[target & 1];
dest[0] = s;
dest[1] = t;
}
static void radeon_MultiTexCoord2fvARB( GLenum target, const GLfloat *v )
{
- GLfloat *dest = vb.texcoordptr[target & 1];
+ GET_CURRENT_CONTEXT(ctx);
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+ GLfloat *dest = rmesa->vb.texcoordptr[target & 1];
dest[0] = v[0];
dest[1] = v[1];
}
@@ -512,26 +603,27 @@ static struct dynfn *lookup( struct dynfn *l, int key )
#define CHOOSE(FN, FNTYPE, MASK, ACTIVE, ARGS1, ARGS2 ) \
static void choose_##FN ARGS1 \
{ \
- radeonContextPtr rmesa = RADEON_CONTEXT(vb.context); \
+ GET_CURRENT_CONTEXT(ctx); \
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx); \
int key = rmesa->vb.vertex_format & (MASK|ACTIVE); \
struct dynfn *dfn; \
\
dfn = lookup( &rmesa->vb.dfn_cache.FN, key ); \
if (dfn == 0) \
- dfn = rmesa->vb.codegen.FN( vb.context, key ); \
+ dfn = rmesa->vb.codegen.FN( ctx, key ); \
else if (RADEON_DEBUG & DEBUG_CODEGEN) \
fprintf(stderr, "%s -- cached codegen\n", __FUNCTION__ ); \
\
if (dfn) \
- vb.context->Exec->FN = (FNTYPE)(dfn->code); \
+ ctx->Exec->FN = (FNTYPE)(dfn->code); \
else { \
if (RADEON_DEBUG & DEBUG_CODEGEN) \
fprintf(stderr, "%s -- generic version\n", __FUNCTION__ ); \
- vb.context->Exec->FN = radeon_##FN; \
+ ctx->Exec->FN = radeon_##FN; \
} \
\
- vb.context->Driver.NeedFlush |= FLUSH_UPDATE_CURRENT; \
- vb.context->Exec->FN ARGS2; \
+ ctx->Driver.NeedFlush |= FLUSH_UPDATE_CURRENT; \
+ ctx->Exec->FN ARGS2; \
}
@@ -546,8 +638,8 @@ static void choose_##FN ARGS1 \
#define CHOOSE_COLOR(FN, FNTYPE, NR, MASK, ACTIVE, ARGS1, ARGS2 ) \
static void choose_##FN ARGS1 \
{ \
- GLcontext *ctx = vb.context; \
- radeonContextPtr rmesa = RADEON_CONTEXT(vb.context); \
+ GET_CURRENT_CONTEXT(ctx); \
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx); \
int key = rmesa->vb.vertex_format & (MASK|ACTIVE); \
struct dynfn *dfn; \
\
@@ -601,23 +693,22 @@ static void choose_##FN ARGS1 \
#define CHOOSE_SECONDARY_COLOR(FN, FNTYPE, MASK, ACTIVE, ARGS1, ARGS2 ) \
static void choose_##FN ARGS1 \
{ \
- GLcontext *ctx = vb.context; \
- radeonContextPtr rmesa = RADEON_CONTEXT(vb.context); \
+ GET_CURRENT_CONTEXT(ctx); \
+ radeonContextPtr rmesa = RADEON_CONTEXT(ctx); \
int key = rmesa->vb.vertex_format & (MASK|ACTIVE); \
- struct dynfn *dfn; \
+ struct dynfn *dfn = lookup( &rmesa->vb.dfn_cache.FN, key ); \
\
- dfn = lookup( &rmesa->vb.dfn_cache.FN, key ); \
if (dfn == 0) \
- dfn = rmesa->vb.codegen.FN( vb.context, key ); \
+ dfn = rmesa->vb.codegen.FN( ctx, key ); \
else if (RADEON_DEBUG & DEBUG_CODEGEN) \
fprintf(stderr, "%s -- cached version\n", __FUNCTION__ ); \
\
if (dfn) \
- vb.context->Exec->FN = (FNTYPE)(dfn->code); \
+ ctx->Exec->FN = (FNTYPE)(dfn->code); \
else { \
if (RADEON_DEBUG & DEBUG_CODEGEN) \
fprintf(stderr, "%s -- generic version\n", __FUNCTION__ ); \
- vb.context->Exec->FN = ((rmesa->vb.vertex_format & ACTIVE_PKSPEC) != 0) \
+ ctx->Exec->FN = ((rmesa->vb.vertex_format & ACTIVE_PKSPEC) != 0) \
? radeon_##FN##_ub : radeon_##FN##_3f; \
} \
\
diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt_sse.c b/xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt_sse.c
index b8bcc0cd1..0f2c82bd8 100644
--- a/xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt_sse.c
+++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt_sse.c
@@ -116,16 +116,16 @@ static struct dynfn * radeon_makeSSENormal3fv( GLcontext *ctx, int key )
{
radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
- return radeon_makeSSEAttribute3fv( & rmesa->vb.dfn_cache.Normal3fv,
- key, __FUNCTION__, vb.normalptr );
+ return radeon_makeSSEAttribute3fv( & rmesa->vb.dfn_cache.Normal3fv, key,
+ __FUNCTION__, rmesa->vb.normalptr );
}
static struct dynfn *radeon_makeSSENormal3f( GLcontext *ctx, int key )
{
radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
- return radeon_makeSSEAttribute3f( & rmesa->vb.dfn_cache.Normal3f,
- key, __FUNCTION__, vb.normalptr );
+ return radeon_makeSSEAttribute3f( & rmesa->vb.dfn_cache.Normal3f, key,
+ __FUNCTION__, rmesa->vb.normalptr );
}
static struct dynfn *radeon_makeSSEColor3fv( GLcontext *ctx, int key )
@@ -136,8 +136,8 @@ static struct dynfn *radeon_makeSSEColor3fv( GLcontext *ctx, int key )
{
radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
- return radeon_makeSSEAttribute3fv( & rmesa->vb.dfn_cache.Color3fv,
- key, __FUNCTION__, vb.floatcolorptr );
+ return radeon_makeSSEAttribute3fv( & rmesa->vb.dfn_cache.Color3fv, key,
+ __FUNCTION__, rmesa->vb.floatcolorptr );
}
}
@@ -149,8 +149,8 @@ static struct dynfn *radeon_makeSSEColor3f( GLcontext *ctx, int key )
{
radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
- return radeon_makeSSEAttribute3f( & rmesa->vb.dfn_cache.Color3f,
- key, __FUNCTION__, vb.floatcolorptr );
+ return radeon_makeSSEAttribute3f( & rmesa->vb.dfn_cache.Color3f, key,
+ __FUNCTION__, rmesa->vb.floatcolorptr );
}
}
@@ -158,16 +158,16 @@ static struct dynfn *radeon_makeSSETexCoord2fv( GLcontext *ctx, int key )
{
radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
- return radeon_makeSSEAttribute2fv( & rmesa->vb.dfn_cache.TexCoord2fv,
- key, __FUNCTION__, vb.texcoordptr[0] );
+ return radeon_makeSSEAttribute2fv( & rmesa->vb.dfn_cache.TexCoord2fv, key,
+ __FUNCTION__, rmesa->vb.texcoordptr[0] );
}
static struct dynfn *radeon_makeSSETexCoord2f( GLcontext *ctx, int key )
{
radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
- return radeon_makeSSEAttribute2f( & rmesa->vb.dfn_cache.TexCoord2f,
- key, __FUNCTION__, vb.texcoordptr[0] );
+ return radeon_makeSSEAttribute2f( & rmesa->vb.dfn_cache.TexCoord2f, key,
+ __FUNCTION__, rmesa->vb.texcoordptr[0] );
}
static struct dynfn *radeon_makeSSEMultiTexCoord2fv( GLcontext *ctx, int key )
@@ -181,10 +181,10 @@ static struct dynfn *radeon_makeSSEMultiTexCoord2fv( GLcontext *ctx, int key )
if ((key & (RADEON_CP_VC_FRMT_ST0|RADEON_CP_VC_FRMT_ST1)) ==
(RADEON_CP_VC_FRMT_ST0|RADEON_CP_VC_FRMT_ST1)) {
DFN ( _sse_MultiTexCoord2fv, rmesa->vb.dfn_cache.MultiTexCoord2fvARB );
- FIXUP(dfn->code, 18, 0xdeadbeef, (int)vb.texcoordptr[0]);
+ FIXUP(dfn->code, 18, 0xdeadbeef, (int)rmesa->vb.texcoordptr[0]);
} else {
DFN ( _sse_MultiTexCoord2fv_2, rmesa->vb.dfn_cache.MultiTexCoord2fvARB );
- FIXUP(dfn->code, 14, 0x0, (int)vb.texcoordptr);
+ FIXUP(dfn->code, 14, 0x0, (int)rmesa->vb.texcoordptr);
}
return dfn;
}
@@ -200,10 +200,10 @@ static struct dynfn *radeon_makeSSEMultiTexCoord2f( GLcontext *ctx, int key )
if ((key & (RADEON_CP_VC_FRMT_ST0|RADEON_CP_VC_FRMT_ST1)) ==
(RADEON_CP_VC_FRMT_ST0|RADEON_CP_VC_FRMT_ST1)) {
DFN ( _sse_MultiTexCoord2f, rmesa->vb.dfn_cache.MultiTexCoord2fARB );
- FIXUP(dfn->code, 16, 0xdeadbeef, (int)vb.texcoordptr[0]);
+ FIXUP(dfn->code, 16, 0xdeadbeef, (int)rmesa->vb.texcoordptr[0]);
} else {
DFN ( _sse_MultiTexCoord2f_2, rmesa->vb.dfn_cache.MultiTexCoord2fARB );
- FIXUP(dfn->code, 15, 0x0, (int)vb.texcoordptr);
+ FIXUP(dfn->code, 15, 0x0, (int)rmesa->vb.texcoordptr);
}
return dfn;
}
diff --git a/xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt_x86.c b/xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt_x86.c
index fa56e4572..92941ca5f 100644
--- a/xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt_x86.c
+++ b/xc/lib/GL/mesa/src/drv/radeon/radeon_vtxfmt_x86.c
@@ -35,7 +35,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "glheader.h"
#include "imports.h"
-#include "mmath.h"
#include "simple_list.h"
#include "radeon_vtxfmt.h"
@@ -74,43 +73,43 @@ struct dynfn *radeon_makeX86Vertex3f( GLcontext *ctx, int key )
struct dynfn *dfn = MALLOC_STRUCT( dynfn );
if (RADEON_DEBUG & DEBUG_CODEGEN)
- fprintf(stderr, "%s 0x%08x %d\n", __FUNCTION__, key, vb.vertex_size );
+ fprintf(stderr, "%s 0x%08x %d\n", __FUNCTION__, key, rmesa->vb.vertex_size );
- switch (vb.vertex_size) {
+ switch (rmesa->vb.vertex_size) {
case 4: {
DFN ( _x86_Vertex3f_4, rmesa->vb.dfn_cache.Vertex3f );
- FIXUP(dfn->code, 2, 0x0, (int)&vb.dmaptr);
- FIXUP(dfn->code, 25, 0x0, (int)&vb.vertex[3]);
- FIXUP(dfn->code, 36, 0x0, (int)&vb.counter);
- FIXUP(dfn->code, 46, 0x0, (int)&vb.dmaptr);
- FIXUP(dfn->code, 51, 0x0, (int)&vb.counter);
- FIXUP(dfn->code, 60, 0x0, (int)&vb.notify);
+ FIXUP(dfn->code, 2, 0x0, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 25, 0x0, (int)&rmesa->vb.vertex[3]);
+ FIXUP(dfn->code, 36, 0x0, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 46, 0x0, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 51, 0x0, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 60, 0x0, (int)&rmesa->vb.notify);
break;
}
case 6: {
DFN ( _x86_Vertex3f_6, rmesa->vb.dfn_cache.Vertex3f );
- FIXUP(dfn->code, 3, 0x0, (int)&vb.dmaptr);
- FIXUP(dfn->code, 28, 0x0, (int)&vb.vertex[3]);
- FIXUP(dfn->code, 34, 0x0, (int)&vb.vertex[4]);
- FIXUP(dfn->code, 40, 0x0, (int)&vb.vertex[5]);
- FIXUP(dfn->code, 57, 0x0, (int)&vb.counter);
- FIXUP(dfn->code, 63, 0x0, (int)&vb.dmaptr);
- FIXUP(dfn->code, 70, 0x0, (int)&vb.counter);
- FIXUP(dfn->code, 79, 0x0, (int)&vb.notify);
+ FIXUP(dfn->code, 3, 0x0, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 28, 0x0, (int)&rmesa->vb.vertex[3]);
+ FIXUP(dfn->code, 34, 0x0, (int)&rmesa->vb.vertex[4]);
+ FIXUP(dfn->code, 40, 0x0, (int)&rmesa->vb.vertex[5]);
+ FIXUP(dfn->code, 57, 0x0, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 63, 0x0, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 70, 0x0, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 79, 0x0, (int)&rmesa->vb.notify);
break;
}
default: {
DFN ( _x86_Vertex3f, rmesa->vb.dfn_cache.Vertex3f );
- FIXUP(dfn->code, 3, 0x0, (int)&vb.vertex[3]);
- FIXUP(dfn->code, 9, 0x0, (int)&vb.dmaptr);
- FIXUP(dfn->code, 37, 0x0, vb.vertex_size-3);
- FIXUP(dfn->code, 44, 0x0, (int)&vb.counter);
- FIXUP(dfn->code, 50, 0x0, (int)&vb.dmaptr);
- FIXUP(dfn->code, 56, 0x0, (int)&vb.counter);
- FIXUP(dfn->code, 67, 0x0, (int)&vb.notify);
+ FIXUP(dfn->code, 3, 0x0, (int)&rmesa->vb.vertex[3]);
+ FIXUP(dfn->code, 9, 0x0, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 37, 0x0, rmesa->vb.vertex_size-3);
+ FIXUP(dfn->code, 44, 0x0, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 50, 0x0, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 56, 0x0, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 67, 0x0, (int)&rmesa->vb.notify);
break;
}
}
@@ -126,20 +125,20 @@ struct dynfn *radeon_makeX86Vertex3fv( GLcontext *ctx, int key )
struct dynfn *dfn = MALLOC_STRUCT( dynfn );
if (RADEON_DEBUG & DEBUG_CODEGEN)
- fprintf(stderr, "%s 0x%08x %d\n", __FUNCTION__, key, vb.vertex_size );
+ fprintf(stderr, "%s 0x%08x %d\n", __FUNCTION__, key, rmesa->vb.vertex_size );
- switch (vb.vertex_size) {
+ switch (rmesa->vb.vertex_size) {
case 6: {
DFN ( _x86_Vertex3fv_6, rmesa->vb.dfn_cache.Vertex3fv );
- FIXUP(dfn->code, 1, 0x00000000, (int)&vb.dmaptr);
- FIXUP(dfn->code, 27, 0x0000001c, (int)&vb.vertex[3]);
- FIXUP(dfn->code, 33, 0x00000020, (int)&vb.vertex[4]);
- FIXUP(dfn->code, 45, 0x00000024, (int)&vb.vertex[5]);
- FIXUP(dfn->code, 56, 0x00000000, (int)&vb.dmaptr);
- FIXUP(dfn->code, 61, 0x00000004, (int)&vb.counter);
- FIXUP(dfn->code, 67, 0x00000004, (int)&vb.counter);
- FIXUP(dfn->code, 76, 0x00000008, (int)&vb.notify);
+ FIXUP(dfn->code, 1, 0x00000000, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 27, 0x0000001c, (int)&rmesa->vb.vertex[3]);
+ FIXUP(dfn->code, 33, 0x00000020, (int)&rmesa->vb.vertex[4]);
+ FIXUP(dfn->code, 45, 0x00000024, (int)&rmesa->vb.vertex[5]);
+ FIXUP(dfn->code, 56, 0x00000000, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 61, 0x00000004, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 67, 0x00000004, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 76, 0x00000008, (int)&rmesa->vb.notify);
break;
}
@@ -147,16 +146,16 @@ struct dynfn *radeon_makeX86Vertex3fv( GLcontext *ctx, int key )
case 8: {
DFN ( _x86_Vertex3fv_8, rmesa->vb.dfn_cache.Vertex3fv );
- FIXUP(dfn->code, 1, 0x00000000, (int)&vb.dmaptr);
- FIXUP(dfn->code, 27, 0x0000001c, (int)&vb.vertex[3]);
- FIXUP(dfn->code, 33, 0x00000020, (int)&vb.vertex[4]);
- FIXUP(dfn->code, 45, 0x0000001c, (int)&vb.vertex[5]);
- FIXUP(dfn->code, 51, 0x00000020, (int)&vb.vertex[6]);
- FIXUP(dfn->code, 63, 0x00000024, (int)&vb.vertex[7]);
- FIXUP(dfn->code, 74, 0x00000000, (int)&vb.dmaptr);
- FIXUP(dfn->code, 79, 0x00000004, (int)&vb.counter);
- FIXUP(dfn->code, 85, 0x00000004, (int)&vb.counter);
- FIXUP(dfn->code, 94, 0x00000008, (int)&vb.notify);
+ FIXUP(dfn->code, 1, 0x00000000, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 27, 0x0000001c, (int)&rmesa->vb.vertex[3]);
+ FIXUP(dfn->code, 33, 0x00000020, (int)&rmesa->vb.vertex[4]);
+ FIXUP(dfn->code, 45, 0x0000001c, (int)&rmesa->vb.vertex[5]);
+ FIXUP(dfn->code, 51, 0x00000020, (int)&rmesa->vb.vertex[6]);
+ FIXUP(dfn->code, 63, 0x00000024, (int)&rmesa->vb.vertex[7]);
+ FIXUP(dfn->code, 74, 0x00000000, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 79, 0x00000004, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 85, 0x00000004, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 94, 0x00000008, (int)&rmesa->vb.notify);
break;
}
@@ -165,13 +164,13 @@ struct dynfn *radeon_makeX86Vertex3fv( GLcontext *ctx, int key )
default: {
DFN ( _x86_Vertex3fv, rmesa->vb.dfn_cache.Vertex3fv );
- FIXUP(dfn->code, 8, 0x01010101, (int)&vb.dmaptr);
- FIXUP(dfn->code, 32, 0x00000006, vb.vertex_size-3);
- FIXUP(dfn->code, 37, 0x00000058, (int)&vb.vertex[3]);
- FIXUP(dfn->code, 45, 0x01010101, (int)&vb.dmaptr);
- FIXUP(dfn->code, 50, 0x02020202, (int)&vb.counter);
- FIXUP(dfn->code, 58, 0x02020202, (int)&vb.counter);
- FIXUP(dfn->code, 67, 0x0, (int)&vb.notify);
+ FIXUP(dfn->code, 8, 0x01010101, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 32, 0x00000006, rmesa->vb.vertex_size-3);
+ FIXUP(dfn->code, 37, 0x00000058, (int)&rmesa->vb.vertex[3]);
+ FIXUP(dfn->code, 45, 0x01010101, (int)&rmesa->vb.dmaptr);
+ FIXUP(dfn->code, 50, 0x02020202, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 58, 0x02020202, (int)&rmesa->vb.counter);
+ FIXUP(dfn->code, 67, 0x0, (int)&rmesa->vb.notify);
break;
}
}
@@ -249,16 +248,16 @@ struct dynfn *radeon_makeX86Normal3fv( GLcontext *ctx, int key )
{
radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
- return radeon_makeX86Attribute3fv( & rmesa->vb.dfn_cache.Normal3fv,
- key, __FUNCTION__, vb.normalptr );
+ return radeon_makeX86Attribute3fv( & rmesa->vb.dfn_cache.Normal3fv, key,
+ __FUNCTION__, rmesa->vb.normalptr );
}
struct dynfn *radeon_makeX86Normal3f( GLcontext *ctx, int key )
{
radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
- return radeon_makeX86Attribute3f( & rmesa->vb.dfn_cache.Normal3f,
- key, __FUNCTION__, vb.normalptr );
+ return radeon_makeX86Attribute3f( & rmesa->vb.dfn_cache.Normal3f, key,
+ __FUNCTION__, rmesa->vb.normalptr );
}
struct dynfn *radeon_makeX86Color4ubv( GLcontext *ctx, int key )
@@ -272,17 +271,17 @@ struct dynfn *radeon_makeX86Color4ubv( GLcontext *ctx, int key )
if (key & RADEON_CP_VC_FRMT_PKCOLOR) {
DFN ( _x86_Color4ubv_ub, rmesa->vb.dfn_cache.Color4ubv);
- FIXUP(dfn->code, 5, 0x12345678, (int)vb.colorptr);
+ FIXUP(dfn->code, 5, 0x12345678, (int)rmesa->vb.colorptr);
return dfn;
}
else {
DFN ( _x86_Color4ubv_4f, rmesa->vb.dfn_cache.Color4ubv);
FIXUP(dfn->code, 2, 0x00000000, (int)_mesa_ubyte_to_float_color_tab);
- FIXUP(dfn->code, 27, 0xdeadbeaf, (int)vb.floatcolorptr);
- FIXUP(dfn->code, 33, 0xdeadbeaf, (int)vb.floatcolorptr+4);
- FIXUP(dfn->code, 55, 0xdeadbeaf, (int)vb.floatcolorptr+8);
- FIXUP(dfn->code, 61, 0xdeadbeaf, (int)vb.floatcolorptr+12);
+ FIXUP(dfn->code, 27, 0xdeadbeaf, (int)rmesa->vb.floatcolorptr);
+ FIXUP(dfn->code, 33, 0xdeadbeaf, (int)rmesa->vb.floatcolorptr+4);
+ FIXUP(dfn->code, 55, 0xdeadbeaf, (int)rmesa->vb.floatcolorptr+8);
+ FIXUP(dfn->code, 61, 0xdeadbeaf, (int)rmesa->vb.floatcolorptr+12);
return dfn;
}
}
@@ -297,10 +296,10 @@ struct dynfn *radeon_makeX86Color4ub( GLcontext *ctx, int key )
radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
DFN ( _x86_Color4ub_ub, rmesa->vb.dfn_cache.Color4ub );
- FIXUP(dfn->code, 18, 0x0, (int)vb.colorptr);
- FIXUP(dfn->code, 24, 0x0, (int)vb.colorptr+1);
- FIXUP(dfn->code, 30, 0x0, (int)vb.colorptr+2);
- FIXUP(dfn->code, 36, 0x0, (int)vb.colorptr+3);
+ FIXUP(dfn->code, 18, 0x0, (int)rmesa->vb.colorptr);
+ FIXUP(dfn->code, 24, 0x0, (int)rmesa->vb.colorptr+1);
+ FIXUP(dfn->code, 30, 0x0, (int)rmesa->vb.colorptr+2);
+ FIXUP(dfn->code, 36, 0x0, (int)rmesa->vb.colorptr+3);
return dfn;
}
else
@@ -316,8 +315,8 @@ struct dynfn *radeon_makeX86Color3fv( GLcontext *ctx, int key )
{
radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
- return radeon_makeX86Attribute3fv( & rmesa->vb.dfn_cache.Color3fv,
- key, __FUNCTION__, vb.floatcolorptr );
+ return radeon_makeX86Attribute3fv( & rmesa->vb.dfn_cache.Color3fv, key,
+ __FUNCTION__, rmesa->vb.floatcolorptr );
}
}
@@ -329,8 +328,8 @@ struct dynfn *radeon_makeX86Color3f( GLcontext *ctx, int key )
{
radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
- return radeon_makeX86Attribute3f( & rmesa->vb.dfn_cache.Color3f,
- key, __FUNCTION__, vb.floatcolorptr );
+ return radeon_makeX86Attribute3f( & rmesa->vb.dfn_cache.Color3f, key,
+ __FUNCTION__, rmesa->vb.floatcolorptr );
}
}
@@ -340,16 +339,16 @@ struct dynfn *radeon_makeX86TexCoord2fv( GLcontext *ctx, int key )
{
radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
- return radeon_makeX86Attribute2fv( & rmesa->vb.dfn_cache.TexCoord2fv,
- key, __FUNCTION__, vb.texcoordptr[0] );
+ return radeon_makeX86Attribute2fv( & rmesa->vb.dfn_cache.TexCoord2fv, key,
+ __FUNCTION__, rmesa->vb.texcoordptr[0] );
}
struct dynfn *radeon_makeX86TexCoord2f( GLcontext *ctx, int key )
{
radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
- return radeon_makeX86Attribute2f( & rmesa->vb.dfn_cache.TexCoord2f,
- key, __FUNCTION__, vb.texcoordptr[0] );
+ return radeon_makeX86Attribute2f( & rmesa->vb.dfn_cache.TexCoord2f, key,
+ __FUNCTION__, rmesa->vb.texcoordptr[0] );
}
struct dynfn *radeon_makeX86MultiTexCoord2fvARB( GLcontext *ctx, int key )
@@ -363,11 +362,11 @@ struct dynfn *radeon_makeX86MultiTexCoord2fvARB( GLcontext *ctx, int key )
if ((key & (RADEON_CP_VC_FRMT_ST0|RADEON_CP_VC_FRMT_ST1)) ==
(RADEON_CP_VC_FRMT_ST0|RADEON_CP_VC_FRMT_ST1)) {
DFN ( _x86_MultiTexCoord2fv, rmesa->vb.dfn_cache.MultiTexCoord2fvARB );
- FIXUP(dfn->code, 21, 0xdeadbeef, (int)vb.texcoordptr[0]);
- FIXUP(dfn->code, 27, 0xdeadbeef, (int)vb.texcoordptr[0]+4);
+ FIXUP(dfn->code, 21, 0xdeadbeef, (int)rmesa->vb.texcoordptr[0]);
+ FIXUP(dfn->code, 27, 0xdeadbeef, (int)rmesa->vb.texcoordptr[0]+4);
} else {
DFN ( _x86_MultiTexCoord2fv_2, rmesa->vb.dfn_cache.MultiTexCoord2fvARB );
- FIXUP(dfn->code, 14, 0x0, (int)vb.texcoordptr);
+ FIXUP(dfn->code, 14, 0x0, (int)rmesa->vb.texcoordptr);
}
return dfn;
}
@@ -384,15 +383,15 @@ struct dynfn *radeon_makeX86MultiTexCoord2fARB( GLcontext *ctx,
if ((key & (RADEON_CP_VC_FRMT_ST0|RADEON_CP_VC_FRMT_ST1)) ==
(RADEON_CP_VC_FRMT_ST0|RADEON_CP_VC_FRMT_ST1)) {
DFN ( _x86_MultiTexCoord2f, rmesa->vb.dfn_cache.MultiTexCoord2fARB );
- FIXUP(dfn->code, 20, 0xdeadbeef, (int)vb.texcoordptr[0]);
- FIXUP(dfn->code, 26, 0xdeadbeef, (int)vb.texcoordptr[0]+4);
+ FIXUP(dfn->code, 20, 0xdeadbeef, (int)rmesa->vb.texcoordptr[0]);
+ FIXUP(dfn->code, 26, 0xdeadbeef, (int)rmesa->vb.texcoordptr[0]+4);
}
else {
/* Note: this might get generated multiple times, even though the
* actual emitted code is the same.
*/
DFN ( _x86_MultiTexCoord2f_2, rmesa->vb.dfn_cache.MultiTexCoord2fARB );
- FIXUP(dfn->code, 18, 0x0, (int)vb.texcoordptr);
+ FIXUP(dfn->code, 18, 0x0, (int)rmesa->vb.texcoordptr);
}
return dfn;
}
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/drm_vm.h b/xc/programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/drm_vm.h
index 1ce0efab3..5355b740d 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/drm_vm.h
+++ b/xc/programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/drm_vm.h
@@ -45,15 +45,14 @@ paddr_t DRM(mmap)(dev_t kdev, off_t offset, int prot)
drm_map_list_entry_t *listentry=NULL;
drm_file_t *priv;
-/* DRM_DEBUG("offset = 0x%x\n", offset);*/
-
priv = DRM(find_file_by_proc)(dev, DRM_CURPROC);
if (!priv) {
DRM_DEBUG("can't find authenticator\n");
return EINVAL;
}
- if (!priv->authenticated) return DRM_ERR(EACCES);
+ if (!priv->authenticated)
+ return DRM_ERR(EACCES);
if (dev->dma
&& offset >= 0