diff --git a/src/mesa/Makefile.DJ b/src/mesa/Makefile.DJ index af2bb36ccc4..cd336fc50e9 100644 --- a/src/mesa/Makefile.DJ +++ b/src/mesa/Makefile.DJ @@ -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) diff --git a/src/mesa/Makefile.mgw b/src/mesa/Makefile.mgw index 9f49e0e9b6f..3f9ddaa5044 100644 --- a/src/mesa/Makefile.mgw +++ b/src/mesa/Makefile.mgw @@ -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) diff --git a/src/mesa/Makefile.wfx b/src/mesa/Makefile.wfx index 0561f6da464..0886c2c1523 100644 --- a/src/mesa/Makefile.wfx +++ b/src/mesa/Makefile.wfx @@ -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\ diff --git a/src/mesa/drivers/glide/fxglidew.h b/src/mesa/drivers/glide/fxglidew.h index 31a8fa3b02e..feacde84189 100644 --- a/src/mesa/drivers/glide/fxglidew.h +++ b/src/mesa/drivers/glide/fxglidew.h @@ -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 diff --git a/src/mesa/drivers/glide/fxtris.c b/src/mesa/drivers/glide/fxtris.c index 08ecc6dd81b..209a29e7668 100644 --- a/src/mesa/drivers/glide/fxtris.c +++ b/src/mesa/drivers/glide/fxtris.c @@ -24,6 +24,7 @@ /* Authors: * Keith Whitwell + * Daniel Borca */ #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 */ diff --git a/src/mesa/drivers/glide/fxvb.c b/src/mesa/drivers/glide/fxvb.c index 8d3647ad60e..03cefef0826 100644 --- a/src/mesa/drivers/glide/fxvb.c +++ b/src/mesa/drivers/glide/fxvb.c @@ -24,7 +24,8 @@ */ /* Authors: - * Keith Whitwell + * Keith Whitwell + * Daniel Borca */ #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 diff --git a/src/mesa/drivers/glide/fxvbtmp.h b/src/mesa/drivers/glide/fxvbtmp.h index 7d5741cd75d..e0af9bdb4fe 100644 --- a/src/mesa/drivers/glide/fxvbtmp.h +++ b/src/mesa/drivers/glide/fxvbtmp.h @@ -24,6 +24,7 @@ /* Authors: * Keith Whitwell + * Daniel Borca */ @@ -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; diff --git a/src/mesa/tnl_dd/t_dd_rendertmp.h b/src/mesa/tnl_dd/t_dd_rendertmp.h index fc00e76934b..b9f030195d5 100644 --- a/src/mesa/tnl_dd/t_dd_rendertmp.h +++ b/src/mesa/tnl_dd/t_dd_rendertmp.h @@ -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;jcount = 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) ) diff --git a/src/mesa/x86/gen_matypes.c b/src/mesa/x86/gen_matypes.c index e57c7326e3a..30642e4b12d 100644 --- a/src/mesa/x86/gen_matypes.c +++ b/src/mesa/x86/gen_matypes.c @@ -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: diff --git a/src/mesa/x86/norm_args.h b/src/mesa/x86/norm_args.h index 32bcf3def97..1b43d57a202 100644 --- a/src/mesa/x86/norm_args.h +++ b/src/mesa/x86/norm_args.h @@ -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 diff --git a/src/mesa/x86/sse_normal.S b/src/mesa/x86/sse_normal.S index 91260a20853..64bd38486c8 100644 --- a/src/mesa/x86/sse_normal.S +++ b/src/mesa/x86/sse_normal.S @@ -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