summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian <[email protected]>2007-04-16 17:16:46 -0600
committerBrian <[email protected]>2007-04-16 17:16:46 -0600
commit5888010362debf0f32c1596c9082a16048b29f39 (patch)
treef810cb8bebcf3c0e298b3dd321a2546ba8c0a171
parentdfee7619d433a8b27fb5573d92873f9355ca6a5d (diff)
Fix glActiveStencilFaceEXT dispatch problem (bug 10523).
OK, _all_ extensions that might get enabled by the driver need to be in the card_extensions[] list. driInitExtensions() is called at least twice: first during screen creation, then once for each context that's created. The first call sets up the dispatch table. The second call just sets the extension enable/disable flags.
-rw-r--r--src/mesa/drivers/dri/r300/r300_context.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/mesa/drivers/dri/r300/r300_context.c b/src/mesa/drivers/dri/r300/r300_context.c
index 58350fe0ab4..c362b027e99 100644
--- a/src/mesa/drivers/dri/r300/r300_context.c
+++ b/src/mesa/drivers/dri/r300/r300_context.c
@@ -124,11 +124,8 @@ const struct dri_extension card_extensions[] = {
{"GL_NV_blend_square", NULL},
{"GL_NV_vertex_program", GL_NV_vertex_program_functions},
{"GL_SGIS_generate_mipmap", NULL},
- {NULL, NULL}
-};
-
-const struct dri_extension stencil_two_side[] = {
{"GL_EXT_stencil_two_side", GL_EXT_stencil_two_side_functions},
+ {NULL, NULL}
};
extern struct tnl_pipeline_stage _r300_render_stage;
@@ -334,8 +331,8 @@ GLboolean r300CreateContext(const __GLcontextModes * glVisual,
driInitExtensions(ctx, card_extensions, GL_TRUE);
- if (driQueryOptionb(&r300->radeon.optionCache, "disable_stencil_two_side") == 0)
- driInitSingleExtension(ctx, stencil_two_side);
+ if (driQueryOptionb(&r300->radeon.optionCache, "disable_stencil_two_side"))
+ _mesa_disable_extension(ctx, "GL_EXT_stencil_two_side");
if (r300->radeon.glCtx->Mesa_DXTn && !driQueryOptionb (&r300->radeon.optionCache, "disable_s3tc")) {
_mesa_enable_extension( ctx, "GL_EXT_texture_compression_s3tc" );