diff --git a/src/mesa/drivers/dri/radeon/.cvsignore b/src/mesa/drivers/dri/radeon/.cvsignore new file mode 100644 index 00000000000..a4383358ec7 --- /dev/null +++ b/src/mesa/drivers/dri/radeon/.cvsignore @@ -0,0 +1 @@ +*.d diff --git a/src/mesa/drivers/dri/radeon/Makefile b/src/mesa/drivers/dri/radeon/Makefile index 9a46e9782c3..3682b94bf9f 100644 --- a/src/mesa/drivers/dri/radeon/Makefile +++ b/src/mesa/drivers/dri/radeon/Makefile @@ -1,4 +1,4 @@ -# $Id: Makefile,v 1.1.2.18 2003/01/24 17:11:10 keithw Exp $ +# $Id: Makefile,v 1.1.2.19 2003/01/27 16:55:31 keithw Exp $ # Mesa 3-D graphics library # Version: 5.0 @@ -13,15 +13,15 @@ INCLUDES = -I$(MESABUILDDIR) -I$(MESA)/include -I. -I../common \ -I$(MESABUILDDIR)/miniglx -Iserver DEFINES = \ - -D_HAVE_SWRAST=0 \ - -D_HAVE_SWTNL=0 \ - -D_HAVE_SANITY=0 \ - -D_HAVE_CODEGEN=0 \ - -D_HAVE_LIGHTING=0 \ - -D_HAVE_TEXGEN=0 \ - -D_HAVE_USERCLIP=0 + -D_HAVE_SWRAST=1 \ + -D_HAVE_SWTNL=1 \ + -D_HAVE_SANITY=1 \ + -D_HAVE_CODEGEN=1 \ + -D_HAVE_LIGHTING=1 \ + -D_HAVE_TEXGEN=1 \ + -D_HAVE_USERCLIP=1 -CFLAGS = $(INCLUDES) $(DEFINES) -g -MD -DGLX_DIRECT_RENDERING +CFLAGS = $(INCLUDES) $(DEFINES) -g -MD # The .a files for each mesa module required by this driver: # @@ -55,6 +55,8 @@ SUBSET_DRIVER_SOURCES = \ radeon_subset_vtx.c FULL_DRIVER_SOURCES = \ + radeon_subset_bitmap.c \ + radeon_subset_readpix.c \ radeon_lighting.c \ radeon_userclip.c \ radeon_texgen.c \ @@ -72,7 +74,7 @@ FULL_DRIVER_SOURCES = \ C_SOURCES = $(DRIVER_SOURCES) \ - $(SUBSET_DRIVER_SOURCES) \ + $(FULL_DRIVER_SOURCES) \ $(DRI_SOURCES) ASM_SOURCES = @@ -94,8 +96,8 @@ OBJECTS = $(C_SOURCES:.c=.o) \ default: radeon_dri.so install -radeon_dri.so: $(SUBSET_MESA) $(OBJECTS) Makefile - rm -f $@ && gcc -o $@ -shared $(OBJECTS) $(SUBSET_MESA) -L$(MESA)/src/miniglx -lGL -lc -lm +radeon_dri.so: $(FULL_MESA) $(OBJECTS) Makefile + rm -f $@ && gcc -o $@ -shared $(OBJECTS) $(FULL_MESA) -L$(MESA)/src/miniglx -lGL -lc -lm loc: wc -l $(DRIVER_SOURCES) diff --git a/src/mesa/drivers/dri/radeon/radeon_context.c b/src/mesa/drivers/dri/radeon/radeon_context.c index 3eda0c04cf2..493a017d47d 100644 --- a/src/mesa/drivers/dri/radeon/radeon_context.c +++ b/src/mesa/drivers/dri/radeon/radeon_context.c @@ -339,6 +339,9 @@ radeonCreateContext( const __GLcontextModes *glVisual, radeonCreateTnlContext( ctx ); #endif + radeonInitState( rmesa ); + + #if _HAVE_TEXGEN radeonInitTexTransform( ctx ); #endif @@ -353,7 +356,6 @@ radeonCreateContext( const __GLcontextModes *glVisual, radeonInitSpanFuncs( ctx ); #endif radeonInitTextureFuncs( ctx ); - radeonInitState( rmesa ); #if _HAVE_SWTNL radeonInitSwtcl( ctx ); #endif diff --git a/src/mesa/drivers/dri/radeon/radeon_context.h b/src/mesa/drivers/dri/radeon/radeon_context.h index 1d501d8b424..2cd3501e0c6 100644 --- a/src/mesa/drivers/dri/radeon/radeon_context.h +++ b/src/mesa/drivers/dri/radeon/radeon_context.h @@ -37,8 +37,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #ifndef __RADEON_CONTEXT_H__ #define __RADEON_CONTEXT_H__ -#ifdef GLX_DIRECT_RENDERING - struct radeon_context; typedef struct radeon_context radeonContextRec; typedef struct radeon_context *radeonContextPtr; @@ -800,5 +798,4 @@ extern int RADEON_DEBUG; #define DEBUG_DMA 0x400 #define DEBUG_SANITY 0x800 -#endif #endif /* __RADEON_CONTEXT_H__ */ diff --git a/src/mesa/drivers/dri/radeon/radeon_ioctl.h b/src/mesa/drivers/dri/radeon/radeon_ioctl.h index c8b00c08b0c..f471f15ad60 100644 --- a/src/mesa/drivers/dri/radeon/radeon_ioctl.h +++ b/src/mesa/drivers/dri/radeon/radeon_ioctl.h @@ -37,8 +37,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #ifndef __RADEON_IOCTL_H__ #define __RADEON_IOCTL_H__ -#ifdef GLX_DIRECT_RENDERING - #include "simple_list.h" #include "radeon_lock.h" @@ -174,5 +172,4 @@ static __inline char *radeonAllocCmdBuf( radeonContextPtr rmesa, -#endif #endif /* __RADEON_IOCTL_H__ */ diff --git a/src/mesa/drivers/dri/radeon/radeon_lighting.c b/src/mesa/drivers/dri/radeon/radeon_lighting.c index afeb54702f7..6a69cc8b2fa 100644 --- a/src/mesa/drivers/dri/radeon/radeon_lighting.c +++ b/src/mesa/drivers/dri/radeon/radeon_lighting.c @@ -256,7 +256,7 @@ void radeonUpdateMaterial( GLcontext *ctx ) * lighting space (model or eye), hence dependencies on _NEW_MODELVIEW * and _MESA_NEW_NEED_EYE_COORDS. */ - void update_light( GLcontext *ctx ) +void radeonUpdateLighting( GLcontext *ctx ) { radeonContextPtr rmesa = RADEON_CONTEXT(ctx); @@ -544,7 +544,7 @@ static void radeonFogfv( GLcontext *ctx, GLenum pname, const GLfloat *param ) /* Examine lighting and texture state to determine if separate specular * should be enabled. */ - void radeonUpdateSpecular( GLcontext *ctx ) +void radeonUpdateSpecular( GLcontext *ctx ) { radeonContextPtr rmesa = RADEON_CONTEXT(ctx); GLuint p = rmesa->hw.ctx.cmd[CTX_PP_CNTL]; @@ -641,9 +641,13 @@ static void radeonLightingSpaceChange( GLcontext *ctx ) void radeonInitLightStateFuncs( GLcontext *ctx ) { + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + int i; + ctx->Driver.LightModelfv = radeonLightModelfv; ctx->Driver.Lightfv = radeonLightfv; ctx->Driver.Fogfv = radeonFogfv; + ctx->Driver.LightingSpaceChange = radeonLightingSpaceChange; for (i = 0 ; i < 8; i++) { struct gl_light *l = &ctx->Light.Light[i]; diff --git a/src/mesa/drivers/dri/radeon/radeon_lock.h b/src/mesa/drivers/dri/radeon/radeon_lock.h index 583e3c51dde..5fb071ab447 100644 --- a/src/mesa/drivers/dri/radeon/radeon_lock.h +++ b/src/mesa/drivers/dri/radeon/radeon_lock.h @@ -37,8 +37,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #ifndef __RADEON_LOCK_H__ #define __RADEON_LOCK_H__ -#ifdef GLX_DIRECT_RENDERING - extern void radeonGetLock( radeonContextPtr rmesa, GLuint flags ); /* Turn DEBUG_LOCKING on to find locking conflicts. @@ -109,5 +107,4 @@ extern int prevLockLine; DEBUG_RESET(); \ } while (0) -#endif #endif /* __RADEON_LOCK_H__ */ diff --git a/src/mesa/drivers/dri/radeon/radeon_maos.h b/src/mesa/drivers/dri/radeon/radeon_maos.h index 6f31969fd9c..c25a4859303 100644 --- a/src/mesa/drivers/dri/radeon/radeon_maos.h +++ b/src/mesa/drivers/dri/radeon/radeon_maos.h @@ -36,12 +36,9 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #ifndef __RADEON_MAOS_H__ #define __RADEON_MAOS_H__ -#ifdef GLX_DIRECT_RENDERING - #include "radeon_context.h" extern void radeonEmitArrays( GLcontext *ctx, GLuint inputs ); extern void radeonReleaseArrays( GLcontext *ctx, GLuint newinputs ); #endif -#endif diff --git a/src/mesa/drivers/dri/radeon/radeon_screen.h b/src/mesa/drivers/dri/radeon/radeon_screen.h index ac6ee312a20..30fb15f6f09 100644 --- a/src/mesa/drivers/dri/radeon/radeon_screen.h +++ b/src/mesa/drivers/dri/radeon/radeon_screen.h @@ -37,8 +37,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #ifndef __RADEON_SCREEN_H__ #define __RADEON_SCREEN_H__ -#ifdef GLX_DIRECT_RENDERING - /* * IMPORTS: these headers contain all the DRI, X and kernel-related * definitions that we need. @@ -97,5 +95,4 @@ typedef struct { extern radeonScreenPtr radeonCreateScreen( __DRIscreenPrivate *sPriv ); extern void radeonDestroyScreen( __DRIscreenPrivate *sPriv ); -#endif #endif /* __RADEON_SCREEN_H__ */ diff --git a/src/mesa/drivers/dri/radeon/radeon_span.c b/src/mesa/drivers/dri/radeon/radeon_span.c index 72f9fb8a182..393d0b68612 100644 --- a/src/mesa/drivers/dri/radeon/radeon_span.c +++ b/src/mesa/drivers/dri/radeon/radeon_span.c @@ -418,7 +418,7 @@ void radeonInitSpanFuncs( GLcontext *ctx ) ctx->Driver.Bitmap = _swrast_Bitmap; ctx->Driver.CopyPixels = _swrast_CopyPixels; ctx->Driver.DrawPixels = _swrast_DrawPixels; - ctx->Driver.ReadPixels = _swrast_ReadPixels; +/* ctx->Driver.ReadPixels = _swrast_ReadPixels; */ /* Swrast hooks for imaging extensions: */ diff --git a/src/mesa/drivers/dri/radeon/radeon_span.h b/src/mesa/drivers/dri/radeon/radeon_span.h index b4c9cf5854b..72f8f00c477 100644 --- a/src/mesa/drivers/dri/radeon/radeon_span.h +++ b/src/mesa/drivers/dri/radeon/radeon_span.h @@ -37,9 +37,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #ifndef __RADEON_SPAN_H__ #define __RADEON_SPAN_H__ -#ifdef GLX_DIRECT_RENDERING - extern void radeonInitSpanFuncs( GLcontext *ctx ); #endif -#endif diff --git a/src/mesa/drivers/dri/radeon/radeon_state.c b/src/mesa/drivers/dri/radeon/radeon_state.c index ed0b75c4b9d..43e963d8b40 100644 --- a/src/mesa/drivers/dri/radeon/radeon_state.c +++ b/src/mesa/drivers/dri/radeon/radeon_state.c @@ -1186,7 +1186,7 @@ static void radeonEnable( GLcontext *ctx, GLenum cap, GLboolean state ) RADEON_STATECHANGE(rmesa, ctx ); if ( state ) { rmesa->hw.ctx.cmd[CTX_PP_CNTL] |= RADEON_FOG_ENABLE; - radeonFogfv( ctx, GL_FOG_MODE, 0 ); + ctx->Driver.Fogfv( ctx, GL_FOG_MODE, 0 ); } else { rmesa->hw.ctx.cmd[CTX_PP_CNTL] &= ~RADEON_FOG_ENABLE; RADEON_STATECHANGE(rmesa, tcl); @@ -1258,7 +1258,7 @@ static void radeonEnable( GLcontext *ctx, GLenum cap, GLboolean state ) -static void upload_matrix( radeonContextPtr rmesa, GLfloat *src, int idx ) +void radeonUploadMatrix( radeonContextPtr rmesa, GLfloat *src, int idx ) { float *dest = ((float *)RADEON_DB_STATE( mat[idx] ))+MAT_ELT_0; int i; @@ -1274,7 +1274,8 @@ static void upload_matrix( radeonContextPtr rmesa, GLfloat *src, int idx ) RADEON_DB_STATECHANGE( rmesa, &rmesa->hw.mat[idx] ); } -static void upload_matrix_t( radeonContextPtr rmesa, GLfloat *src, int idx ) +void radeonUploadMatrixTranspose( radeonContextPtr rmesa, GLfloat *src, + int idx ) { float *dest = ((float *)RADEON_DB_STATE( mat[idx] ))+MAT_ELT_0; memcpy(dest, src, 16*sizeof(float)); @@ -1298,13 +1299,14 @@ void radeonValidateState( GLcontext *ctx ) /* Need an event driven matrix update? */ if (new_state & (_NEW_MODELVIEW|_NEW_PROJECTION)) - upload_matrix( rmesa, ctx->_ModelProjectMatrix.m, MODEL_PROJ ); + radeonUploadMatrix( rmesa, ctx->_ModelProjectMatrix.m, MODEL_PROJ ); /* Need these for lighting (shouldn't upload otherwise) */ if (new_state & (_NEW_MODELVIEW)) { - upload_matrix( rmesa, ctx->ModelviewMatrixStack.Top->m, MODEL ); - upload_matrix_t( rmesa, ctx->ModelviewMatrixStack.Top->inv, MODEL_IT ); + radeonUploadMatrix( rmesa, ctx->ModelviewMatrixStack.Top->m, MODEL ); + radeonUploadMatrixTranspose( rmesa, ctx->ModelviewMatrixStack.Top->inv, + MODEL_IT ); } /* Does this need to be triggered on eg. modelview for @@ -1312,13 +1314,13 @@ void radeonValidateState( GLcontext *ctx ) */ #if _HAVE_TEXGEN if (new_state & _NEW_TEXTURE_MATRIX) { - update_texturematrix( ctx ); + radeonUpdateTextureMatrix( ctx ); } #endif #if _HAVE_LIGHTING if (new_state & (_NEW_LIGHT|_NEW_MODELVIEW|_MESA_NEW_NEED_EYE_COORDS)) { - update_light( ctx ); + radeonUpdateLighting( ctx ); } #endif diff --git a/src/mesa/drivers/dri/radeon/radeon_state.h b/src/mesa/drivers/dri/radeon/radeon_state.h index f05c676ec6a..197caddb6be 100644 --- a/src/mesa/drivers/dri/radeon/radeon_state.h +++ b/src/mesa/drivers/dri/radeon/radeon_state.h @@ -37,8 +37,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #ifndef __RADEON_STATE_H__ #define __RADEON_STATE_H__ -#ifdef GLX_DIRECT_RENDERING - #include "radeon_context.h" extern void radeonInitState( radeonContextPtr rmesa ); @@ -72,5 +70,8 @@ extern void radeonFallback( GLcontext *ctx, GLuint bit, GLboolean mode ); #define TEXMAT_1 4 #define TEXMAT_2 5 -#endif +extern void radeonUpdateSpecular( GLcontext *ctx ); +extern void radeonClipPlane( GLcontext *ctx, GLenum plane, const GLfloat *eq ); + + #endif diff --git a/src/mesa/drivers/dri/radeon/radeon_state_init.c b/src/mesa/drivers/dri/radeon/radeon_state_init.c index 5d612d575cb..99fdc6a3a69 100644 --- a/src/mesa/drivers/dri/radeon/radeon_state_init.c +++ b/src/mesa/drivers/dri/radeon/radeon_state_init.c @@ -514,11 +514,6 @@ void radeonInitState( radeonContextPtr rmesa ) (RADEON_LM_SOURCE_STATE_PREMULT << RADEON_SPECULAR_SOURCE_SHIFT)); -#if _HAVE_SWTNL - TNL_CONTEXT(ctx)->Driver.NotifyMaterialChange( ctx ); -#endif - - rmesa->hw.grd.cmd[GRD_VERT_GUARD_CLIP_ADJ] = IEEE_ONE; rmesa->hw.grd.cmd[GRD_VERT_GUARD_DISCARD_ADJ] = IEEE_ONE; rmesa->hw.grd.cmd[GRD_HORZ_GUARD_CLIP_ADJ] = IEEE_ONE; diff --git a/src/mesa/drivers/dri/radeon/radeon_subset_readpix.c b/src/mesa/drivers/dri/radeon/radeon_subset_readpix.c index 28c3edb84a3..666f950ab99 100644 --- a/src/mesa/drivers/dri/radeon/radeon_subset_readpix.c +++ b/src/mesa/drivers/dri/radeon/radeon_subset_readpix.c @@ -107,6 +107,8 @@ void radeonReadPixels( GLcontext *ctx, GLint skipPixels = packing->SkipPixels; GLint rowLength; + fprintf(stderr, "%s\n", __FUNCTION__); + /* can't do scale, bias, mapping, etc */ assert(!ctx->_ImageTransferState); diff --git a/src/mesa/drivers/dri/radeon/radeon_swtcl.c b/src/mesa/drivers/dri/radeon/radeon_swtcl.c index 3074f7bfe2c..ec596e74077 100644 --- a/src/mesa/drivers/dri/radeon/radeon_swtcl.c +++ b/src/mesa/drivers/dri/radeon/radeon_swtcl.c @@ -1271,8 +1271,9 @@ void radeonInitSwtcl( GLcontext *ctx ) rmesa->swtcl.render_primitive = GL_TRIANGLES; rmesa->swtcl.hw_primitive = 0; - ctx->Driver.PolygonMode = radeonPolygonMode - ctx->Driver.LightingSpaceChange = radeonLightingSpaceChange; + ctx->Driver.PolygonMode = radeonPolygonMode; + + tnl->Driver.NotifyMaterialChange( ctx ); } diff --git a/src/mesa/drivers/dri/radeon/radeon_tcl.h b/src/mesa/drivers/dri/radeon/radeon_tcl.h index f0715e7afb0..e4a182df201 100644 --- a/src/mesa/drivers/dri/radeon/radeon_tcl.h +++ b/src/mesa/drivers/dri/radeon/radeon_tcl.h @@ -36,8 +36,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #ifndef __RADEON_TCL_H__ #define __RADEON_TCL_H__ -#ifdef GLX_DIRECT_RENDERING - #include "radeon_context.h" extern void radeonTclPrimitive( GLcontext *ctx, GLenum prim, int hw_prim ); @@ -76,4 +74,3 @@ typedef void (*render_func)( GLcontext *ctx, GLuint start, GLuint count, #endif #endif -#endif diff --git a/src/mesa/drivers/dri/radeon/radeon_tex.h b/src/mesa/drivers/dri/radeon/radeon_tex.h index 89a5af14c25..c60b63ab257 100644 --- a/src/mesa/drivers/dri/radeon/radeon_tex.h +++ b/src/mesa/drivers/dri/radeon/radeon_tex.h @@ -37,7 +37,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #ifndef __RADEON_TEX_H__ #define __RADEON_TEX_H__ -#ifdef GLX_DIRECT_RENDERING extern void radeonUpdateTextureState( GLcontext *ctx ); @@ -53,5 +52,4 @@ extern void radeonUpdateTexLRU( radeonContextPtr rmesa, radeonTexObjPtr t ); extern void radeonInitTextureFuncs( GLcontext *ctx ); -#endif #endif /* __RADEON_TEX_H__ */ diff --git a/src/mesa/drivers/dri/radeon/radeon_texgen.c b/src/mesa/drivers/dri/radeon/radeon_texgen.c index e656747932e..73e68398dde 100644 --- a/src/mesa/drivers/dri/radeon/radeon_texgen.c +++ b/src/mesa/drivers/dri/radeon/radeon_texgen.c @@ -1,3 +1,48 @@ +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_state.c,v 1.5 2002/09/16 18:05:20 eich Exp $ */ +/* + * Copyright 2000, 2001 VA Linux Systems Inc., Fremont, California. + * + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * on the rights to use, copy, modify, merge, publish, distribute, sub + * license, and/or sell copies of the Software, and to permit persons to whom + * the Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Authors: + * Gareth Hughes + * Keith Whitwell + */ + +#include "glheader.h" +#include "imports.h" +#include "api_arrayelt.h" +#include "mmath.h" +#include "enums.h" +#include "colormac.h" + + +#include "radeon_context.h" +#include "radeon_ioctl.h" +#include "radeon_state.h" +#include "radeon_tcl.h" +#include "radeon_tex.h" +#include "radeon_vtxfmt.h" + static void set_texgen_matrix( radeonContextPtr rmesa, GLuint unit, GLfloat *s_plane, @@ -25,7 +70,7 @@ static void set_texgen_matrix( radeonContextPtr rmesa, * * Returns GL_FALSE if fallback required. */ -static GLboolean radeon_validate_texgen( GLcontext *ctx, GLuint unit ) +GLboolean radeonUpdateTexgen( GLcontext *ctx, GLuint unit ) { radeonContextPtr rmesa = RADEON_CONTEXT(ctx); struct gl_texture_unit *texUnit = &ctx->Texture.Unit[unit]; @@ -109,7 +154,7 @@ static GLboolean radeon_validate_texgen( GLcontext *ctx, GLuint unit ) -static void update_texturematrix( GLcontext *ctx ) +void radeonUpdateTextureMatrix( GLcontext *ctx ) { radeonContextPtr rmesa = RADEON_CONTEXT( ctx ); GLuint tpc = rmesa->hw.tcl.cmd[TCL_TEXTURE_PROC_CTL]; @@ -134,18 +179,18 @@ static void update_texturematrix( GLcontext *ctx ) _math_matrix_mul_matrix( &rmesa->tmpmat, &rmesa->TexGenMatrix[unit], ctx->TextureMatrixStack[unit].Top ); - upload_matrix( rmesa, rmesa->tmpmat.m, TEXMAT_0+unit ); + radeonUploadMatrix( rmesa, rmesa->tmpmat.m, TEXMAT_0+unit ); } else { rmesa->TexMatEnabled |= (RADEON_TEXGEN_INPUT_TEXCOORD_0+unit) << inputshift; - upload_matrix( rmesa, ctx->TextureMatrixStack[unit].Top->m, - TEXMAT_0+unit ); + radeonUploadMatrix( rmesa, ctx->TextureMatrixStack[unit].Top->m, + TEXMAT_0+unit ); } } else if (rmesa->TexGenEnabled & (RADEON_TEXMAT_0_ENABLE << unit)) { - upload_matrix( rmesa, rmesa->TexGenMatrix[unit].m, - TEXMAT_0+unit ); + radeonUploadMatrix( rmesa, rmesa->TexGenMatrix[unit].m, + TEXMAT_0+unit ); } } @@ -178,6 +223,8 @@ static void update_texturematrix( GLcontext *ctx ) void radeonInitTexTransform( GLcontext *ctx ) { + radeonContextPtr rmesa = RADEON_CONTEXT(ctx); + _math_matrix_ctr( &rmesa->TexGenMatrix[0] ); _math_matrix_ctr( &rmesa->TexGenMatrix[1] ); _math_matrix_ctr( &rmesa->tmpmat ); diff --git a/src/mesa/drivers/dri/radeon/radeon_texstate.c b/src/mesa/drivers/dri/radeon/radeon_texstate.c index cb4cc7f4b2c..f78eee70597 100644 --- a/src/mesa/drivers/dri/radeon/radeon_texstate.c +++ b/src/mesa/drivers/dri/radeon/radeon_texstate.c @@ -1216,7 +1216,7 @@ static GLboolean radeonUpdateTextureUnit( GLcontext *ctx, int unit ) #if _HAVE_TEXGEN if (rmesa->recheck_texgen[unit]) { - GLboolean fallback = !radeon_validate_texgen( ctx, unit ); + GLboolean fallback = !radeonUpdateTexgen( ctx, unit ); TCL_FALLBACK( ctx, (RADEON_TCL_FALLBACK_TEXGEN_0<recheck_texgen[unit] = 0; rmesa->NewGLState |= _NEW_TEXTURE_MATRIX; diff --git a/src/mesa/drivers/dri/radeon/radeon_userclip.c b/src/mesa/drivers/dri/radeon/radeon_userclip.c index 526c7d06a12..b8d7398b3a8 100644 --- a/src/mesa/drivers/dri/radeon/radeon_userclip.c +++ b/src/mesa/drivers/dri/radeon/radeon_userclip.c @@ -1,4 +1,49 @@ -static void radeonClipPlane( GLcontext *ctx, GLenum plane, const GLfloat *eq ) +/* $XFree86: xc/lib/GL/mesa/src/drv/radeon/radeon_state.c,v 1.5 2002/09/16 18:05:20 eich Exp $ */ +/* + * Copyright 2000, 2001 VA Linux Systems Inc., Fremont, California. + * + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * on the rights to use, copy, modify, merge, publish, distribute, sub + * license, and/or sell copies of the Software, and to permit persons to whom + * the Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL + * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + * + * Authors: + * Gareth Hughes + * Keith Whitwell + */ + +#include "glheader.h" +#include "imports.h" +#include "api_arrayelt.h" +#include "mmath.h" +#include "enums.h" +#include "colormac.h" + + +#include "radeon_context.h" +#include "radeon_ioctl.h" +#include "radeon_state.h" +#include "radeon_tcl.h" +#include "radeon_tex.h" +#include "radeon_vtxfmt.h" + +void radeonClipPlane( GLcontext *ctx, GLenum plane, const GLfloat *eq ) { GLint p = (GLint) plane - (GLint) GL_CLIP_PLANE0; radeonContextPtr rmesa = RADEON_CONTEXT(ctx); @@ -31,9 +76,9 @@ void radeonUpdateClipPlanes( GLcontext *ctx ) void radeonInitUserClip( GLcontext *ctx ) { - ctx->Driver.ClipPlane = radeonClipPlane; + int i; + ctx->Driver.ClipPlane = radeonClipPlane; for (i = 0 ; i < 6; i++) ctx->Driver.ClipPlane( ctx, GL_CLIP_PLANE0 + i, NULL ); - } diff --git a/src/mesa/drivers/dri/radeon/radeon_vtxfmt.h b/src/mesa/drivers/dri/radeon/radeon_vtxfmt.h index 093c26d1596..ea8c2a184d3 100644 --- a/src/mesa/drivers/dri/radeon/radeon_vtxfmt.h +++ b/src/mesa/drivers/dri/radeon/radeon_vtxfmt.h @@ -36,8 +36,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. #ifndef __RADEON_VTXFMT_H__ #define __RADEON_VTXFMT_H__ -#ifdef GLX_DIRECT_RENDERING - #include "radeon_context.h" @@ -125,4 +123,3 @@ struct dynfn *radeon_makeX86MultiTexCoord1fvARB( GLcontext *, int ); #endif -#endif