diff options
author | Eric Anholt <[email protected]> | 2005-10-19 02:46:42 +0000 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2005-10-19 02:46:42 +0000 |
commit | d76c7d7d3e37698a17274d9916c04c7c8d42f2df (patch) | |
tree | 89ad9192e5f8a8cb8b6489773b3c2bb2cc9dc4ea /src/mesa/drivers/dri/mach64 | |
parent | dc4070c7870b1bc9ed1c39908177c1e8d983b111 (diff) |
Fix a missed merge for idr's dispatch changes: failure to do driInitExtensions
in __driCreateNewScreen_20050727 resulted in crashing in dispatch.
Diffstat (limited to 'src/mesa/drivers/dri/mach64')
-rw-r--r-- | src/mesa/drivers/dri/mach64/mach64_context.c | 2 | ||||
-rw-r--r-- | src/mesa/drivers/dri/mach64/mach64_screen.c | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/mach64/mach64_context.c b/src/mesa/drivers/dri/mach64/mach64_context.c index d5098ecaee2..717b9b9e8d8 100644 --- a/src/mesa/drivers/dri/mach64/mach64_context.c +++ b/src/mesa/drivers/dri/mach64/mach64_context.c @@ -79,7 +79,7 @@ static const struct dri_debug_control debug_control[] = { NULL, 0 } }; -static const struct dri_extension card_extensions[] = +const struct dri_extension card_extensions[] = { { "GL_ARB_multisample", GL_ARB_multisample_functions }, { "GL_ARB_multitexture", NULL }, diff --git a/src/mesa/drivers/dri/mach64/mach64_screen.c b/src/mesa/drivers/dri/mach64/mach64_screen.c index 6d148d3288a..60055e5c9f8 100644 --- a/src/mesa/drivers/dri/mach64/mach64_screen.c +++ b/src/mesa/drivers/dri/mach64/mach64_screen.c @@ -67,6 +67,7 @@ static const GLuint __driNConfigOptions = 3; static const GLuint __driNConfigOptions = 2; #endif +extern const struct dri_extension card_extensions[]; static __GLcontextModes * fill_in_modes( __GLcontextModes * modes, unsigned pixel_bits, @@ -540,6 +541,16 @@ void * __driCreateNewScreen_20050727( __DRInativeDisplay *dpy, int scrn, __DRIsc 16, 0, 1); + + /* Calling driInitExtensions here, with a NULL context pointer, does not actually + * enable the extensions. It just makes sure that all the dispatch offsets for all + * the extensions that *might* be enables are known. This is needed because the + * dispatch offsets need to be known when _mesa_context_create is called, but we can't + * enable the extensions until we have a context pointer. + * + * Hello chicken. Hello egg. How are you two today? + */ + driInitExtensions( NULL, card_extensions, GL_FALSE ); } return (void *) psp; |