summaryrefslogtreecommitdiff
path: root/xc/lib
diff options
context:
space:
mode:
authorkeithw <keithw>2000-07-06 09:46:31 +0000
committerkeithw <keithw>2000-07-06 09:46:31 +0000
commit65dd0dabdec38f60a12619b359cff2e216578265 (patch)
tree93d268bca76c9a5b9b560f5476445b90d421a93c /xc/lib
parent49ffdfa21a5d611e07f15526c63294fd6fced816 (diff)
Set maxtexturesize for the g400. Disable a bunch of new extensions that have
been added to mesa but not the driver.
Diffstat (limited to 'xc/lib')
-rw-r--r--xc/lib/GL/mesa/src/drv/mga/mga_xmesa.c24
-rw-r--r--xc/lib/GL/mesa/src/drv/mga/mgadd.c9
2 files changed, 32 insertions, 1 deletions
diff --git a/xc/lib/GL/mesa/src/drv/mga/mga_xmesa.c b/xc/lib/GL/mesa/src/drv/mga/mga_xmesa.c
index a0d9cdf73..01aa2670b 100644
--- a/xc/lib/GL/mesa/src/drv/mga/mga_xmesa.c
+++ b/xc/lib/GL/mesa/src/drv/mga/mga_xmesa.c
@@ -311,6 +311,29 @@ GLboolean XMesaCreateContext( Display *dpy, GLvisual *mesaVis,
make_empty_list(&mmesa->TexObjList[i]);
}
+
+ /* Set the maximum texture size small enough that we can guarentee
+ * that both texture units can bind a maximal texture and have them
+ * on the card at once.
+ */
+ {
+ int nr = 2;
+
+ if (mgaScreen->chipset == MGA_CARD_TYPE_G200)
+ nr = 1;
+
+ if (mgaScreen->textureSize[0] < nr*1024*1024) {
+ ctx->Const.MaxTextureLevels = 9;
+ ctx->Const.MaxTextureSize = 1<<8;
+ } else if (mgaScreen->textureSize[0] < nr*4*1024*1024) {
+ ctx->Const.MaxTextureLevels = 10;
+ ctx->Const.MaxTextureSize = 1<<9;
+ } else {
+ ctx->Const.MaxTextureLevels = 11;
+ ctx->Const.MaxTextureSize = 1<<10;
+ }
+ }
+
mmesa->renderindex = -1; /* impossible value */
mmesa->new_state = ~0;
mmesa->dirty = ~0;
@@ -334,6 +357,7 @@ GLboolean XMesaCreateContext( Display *dpy, GLvisual *mesaVis,
ctx->Driver.TriangleCaps = (DD_TRI_CULL|
+/* DD_LIGHTING_CULL| */
DD_TRI_LIGHT_TWOSIDE|
DD_TRI_STIPPLE|
DD_TRI_OFFSET);
diff --git a/xc/lib/GL/mesa/src/drv/mga/mgadd.c b/xc/lib/GL/mesa/src/drv/mga/mgadd.c
index 252e14fd2..ad71274d7 100644
--- a/xc/lib/GL/mesa/src/drv/mga/mgadd.c
+++ b/xc/lib/GL/mesa/src/drv/mga/mgadd.c
@@ -102,7 +102,7 @@ void mgaDDExtensionsInit( GLcontext *ctx )
/* Support multitexture only on the g400.
*/
- if (1 /*!MGA_IS_G400(MGA_CONTEXT(ctx))*/)
+ if (1 || !MGA_IS_G400(MGA_CONTEXT(ctx)))
{
gl_extensions_disable( ctx, "GL_EXT_multitexture" );
gl_extensions_disable( ctx, "GL_SGIS_multitexture" );
@@ -130,6 +130,13 @@ void mgaDDExtensionsInit( GLcontext *ctx )
gl_extensions_disable( ctx, "GL_INGR_blend_func_separate" );
gl_extensions_disable( ctx, "GL_EXT_texture_lod_bias" );
gl_extensions_disable( ctx, "GL_MESA_resize_buffers" );
+
+ gl_extensions_disable( ctx, "GL_SGI_color_matrix" );
+ gl_extensions_disable( ctx, "GL_SGI_color_table" );
+ gl_extensions_disable( ctx, "GL_SGIX_pixel_texture" );
+ gl_extensions_disable( ctx, "GL_ARB_texture_cube_map" );
+ gl_extensions_disable( ctx, "GL_ARB_texture_compression" );
+ gl_extensions_disable( ctx, "GL_EXT_convolution" );
}