accomodate vtx-0-2-branch

This commit is contained in:
Daniel Borca 2003-11-26 08:32:35 +00:00
parent 0f3cd3f894
commit 854b4a3b54
12 changed files with 140 additions and 218 deletions

View File

@ -216,16 +216,10 @@ TNL_SOURCES = \
tnl/t_array_api.c \
tnl/t_array_import.c \
tnl/t_context.c \
tnl/t_eval_api.c \
tnl/t_imm_alloc.c \
tnl/t_imm_api.c \
tnl/t_imm_debug.c \
tnl/t_imm_dlist.c \
tnl/t_imm_elt.c \
tnl/t_imm_eval.c \
tnl/t_imm_exec.c \
tnl/t_imm_fixup.c \
tnl/t_pipeline.c \
tnl/t_save_api.c \
tnl/t_save_loopback.c \
tnl/t_save_playback.c \
tnl/t_vb_fog.c \
tnl/t_vb_light.c \
tnl/t_vb_normals.c \
@ -234,7 +228,10 @@ TNL_SOURCES = \
tnl/t_vb_render.c \
tnl/t_vb_texgen.c \
tnl/t_vb_texmat.c \
tnl/t_vb_vertex.c
tnl/t_vb_vertex.c \
tnl/t_vtx_api.c \
tnl/t_vtx_eval.c \
tnl/t_vtx_exec.c
X86_SOURCES = \
x86/x86.c \
@ -268,9 +265,9 @@ CORE_SOURCES = \
$(GLAPI_SOURCES) \
$(MATH_SOURCES) \
$(ARRAY_CACHE_SOURCES) \
$(TNL_SOURCES) \
$(SWRAST_SOURCES) \
$(SWRAST_SETUP_SOURCES) \
$(TNL_SOURCES)
$(SWRAST_SETUP_SOURCES)
ifeq ($(HAVE_MMX),1)
X86_SOURCES += $(MMX_SOURCES)

View File

@ -209,16 +209,10 @@ TNL_SOURCES = \
tnl/t_array_api.c \
tnl/t_array_import.c \
tnl/t_context.c \
tnl/t_eval_api.c \
tnl/t_imm_alloc.c \
tnl/t_imm_api.c \
tnl/t_imm_debug.c \
tnl/t_imm_dlist.c \
tnl/t_imm_elt.c \
tnl/t_imm_eval.c \
tnl/t_imm_exec.c \
tnl/t_imm_fixup.c \
tnl/t_pipeline.c \
tnl/t_save_api.c \
tnl/t_save_loopback.c \
tnl/t_save_playback.c \
tnl/t_vb_fog.c \
tnl/t_vb_light.c \
tnl/t_vb_normals.c \
@ -227,7 +221,10 @@ TNL_SOURCES = \
tnl/t_vb_render.c \
tnl/t_vb_texgen.c \
tnl/t_vb_texmat.c \
tnl/t_vb_vertex.c
tnl/t_vb_vertex.c \
tnl/t_vtx_api.c \
tnl/t_vtx_eval.c \
tnl/t_vtx_exec.c
X86_SOURCES = \
x86/x86.c \
@ -261,9 +258,9 @@ CORE_SOURCES = \
$(GLAPI_SOURCES) \
$(MATH_SOURCES) \
$(ARRAY_CACHE_SOURCES) \
$(TNL_SOURCES) \
$(SWRAST_SOURCES) \
$(SWRAST_SETUP_SOURCES) \
$(TNL_SOURCES)
$(SWRAST_SETUP_SOURCES)
ifeq ($(HAVE_MMX),1)
X86_SOURCES += $(MMX_SOURCES)

View File

@ -231,16 +231,10 @@ TNL_SOURCES =\
tnl\t_array_api.c\
tnl\t_array_import.c\
tnl\t_context.c\
tnl\t_eval_api.c\
tnl\t_imm_alloc.c\
tnl\t_imm_api.c\
tnl\t_imm_debug.c\
tnl\t_imm_dlist.c\
tnl\t_imm_elt.c\
tnl\t_imm_eval.c\
tnl\t_imm_exec.c\
tnl\t_imm_fixup.c\
tnl\t_pipeline.c\
tnl\t_save_api.c\
tnl\t_save_loopback.c\
tnl\t_save_playback.c\
tnl\t_vb_fog.c\
tnl\t_vb_light.c\
tnl\t_vb_normals.c\
@ -249,7 +243,10 @@ TNL_SOURCES =\
tnl\t_vb_render.c\
tnl\t_vb_texgen.c\
tnl\t_vb_texmat.c\
tnl\t_vb_vertex.c
tnl\t_vb_vertex.c\
tnl\t_vtx_api.c\
tnl\t_vtx_eval.c\
tnl\t_vtx_exec.c
DRIVER_SOURCES =\
drivers\glide\fxapi.c\

View File

@ -119,7 +119,8 @@ typedef struct {
float oow; /* 1/W (used for W-buffering, texturing) */
unsigned char pargb[4]; /* B, G, R, A [0..255] */
GrTmuVertex tmuvtx[GLIDE_NUM_TMU];
long pad[16 - 11]; /* future use; also ensure 64b structure */
float fog; /* fog coordinate */
long pad[16 - 12]; /* ensure 64b structure */
} GrVertex;
#define GR_VERTEX_X_OFFSET 0
@ -133,6 +134,7 @@ typedef struct {
#define GR_VERTEX_SOW_TMU1_OFFSET 8
#define GR_VERTEX_TOW_TMU1_OFFSET 9
#define GR_VERTEX_OOW_TMU1_OFFSET 10
#define GR_VERTEX_FOG_OFFSET 11

View File

@ -24,6 +24,7 @@
/* Authors:
* Keith Whitwell <keith@tungstengraphics.com>
* Daniel Borca <dborca@users.sourceforge.net>
*/
#include "glheader.h"
@ -310,10 +311,10 @@ static struct {
#define VERT_SET_RGBA( dst, f ) \
do { \
dst->pargb[2] = f[0]; \
dst->pargb[1] = f[1]; \
dst->pargb[0] = f[2]; \
dst->pargb[3] = f[3]; \
dst->pargb[2] = f[0] * 255.; \
dst->pargb[1] = f[1] * 255.; \
dst->pargb[0] = f[2] * 255.; \
dst->pargb[3] = f[3] * 255.; \
} while (0)
#define VERT_COPY_RGBA( v0, v1 ) \
@ -343,7 +344,7 @@ do { \
#define RENDER_PRIMITIVE fxMesa->render_primitive
#define IND FX_FALLBACK_BIT
#define TAG(x) x
#include "../common/t_dd_unfilled.h"
#include "../../tnl_dd/t_dd_unfilled.h"
#undef IND
/***********************************************************************
@ -352,136 +353,136 @@ do { \
#define IND (0)
#define TAG(x) x
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_OFFSET_BIT)
#define TAG(x) x##_offset
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_TWOSIDE_BIT)
#define TAG(x) x##_twoside
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_TWOSIDE_BIT|FX_OFFSET_BIT)
#define TAG(x) x##_twoside_offset
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_UNFILLED_BIT)
#define TAG(x) x##_unfilled
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_OFFSET_BIT|FX_UNFILLED_BIT)
#define TAG(x) x##_offset_unfilled
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_TWOSIDE_BIT|FX_UNFILLED_BIT)
#define TAG(x) x##_twoside_unfilled
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_TWOSIDE_BIT|FX_OFFSET_BIT|FX_UNFILLED_BIT)
#define TAG(x) x##_twoside_offset_unfilled
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_FALLBACK_BIT)
#define TAG(x) x##_fallback
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_OFFSET_BIT|FX_FALLBACK_BIT)
#define TAG(x) x##_offset_fallback
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_TWOSIDE_BIT|FX_FALLBACK_BIT)
#define TAG(x) x##_twoside_fallback
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_TWOSIDE_BIT|FX_OFFSET_BIT|FX_FALLBACK_BIT)
#define TAG(x) x##_twoside_offset_fallback
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_UNFILLED_BIT|FX_FALLBACK_BIT)
#define TAG(x) x##_unfilled_fallback
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_OFFSET_BIT|FX_UNFILLED_BIT|FX_FALLBACK_BIT)
#define TAG(x) x##_offset_unfilled_fallback
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_TWOSIDE_BIT|FX_UNFILLED_BIT|FX_FALLBACK_BIT)
#define TAG(x) x##_twoside_unfilled_fallback
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_TWOSIDE_BIT|FX_OFFSET_BIT|FX_UNFILLED_BIT| \
FX_FALLBACK_BIT)
#define TAG(x) x##_twoside_offset_unfilled_fallback
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
/* Fx doesn't support provoking-vertex flat-shading?
*/
#define IND (FX_FLAT_BIT)
#define TAG(x) x##_flat
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_OFFSET_BIT|FX_FLAT_BIT)
#define TAG(x) x##_offset_flat
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_TWOSIDE_BIT|FX_FLAT_BIT)
#define TAG(x) x##_twoside_flat
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_TWOSIDE_BIT|FX_OFFSET_BIT|FX_FLAT_BIT)
#define TAG(x) x##_twoside_offset_flat
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_UNFILLED_BIT|FX_FLAT_BIT)
#define TAG(x) x##_unfilled_flat
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_OFFSET_BIT|FX_UNFILLED_BIT|FX_FLAT_BIT)
#define TAG(x) x##_offset_unfilled_flat
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_TWOSIDE_BIT|FX_UNFILLED_BIT|FX_FLAT_BIT)
#define TAG(x) x##_twoside_unfilled_flat
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_TWOSIDE_BIT|FX_OFFSET_BIT|FX_UNFILLED_BIT|FX_FLAT_BIT)
#define TAG(x) x##_twoside_offset_unfilled_flat
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_FALLBACK_BIT|FX_FLAT_BIT)
#define TAG(x) x##_fallback_flat
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_OFFSET_BIT|FX_FALLBACK_BIT|FX_FLAT_BIT)
#define TAG(x) x##_offset_fallback_flat
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_TWOSIDE_BIT|FX_FALLBACK_BIT|FX_FLAT_BIT)
#define TAG(x) x##_twoside_fallback_flat
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_TWOSIDE_BIT|FX_OFFSET_BIT|FX_FALLBACK_BIT|FX_FLAT_BIT)
#define TAG(x) x##_twoside_offset_fallback_flat
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_UNFILLED_BIT|FX_FALLBACK_BIT|FX_FLAT_BIT)
#define TAG(x) x##_unfilled_fallback_flat
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_OFFSET_BIT|FX_UNFILLED_BIT|FX_FALLBACK_BIT|FX_FLAT_BIT)
#define TAG(x) x##_offset_unfilled_fallback_flat
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_TWOSIDE_BIT|FX_UNFILLED_BIT|FX_FALLBACK_BIT|FX_FLAT_BIT)
#define TAG(x) x##_twoside_unfilled_fallback_flat
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
#define IND (FX_TWOSIDE_BIT|FX_OFFSET_BIT|FX_UNFILLED_BIT| \
FX_FALLBACK_BIT|FX_FLAT_BIT)
#define TAG(x) x##_twoside_offset_unfilled_fallback_flat
#include "../common/t_dd_tritmp.h"
#include "../../tnl_dd/t_dd_tritmp.h"
static void init_rast_tab( void )
@ -719,9 +720,10 @@ static void fx_render_vb_tri_strip( GLcontext *ctx,
INIT(GL_TRIANGLE_STRIP);
/* [dBorca] WTF?!?
if (flags & PRIM_PARITY)
mode = GR_TRIANGLE_STRIP_CONTINUE;
else
else*/
mode = GR_TRIANGLE_STRIP;
grDrawVertexArrayContiguous( mode, count-start,
@ -837,7 +839,7 @@ static void (*fx_render_tab_verts[GL_POLYGON+2])(GLcontext *,
fx_render_vb_poly,
fx_render_vb_noop,
};
#undef INIT(x)
#undef INIT
/**********************************************************************/
@ -879,7 +881,7 @@ static void (*fx_render_tab_verts[GL_POLYGON+2])(GLcontext *,
#undef TAG
#define TAG(x) fx_##x##_elts
#define ELT(x) elt[x]
#include "../common/t_dd_rendertmp.h"
#include "../../tnl_dd/t_dd_rendertmp.h"
/* Verts, no clipping.
*/
@ -887,7 +889,7 @@ static void (*fx_render_tab_verts[GL_POLYGON+2])(GLcontext *,
#undef TAG
#define TAG(x) fx_##x##_verts
#define ELT(x) x
/*#include "../common/t_dd_rendertmp.h"*/ /* we have fx_render_vb_* now */
/*#include "../../tnl_dd/t_dd_rendertmp.h"*/ /* we have fx_render_vb_* now */

View File

@ -24,7 +24,8 @@
*/
/* Authors:
* Keith Whitwell
* Keith Whitwell <keith@tungstengraphics.com>
* Daniel Borca <dborca@users.sourceforge.net>
*/
#ifdef HAVE_CONFIG_H
@ -67,41 +68,7 @@ static struct {
} setup_tab[MAX_SETUP];
static void import_float_colors( GLcontext *ctx )
{
struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
struct gl_client_array *from = VB->ColorPtr[0];
struct gl_client_array *to = &FX_CONTEXT(ctx)->UbyteColor;
GLuint count = VB->Count;
if (!to->Ptr) {
to->Ptr = ALIGN_MALLOC( VB->Size * 4 * sizeof(GLubyte), 32 );
to->Type = GL_UNSIGNED_BYTE;
}
/* No need to transform the same value 3000 times.
*/
if (!from->StrideB) {
to->StrideB = 0;
count = 1;
}
else
to->StrideB = 4 * sizeof(GLubyte);
_math_trans_4ub( (GLubyte (*)[4]) to->Ptr,
from->Ptr,
from->StrideB,
from->Type,
from->Size,
0,
count);
VB->ColorPtr[0] = to;
}
/* Hack alert: assume chan is 8 bits */
#define GET_COLOR(ptr, idx) (((GLchan (*)[4])((ptr)->Ptr))[idx])
#define GET_COLOR(ptr, idx) ((ptr)->data[idx])
static void interp_extras( GLcontext *ctx,
@ -112,13 +79,15 @@ static void interp_extras( GLcontext *ctx,
struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
if (VB->ColorPtr[1]) {
INTERP_4CHAN( t,
assert(VB->ColorPtr[1]->stride == 4 * sizeof(GLfloat));
INTERP_4F( t,
GET_COLOR(VB->ColorPtr[1], dst),
GET_COLOR(VB->ColorPtr[1], out),
GET_COLOR(VB->ColorPtr[1], in) );
#if 1 /* [dBorca] GL_EXT_separate_specular_color */
if (VB->SecondaryColorPtr[1]) {
INTERP_3CHAN( t,
INTERP_3F( t,
GET_COLOR(VB->SecondaryColorPtr[1], dst),
GET_COLOR(VB->SecondaryColorPtr[1], out),
GET_COLOR(VB->SecondaryColorPtr[1], in) );
@ -139,11 +108,11 @@ static void copy_pv_extras( GLcontext *ctx, GLuint dst, GLuint src )
struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb;
if (VB->ColorPtr[1]) {
COPY_CHAN4( GET_COLOR(VB->ColorPtr[1], dst),
COPY_4FV( GET_COLOR(VB->ColorPtr[1], dst),
GET_COLOR(VB->ColorPtr[1], src) );
#if 1 /* [dBorca] GL_EXT_separate_specular_color */
if (VB->SecondaryColorPtr[1]) {
COPY_CHAN4( GET_COLOR(VB->SecondaryColorPtr[1], dst),
COPY_4FV( GET_COLOR(VB->SecondaryColorPtr[1], dst),
GET_COLOR(VB->SecondaryColorPtr[1], src) );
}
#endif

View File

@ -24,6 +24,7 @@
/* Authors:
* Keith Whitwell <keith@tungstengraphics.com>
* Daniel Borca <dborca@users.sourceforge.net>
*/
@ -40,7 +41,7 @@ static void TAG(emit)( GLcontext *ctx,
GLuint tmu0_source = fxMesa->tmu_source[0];
GLuint tmu1_source = fxMesa->tmu_source[1];
GLfloat (*tc0)[4], (*tc1)[4];
GLubyte (*col)[4];
GLfloat (*col)[4];
GLuint tc0_stride, tc1_stride, col_stride;
GLuint tc0_size, tc1_size;
GLfloat (*proj)[4] = VB->NdcPtr->data;
@ -71,10 +72,8 @@ static void TAG(emit)( GLcontext *ctx,
}
if (IND & SETUP_RGBA) {
if (VB->ColorPtr[0]->Type != GL_UNSIGNED_BYTE)
import_float_colors( ctx );
col = VB->ColorPtr[0]->Ptr;
col_stride = VB->ColorPtr[0]->StrideB;
col = VB->ColorPtr[0]->data;
col_stride = VB->ColorPtr[0]->stride;
}
if (start) {
@ -84,7 +83,7 @@ static void TAG(emit)( GLcontext *ctx,
if (IND & SETUP_TMU1)
tc1 = (GLfloat (*)[4])((GLubyte *)tc1 + start * tc1_stride);
if (IND & SETUP_RGBA)
STRIDE_4UB(col, start * col_stride);
STRIDE_4F(col, start * col_stride);
}
for (i=start; i < end; i++, v++) {
@ -116,11 +115,11 @@ static void TAG(emit)( GLcontext *ctx,
proj = (GLfloat (*)[4])((GLubyte *)proj + proj_stride);
}
if (IND & SETUP_RGBA) {
v->pargb[2] = col[0][0];
v->pargb[1] = col[0][1];
v->pargb[0] = col[0][2];
v->pargb[3] = col[0][3];
STRIDE_4UB(col, col_stride);
v->pargb[2] = col[0][0] * 255.;
v->pargb[1] = col[0][1] * 255.;
v->pargb[0] = col[0][2] * 255.;
v->pargb[3] = col[0][3] * 255.;
STRIDE_4F(col, col_stride);
}
if (IND & SETUP_TMU0) {
GLfloat w = v->oow;

View File

@ -186,9 +186,6 @@ static void TAG(render_tri_strip)( GLcontext *ctx,
GLuint parity = 0;
LOCAL_VARS;
if (TEST_PRIM_PARITY(flags))
parity = 1;
INIT(GL_TRIANGLE_STRIP);
if (NEED_EDGEFLAG_SETUP) {
for (j=start+2;j<count;j++,parity^=1) {

View File

@ -1,4 +1,4 @@
/* $Id: 3dnow_normal.S,v 1.5 2003/01/30 14:30:24 brianp Exp $ */
/* $Id: 3dnow_normal.S,v 1.6 2003/11/26 08:32:35 dborca Exp $ */
/*
* Mesa 3-D graphics library
@ -50,17 +50,17 @@ GLNAME(_mesa_3dnow_transform_normalize_normals):
MOV_L ( ARG_LENGTHS, EDI )
MOV_L ( ARG_IN, ESI )
MOV_L ( ARG_DEST, EAX )
MOV_L ( REGOFF(V3F_COUNT, ESI), EBP ) /* dest->count = in->count */
MOV_L ( EBP, REGOFF(V3F_COUNT, EAX) )
MOV_L ( REGOFF(V3F_START, ESI), EDX ) /* in->start */
MOV_L ( REGOFF(V3F_START, EAX), EAX ) /* dest->start */
MOV_L ( REGOFF(V4F_COUNT, ESI), EBP ) /* dest->count = in->count */
MOV_L ( EBP, REGOFF(V4F_COUNT, EAX) )
MOV_L ( REGOFF(V4F_START, ESI), EDX ) /* in->start */
MOV_L ( REGOFF(V4F_START, EAX), EAX ) /* dest->start */
MOV_L ( ARG_MAT, ECX )
MOV_L ( REGOFF(MATRIX_INV, ECX), ECX ) /* mat->inv */
CMP_L ( CONST(0), EBP ) /* count > 0 ?? */
JE ( LLBL (G3TN_end) )
MOV_L ( REGOFF (V3F_COUNT, ESI), EBP )
MOV_L ( REGOFF (V4F_COUNT, ESI), EBP )
FEMMS
PUSH_L ( EBP )
@ -228,12 +228,12 @@ GLNAME(_mesa_3dnow_transform_normalize_normals_no_rot):
MOV_L ( ARG_LENGTHS, EDI )
MOV_L ( ARG_IN, ESI )
MOV_L ( ARG_DEST, EAX )
MOV_L ( REGOFF(V3F_COUNT, ESI), EBP ) /* dest->count = in->count */
MOV_L ( EBP, REGOFF(V3F_COUNT, EAX) )
MOV_L ( REGOFF(V4F_COUNT, ESI), EBP ) /* dest->count = in->count */
MOV_L ( EBP, REGOFF(V4F_COUNT, EAX) )
MOV_L ( ARG_MAT, ECX )
MOV_L ( REGOFF(V3F_START, EAX), EAX ) /* dest->start */
MOV_L ( REGOFF(V4F_START, EAX), EAX ) /* dest->start */
MOV_L ( REGOFF(MATRIX_INV, ECX), ECX ) /* mat->inv */
MOV_L ( REGOFF(V3F_START, ESI), EDX ) /* in->start */
MOV_L ( REGOFF(V4F_START, ESI), EDX ) /* in->start */
CMP_L ( CONST(0), EBP ) /* count > 0 ?? */
JE ( LLBL (G3TNNR_end) )
@ -366,13 +366,13 @@ GLNAME(_mesa_3dnow_transform_rescale_normals_no_rot):
MOV_L ( ARG_IN, EAX )
MOV_L ( ARG_DEST, EDX )
MOV_L ( REGOFF(V3F_COUNT, EAX), EBP ) /* dest->count = in->count */
MOV_L ( EBP, REGOFF(V3F_COUNT, EDX) )
MOV_L ( REGOFF(V4F_COUNT, EAX), EBP ) /* dest->count = in->count */
MOV_L ( EBP, REGOFF(V4F_COUNT, EDX) )
MOV_L ( ARG_IN, ESI )
MOV_L ( ARG_MAT, ECX )
MOV_L ( REGOFF(MATRIX_INV, ECX), ECX ) /* mat->inv */
MOV_L ( REGOFF(V3F_START, EDX), EAX ) /* dest->start */
MOV_L ( REGOFF(V3F_START, ESI), EDX ) /* in->start */
MOV_L ( REGOFF(V4F_START, EDX), EAX ) /* dest->start */
MOV_L ( REGOFF(V4F_START, ESI), EDX ) /* in->start */
CMP_L ( CONST(0), EBP )
JE ( LLBL (G3TRNR_end) )
@ -437,10 +437,10 @@ GLNAME(_mesa_3dnow_transform_rescale_normals):
MOV_L ( ARG_IN, ESI )
MOV_L ( ARG_DEST, EAX )
MOV_L ( ARG_MAT, ECX )
MOV_L ( REGOFF(V3F_COUNT, ESI), EDI ) /* dest->count = in->count */
MOV_L ( EDI, REGOFF(V3F_COUNT, EAX) )
MOV_L ( REGOFF(V3F_START, EAX), EAX ) /* dest->start */
MOV_L ( REGOFF(V3F_START, ESI), EDX ) /* in->start */
MOV_L ( REGOFF(V4F_COUNT, ESI), EDI ) /* dest->count = in->count */
MOV_L ( EDI, REGOFF(V4F_COUNT, EAX) )
MOV_L ( REGOFF(V4F_START, EAX), EAX ) /* dest->start */
MOV_L ( REGOFF(V4F_START, ESI), EDX ) /* in->start */
MOV_L ( REGOFF(MATRIX_INV, ECX), ECX ) /* mat->inv */
CMP_L ( CONST(0), EDI )
@ -534,10 +534,10 @@ GLNAME(_mesa_3dnow_transform_normals_no_rot):
MOV_L ( ARG_IN, ESI )
MOV_L ( ARG_DEST, EAX )
MOV_L ( ARG_MAT, ECX )
MOV_L ( REGOFF(V3F_COUNT, ESI), EDI ) /* dest->count = in->count */
MOV_L ( EDI, REGOFF(V3F_COUNT, EAX) )
MOV_L ( REGOFF(V3F_START, EAX), EAX ) /* dest->start */
MOV_L ( REGOFF(V3F_START, ESI), EDX ) /* in->start */
MOV_L ( REGOFF(V4F_COUNT, ESI), EDI ) /* dest->count = in->count */
MOV_L ( EDI, REGOFF(V4F_COUNT, EAX) )
MOV_L ( REGOFF(V4F_START, EAX), EAX ) /* dest->start */
MOV_L ( REGOFF(V4F_START, ESI), EDX ) /* in->start */
MOV_L ( REGOFF(MATRIX_INV, ECX), ECX ) /* mat->inv */
CMP_L ( CONST(0), EDI )
@ -600,10 +600,10 @@ GLNAME(_mesa_3dnow_transform_normals):
MOV_L ( ARG_IN, ESI )
MOV_L ( ARG_DEST, EAX )
MOV_L ( ARG_MAT, ECX )
MOV_L ( REGOFF(V3F_COUNT, ESI), EDI ) /* dest->count = in->count */
MOV_L ( EDI, REGOFF(V3F_COUNT, EAX) )
MOV_L ( REGOFF(V3F_START, EAX), EAX ) /* dest->start */
MOV_L ( REGOFF(V3F_START, ESI), EDX ) /* in->start */
MOV_L ( REGOFF(V4F_COUNT, ESI), EDI ) /* dest->count = in->count */
MOV_L ( EDI, REGOFF(V4F_COUNT, EAX) )
MOV_L ( REGOFF(V4F_START, EAX), EAX ) /* dest->start */
MOV_L ( REGOFF(V4F_START, ESI), EDX ) /* in->start */
MOV_L ( REGOFF(MATRIX_INV, ECX), ECX ) /* mat->inv */
CMP_L ( CONST(0), EDI ) /* count > 0 ?? */
@ -684,10 +684,10 @@ GLNAME(_mesa_3dnow_normalize_normals):
MOV_L ( ARG_IN, ESI )
MOV_L ( ARG_DEST, EAX )
MOV_L ( REGOFF(V3F_COUNT, ESI), EBP ) /* dest->count = in->count */
MOV_L ( EBP, REGOFF(V3F_COUNT, EAX) )
MOV_L ( REGOFF(V3F_START, EAX), EAX ) /* dest->start */
MOV_L ( REGOFF(V3F_START, ESI), ECX ) /* in->start */
MOV_L ( REGOFF(V4F_COUNT, ESI), EBP ) /* dest->count = in->count */
MOV_L ( EBP, REGOFF(V4F_COUNT, EAX) )
MOV_L ( REGOFF(V4F_START, EAX), EAX ) /* dest->start */
MOV_L ( REGOFF(V4F_START, ESI), ECX ) /* in->start */
MOV_L ( ARG_LENGTHS, EDX )
CMP_L ( CONST(0), EBP ) /* count > 0 ?? */
@ -793,10 +793,10 @@ GLNAME(_mesa_3dnow_rescale_normals):
MOV_L ( ARG_IN, ESI )
MOV_L ( ARG_DEST, EAX )
MOV_L ( REGOFF(V3F_COUNT, ESI), EDX ) /* dest->count = in->count */
MOV_L ( EDX, REGOFF(V3F_COUNT, EAX) )
MOV_L ( REGOFF(V3F_START, EAX), EAX ) /* dest->start */
MOV_L ( REGOFF(V3F_START, ESI), ECX ) /* in->start */
MOV_L ( REGOFF(V4F_COUNT, ESI), EDX ) /* dest->count = in->count */
MOV_L ( EDX, REGOFF(V4F_COUNT, EAX) )
MOV_L ( REGOFF(V4F_START, EAX), EAX ) /* dest->start */
MOV_L ( REGOFF(V4F_START, ESI), ECX ) /* in->start */
CMP_L ( CONST(0), EDX )
JE ( LLBL (G3R_end) )

View File

@ -120,9 +120,6 @@ int main( int argc, char **argv )
OFFSET( "VB_SIZE ", struct vertex_buffer, Size );
OFFSET( "VB_COUNT ", struct vertex_buffer, Count );
printf( "\n" );
OFFSET( "VB_FIRST_CLIPPED ", struct vertex_buffer, FirstClipped );
OFFSET( "VB_FIRST_PRIMITIVE ", struct vertex_buffer, FirstPrimitive );
printf( "\n" );
OFFSET( "VB_ELTS ", struct vertex_buffer, Elts );
OFFSET( "VB_OBJ_PTR ", struct vertex_buffer, ObjPtr );
OFFSET( "VB_EYE_PTR ", struct vertex_buffer, EyePtr );
@ -141,13 +138,7 @@ int main( int argc, char **argv )
OFFSET( "VB_SECONDARY_COLOR_PTR ", struct vertex_buffer, SecondaryColorPtr );
OFFSET( "VB_FOG_COORD_PTR ", struct vertex_buffer, FogCoordPtr );
OFFSET( "VB_POINT_SIZE_PTR ", struct vertex_buffer, PointSizePtr );
OFFSET( "VB_MATERIAL ", struct vertex_buffer, Material );
OFFSET( "VB_MATERIAL_MASK ", struct vertex_buffer, MaterialMask );
OFFSET( "VB_FLAG ", struct vertex_buffer, Flag );
OFFSET( "VB_PRIMITIVE ", struct vertex_buffer, Primitive );
OFFSET( "VB_PRIMITIVE_LENGTH ", struct vertex_buffer, PrimitiveLength );
printf( "\n" );
OFFSET( "VB_IMPORTABLE_DATA ", struct vertex_buffer, importable_data );
printf( "\n" );
OFFSET( "VB_LAST_CLIPPED ", struct vertex_buffer, LastClipped );
@ -159,39 +150,10 @@ int main( int argc, char **argv )
DEFINE( "VERT_BIT_RGBA ", VERT_BIT_COLOR0 );
DEFINE( "VERT_BIT_SPEC_RGB ", VERT_BIT_COLOR1 );
DEFINE( "VERT_BIT_FOG_COORD ", VERT_BIT_FOG );
DEFINE( "VERT_BIT_INDEX ", VERT_BIT_INDEX );
DEFINE( "VERT_BIT_EDGE ", VERT_BIT_EDGEFLAG );
DEFINE( "VERT_BIT_TEX0 ", VERT_BIT_TEX0 );
DEFINE( "VERT_BIT_TEX1 ", VERT_BIT_TEX1 );
DEFINE( "VERT_BIT_TEX2 ", VERT_BIT_TEX2 );
DEFINE( "VERT_BIT_TEX3 ", VERT_BIT_TEX3 );
DEFINE( "VERT_BIT_EVAL_C1 ", VERT_BIT_EVAL_C1 );
DEFINE( "VERT_BIT_EVAL_C2 ", VERT_BIT_EVAL_C2 );
DEFINE( "VERT_BIT_EVAL_P1 ", VERT_BIT_EVAL_P1 );
DEFINE( "VERT_BIT_EVAL_P2 ", VERT_BIT_EVAL_P2 );
DEFINE( "VERT_BIT_OBJ_3 ", VERT_BIT_OBJ_3 );
DEFINE( "VERT_BIT_OBJ_4 ", VERT_BIT_OBJ_4 );
DEFINE( "VERT_BIT_MATERIAL ", VERT_BIT_MATERIAL );
DEFINE( "VERT_BIT_ELT ", VERT_BIT_ELT );
DEFINE( "VERT_BIT_BEGIN ", VERT_BIT_BEGIN );
DEFINE( "VERT_BIT_END ", VERT_BIT_END );
DEFINE( "VERT_BIT_END_VB ", VERT_BIT_END_VB );
DEFINE( "VERT_BIT_POINT_SIZE ", VERT_BIT_POINT_SIZE );
DEFINE( "VERT_BIT_EYE ", VERT_BIT_EYE );
printf( "\n" );
DEFINE( "VERT_BIT_OBJ_23 ", VERT_BIT_OBJ_3 );
DEFINE( "VERT_BIT_OBJ_234 ", VERT_BIT_OBJ_4 );
/* GLvector3f offsets:
*/
OFFSET_HEADER( "GLvector3f" );
OFFSET( "V3F_DATA ", GLvector3f, data );
OFFSET( "V3F_START ", GLvector3f, start );
OFFSET( "V3F_COUNT ", GLvector3f, count );
OFFSET( "V3F_STRIDE ", GLvector3f, stride );
OFFSET( "V3F_FLAGS ", GLvector3f, flags );
/* GLvector4f offsets:

View File

@ -1,4 +1,4 @@
/* $Id: norm_args.h,v 1.3 2002/10/29 20:28:58 brianp Exp $ */
/* $Id: norm_args.h,v 1.4 2003/11/26 08:32:36 dborca Exp $ */
/*
* Mesa 3-D graphics library
@ -39,9 +39,9 @@
*
* typedef void (*normal_func)( CONST GLmatrix *mat,
* GLfloat scale,
* CONST GLvector3f *in,
* CONST GLvector4f *in,
* CONST GLfloat lengths[],
* GLvector3f *dest );
* GLvector4f *dest );
*/
#define OFFSET_MAT 4
#define OFFSET_SCALE 8

View File

@ -1,4 +1,4 @@
/* $Id: sse_normal.S,v 1.2 2002/08/07 16:40:18 brianp Exp $ */
/* $Id: sse_normal.S,v 1.3 2003/11/26 08:32:36 dborca Exp $ */
/*
* Mesa 3-D graphics library
@ -56,18 +56,18 @@ GLNAME(_mesa_sse_transform_rescale_normals_no_rot):
MOV_L ( ARG_MAT, EDX ) /* ptr to matrix */
MOV_L ( REGOFF(MATRIX_INV, EDX), EDX) /* matrix->inv */
MOV_L ( REGOFF(V3F_COUNT, ESI), ECX ) /* source count */
MOV_L ( REGOFF(V4F_COUNT, ESI), ECX ) /* source count */
TEST_L ( ECX, ECX )
JZ( LLBL(K_G3TRNNRR_finish) ) /* count was zero; go to finish */
MOV_L ( STRIDE, EAX ) /* stride */
MOV_L ( ECX, REGOFF(V3F_COUNT, EDI) ) /* set dest-count */
MOV_L ( ECX, REGOFF(V4F_COUNT, EDI) ) /* set dest-count */
IMUL_L( CONST(16), ECX ) /* count *= 16 */
MOV_L( REGOFF(V3F_START, ESI), ESI ) /* ptr to first source vertex */
MOV_L( REGOFF(V4F_START, ESI), ESI ) /* ptr to first source vertex */
MOV_L( REGOFF(V3F_START, EDI), EDI ) /* ptr to first dest vertex */
MOV_L( REGOFF(V4F_START, EDI), EDI ) /* ptr to first dest vertex */
ADD_L( EDI, ECX ) /* count += dest ptr */
ALIGNTEXT32
@ -117,18 +117,18 @@ GLNAME(_mesa_sse_transform_rescale_normals):
MOV_L ( ARG_MAT, EDX ) /* ptr to matrix */
MOV_L ( REGOFF(MATRIX_INV, EDX), EDX) /* matrix->inv */
MOV_L ( REGOFF(V3F_COUNT, ESI), ECX ) /* source count */
MOV_L ( REGOFF(V4F_COUNT, ESI), ECX ) /* source count */
TEST_L ( ECX, ECX )
JZ( LLBL(K_G3TRNR_finish) ) /* count was zero; go to finish */
MOV_L ( STRIDE, EAX ) /* stride */
MOV_L ( ECX, REGOFF(V3F_COUNT, EDI) ) /* set dest-count */
MOV_L ( ECX, REGOFF(V4F_COUNT, EDI) ) /* set dest-count */
IMUL_L( CONST(16), ECX ) /* count *= 16 */
MOV_L( REGOFF(V3F_START, ESI), ESI ) /* ptr to first source vertex */
MOV_L( REGOFF(V4F_START, ESI), ESI ) /* ptr to first source vertex */
MOV_L( REGOFF(V3F_START, EDI), EDI ) /* ptr to first dest vertex */
MOV_L( REGOFF(V4F_START, EDI), EDI ) /* ptr to first dest vertex */
ADD_L( EDI, ECX ) /* count += dest ptr */
ALIGNTEXT32
@ -209,18 +209,18 @@ GLNAME(_mesa_sse_transform_normals_no_rot):
MOV_L ( ARG_MAT, EDX ) /* ptr to matrix */
MOV_L ( REGOFF(MATRIX_INV, EDX), EDX) /* matrix->inv */
MOV_L ( REGOFF(V3F_COUNT, ESI), ECX ) /* source count */
MOV_L ( REGOFF(V4F_COUNT, ESI), ECX ) /* source count */
TEST_L ( ECX, ECX )
JZ( LLBL(K_G3TNNRR_finish) ) /* count was zero; go to finish */
MOV_L ( STRIDE, EAX ) /* stride */
MOV_L ( ECX, REGOFF(V3F_COUNT, EDI) ) /* set dest-count */
MOV_L ( ECX, REGOFF(V4F_COUNT, EDI) ) /* set dest-count */
IMUL_L( CONST(16), ECX ) /* count *= 16 */
MOV_L( REGOFF(V3F_START, ESI), ESI ) /* ptr to first source vertex */
MOV_L( REGOFF(V4F_START, ESI), ESI ) /* ptr to first source vertex */
MOV_L( REGOFF(V3F_START, EDI), EDI ) /* ptr to first dest vertex */
MOV_L( REGOFF(V4F_START, EDI), EDI ) /* ptr to first dest vertex */
ADD_L( EDI, ECX ) /* count += dest ptr */
ALIGNTEXT32