summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoranholt <anholt>2003-11-17 05:17:16 +0000
committeranholt <anholt>2003-11-17 05:17:16 +0000
commitf689b6a7e61e01ed996f02070cdea8e35dc52f22 (patch)
tree66b94e3448ac21909bdd896386d40da86c10a68c
parentd12a4ef208cbba9244a816dc772409b82c9f26ef (diff)
Switch use of environment variables for debug options to the new configuration
system.
-rw-r--r--xc/lib/GL/mesa/src/drv/sis/Imakefile4
-rw-r--r--xc/lib/GL/mesa/src/drv/sis/sis_context.c40
-rw-r--r--xc/lib/GL/mesa/src/drv/sis/sis_context.h4
-rw-r--r--xc/lib/GL/mesa/src/drv/sis/sis_reg.h6
-rw-r--r--xc/lib/GL/mesa/src/drv/sis/sis_screen.c3
-rw-r--r--xc/lib/GL/mesa/src/drv/sis/sis_screen.h3
-rw-r--r--xc/lib/GL/mesa/src/drv/sis/sis_tris.c2
7 files changed, 46 insertions, 16 deletions
diff --git a/xc/lib/GL/mesa/src/drv/sis/Imakefile b/xc/lib/GL/mesa/src/drv/sis/Imakefile
index 2ac5a39fd..83298d327 100644
--- a/xc/lib/GL/mesa/src/drv/sis/Imakefile
+++ b/xc/lib/GL/mesa/src/drv/sis/Imakefile
@@ -47,7 +47,7 @@ XCOMM DEBUG_DEFINES = -DSIS_DEBUG
$(GLXLIBSRC)/dri/drm/xf86drmRandom.o \
$(GLXLIBSRC)/dri/drm/xf86drmSL.o
- COMMONOBJS = $(UTILSOBJ)
+ COMMONOBJS = $(UTILSOBJ) $(XMLCONFIGOBJ)
#ifdef GlxSoProf
LOSRCS = ../../../../lowpc.c
@@ -61,7 +61,7 @@ XCOMM DEBUG_DEFINES = -DSIS_DEBUG
OBJS = $(LOOBJS) $(DRIOBJS) $(DRMOBJS) $(COREMESAOBJS) \
$(MESA_ASM_OBJS) $(COMMONOBJS) $(SISOBJS) $(HIOBJS)
-REQUIREDLIBS = MathLibrary $(LDPRELIB) $(GLXLIB) $(XONLYLIB)
+REQUIREDLIBS = MathLibrary $(LDPRELIB) $(GLXLIB) $(XONLYLIB) $(EXPATLIB)
#include <Library.tmpl>
diff --git a/xc/lib/GL/mesa/src/drv/sis/sis_context.c b/xc/lib/GL/mesa/src/drv/sis/sis_context.c
index b0039215e..0830e5676 100644
--- a/xc/lib/GL/mesa/src/drv/sis/sis_context.c
+++ b/xc/lib/GL/mesa/src/drv/sis/sis_context.c
@@ -59,6 +59,21 @@ int GlobalCurrentHwcx = -1;
int GlobalHwcxCountBase = 1;
int GlobalCmdQueueLen = 0;
+#include "xmlpool.h"
+
+const char __driConfigOptions[] =
+DRI_CONF_BEGIN
+ DRI_CONF_SECTION_DEBUG
+ DRI_CONF_OPT_BEGIN(agp_disable,bool,false)
+ DRI_CONF_DESC(en,"Disable AGP vertex dispatch")
+ DRI_CONF_OPT_END
+ DRI_CONF_OPT_BEGIN(fallback_force,bool,false)
+ DRI_CONF_DESC(en,"Force software fallback")
+ DRI_CONF_OPT_END
+ DRI_CONF_SECTION_END
+DRI_CONF_END;
+const GLuint __driNConfigOptions = 2;
+
static const char * const card_extensions[] =
{
"GL_ARB_multitexture",
@@ -177,6 +192,10 @@ sisCreateContext( const __GLcontextModes *glVisual,
assert (0);
}
+ /* Parse configuration files */
+ driParseConfigFiles (&smesa->optionCache, &sisScreen->optionCache,
+ sisScreen->driScreen->myNum, "sis");
+
/* TODO: index mode */
smesa->CurrentQueueLenPtr = &(smesa->sarea->QueueLength);
@@ -188,16 +207,17 @@ sisCreateContext( const __GLcontextModes *glVisual,
smesa->AGPAddr = sisScreen->agp.handle;
/* set AGP command buffer */
- smesa->AGPCmdModeEnabled = GL_FALSE;
- if (smesa->AGPSize != 0 && getenv("SIS_NO_AGP") == NULL) {
- if (sisScreen->AGPCmdBufSize != 0) {
- smesa->AGPCmdBufBase = smesa->AGPBase + sisScreen->AGPCmdBufOffset;
- smesa->AGPCmdBufAddr = smesa->AGPAddr + sisScreen->AGPCmdBufOffset;
- smesa->AGPCmdBufSize = sisScreen->AGPCmdBufSize;
-
- smesa->pAGPCmdBufNext = (GLint *)&(smesa->sarea->AGPCmdBufNext);
- smesa->AGPCmdModeEnabled = GL_TRUE;
- }
+ if (smesa->AGPSize != 0 && sisScreen->AGPCmdBufSize != 0 &&
+ !driQueryOptionb(&smesa->optionCache, "agp_disable"))
+ {
+ smesa->AGPCmdBufBase = smesa->AGPBase + sisScreen->AGPCmdBufOffset;
+ smesa->AGPCmdBufAddr = smesa->AGPAddr + sisScreen->AGPCmdBufOffset;
+ smesa->AGPCmdBufSize = sisScreen->AGPCmdBufSize;
+
+ smesa->pAGPCmdBufNext = (GLint *)&(smesa->sarea->AGPCmdBufNext);
+ smesa->AGPCmdModeEnabled = GL_TRUE;
+ } else {
+ smesa->AGPCmdModeEnabled = GL_FALSE;
}
smesa->GlobalFlag = 0L;
diff --git a/xc/lib/GL/mesa/src/drv/sis/sis_context.h b/xc/lib/GL/mesa/src/drv/sis/sis_context.h
index 194962dbe..fb4191a6e 100644
--- a/xc/lib/GL/mesa/src/drv/sis/sis_context.h
+++ b/xc/lib/GL/mesa/src/drv/sis/sis_context.h
@@ -37,6 +37,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "context.h"
#include "dri_util.h"
+#include "xmlconfig.h"
#include "sis_screen.h"
#include "sis_common2.h"
@@ -362,6 +363,9 @@ struct sis_context
sisScreenPtr sisScreen; /* Screen private DRI data */
SISSAREAPrivPtr sarea; /* Private SAREA data */
+
+ /* Configuration cache */
+ driOptionCache optionCache;
};
#define SIS_CONTEXT(ctx) ((sisContextPtr)(ctx->DriverCtx))
diff --git a/xc/lib/GL/mesa/src/drv/sis/sis_reg.h b/xc/lib/GL/mesa/src/drv/sis/sis_reg.h
index 0fcebf956..378692fc1 100644
--- a/xc/lib/GL/mesa/src/drv/sis/sis_reg.h
+++ b/xc/lib/GL/mesa/src/drv/sis/sis_reg.h
@@ -529,17 +529,17 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
#define FOGMODE_EXP2 0x07000000
/*
- * REG_3D_FogStartEnd -- Define Fog Start End Setting (8A34h-8A37h)
+ * REG_3D_FogStartEnd -- Define Fog Start End Setting (0x8A34 - 0x8A37)
*/
#define MASK_FogFarDistance 0x0007FFFF
/*
- * REG_3D_FogStartEnd -- Define Fog End Setting (8A38h-8A3Bh)
+ * REG_3D_FogStartEnd -- Define Fog End Setting (0x8A38 - 0x8A3B)
*/
#define MASK_FogInvFarDistance 0x0007FFFF
/*
- * REG_3D_FogStartEnd -- Define Fog End Setting (0x8A3C - 0x8A3F)
+ * REG_3D_FogFactorDensity (0x8A3C - 0x8A3F)
*/
#define MASK_FogDensity 0x0003FFFF
#define MASK_FogFactor 0xFF000000
diff --git a/xc/lib/GL/mesa/src/drv/sis/sis_screen.c b/xc/lib/GL/mesa/src/drv/sis/sis_screen.c
index 357a6c7a5..a43f2be8c 100644
--- a/xc/lib/GL/mesa/src/drv/sis/sis_screen.c
+++ b/xc/lib/GL/mesa/src/drv/sis/sis_screen.c
@@ -85,6 +85,9 @@ sisCreateScreen( __DRIscreenPrivate *sPriv )
sisScreen->driScreen = sPriv;
+ /* parse information in __driConfigOptions */
+ driParseOptionInfo(&sisScreen->optionCache);
+
return sisScreen;
}
diff --git a/xc/lib/GL/mesa/src/drv/sis/sis_screen.h b/xc/lib/GL/mesa/src/drv/sis/sis_screen.h
index 4cc3f8ee1..452278264 100644
--- a/xc/lib/GL/mesa/src/drv/sis/sis_screen.h
+++ b/xc/lib/GL/mesa/src/drv/sis/sis_screen.h
@@ -54,6 +54,9 @@ typedef struct {
__DRIscreenPrivate *driScreen;
unsigned int sarea_priv_offset;
+ /* Configuration cache with default values for all contexts */
+ driOptionCache optionCache;
+
} sisScreenRec, *sisScreenPtr;
#endif
diff --git a/xc/lib/GL/mesa/src/drv/sis/sis_tris.c b/xc/lib/GL/mesa/src/drv/sis/sis_tris.c
index c63d924de..4877e3465 100644
--- a/xc/lib/GL/mesa/src/drv/sis/sis_tris.c
+++ b/xc/lib/GL/mesa/src/drv/sis/sis_tris.c
@@ -943,7 +943,7 @@ void sisInitTriFuncs( GLcontext *ctx )
tnl->Driver.Render.BuildVertices = sisBuildVertices;
tnl->Driver.Render.Multipass = NULL;
- if (getenv("SIS_FORCE_FALLBACK") != NULL)
+ if (driQueryOptionb(&smesa->optionCache, "fallback_force"))
sisFallback(ctx, SIS_FALLBACK_FORCE, 1);
else
sisFallback(ctx, SIS_FALLBACK_FORCE, 0);