summaryrefslogtreecommitdiff
path: root/xc
diff options
context:
space:
mode:
authorbrianp <brianp>2000-06-06 18:30:11 +0000
committerbrianp <brianp>2000-06-06 18:30:11 +0000
commite5bf0294e47656757a5d472a7547417ad69751ae (patch)
treef4d17f38076ff94d6b7678bbeca8033d812c3928 /xc
parente33d3d587e85dc04131905b9f9f19dc6fdad76e1 (diff)
set haveHwStencil flag only if running on Voodoo4/5 at 32bpp
Diffstat (limited to 'xc')
-rw-r--r--xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c b/xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c
index 44d2a3208..a3973a8ab 100644
--- a/xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c
+++ b/xc/lib/GL/mesa/src/drv/tdfx/tdfx_xmesa.c
@@ -178,15 +178,18 @@ XMesaContext XMesaCreateContext(XMesaVisual v, XMesaContext share_list,
cPriv->hHWContext = driContextPriv->hHWContext;
cPriv->tdfxScrnPriv = sPriv;
+ /* deviceID = 0x05 = Voodoo3 */
+ /* deviceID = 0x09 = Voodoo5 (and Voodoo5?) */
+ cPriv->haveHwStencil = sPriv->deviceID == 0x9 && sPriv->cpp == 4;
c->private = (void *)cPriv;
cPriv->glVis=v->gl_visual;
cPriv->glBuffer=gl_create_framebuffer(v->gl_visual,
- GL_FALSE, /* software depth buffer? */
- v->gl_visual->StencilBits > 0 && v->gl_visual->RedBits < 8,
- v->gl_visual->AccumRedBits > 0,
- GL_FALSE /* software alpha channel */
- );
+ GL_FALSE, /* software depth buffer? */
+ v->gl_visual->StencilBits > 0 && !cPriv->haveHwStencil,
+ v->gl_visual->AccumRedBits > 0,
+ GL_FALSE /* software alpha channel */
+ );
cPriv->screen_width=sPriv->width;
cPriv->screen_height=sPriv->height;