From 5888010362debf0f32c1596c9082a16048b29f39 Mon Sep 17 00:00:00 2001 From: Brian Date: Mon, 16 Apr 2007 17:16:46 -0600 Subject: [PATCH] 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. --- src/mesa/drivers/dri/r300/r300_context.c | 9 +++------ 1 file 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" ); -- 2.30.2