diff options
Diffstat (limited to 'xorg-server/glx/glxext.c')
-rw-r--r-- | xorg-server/glx/glxext.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/xorg-server/glx/glxext.c b/xorg-server/glx/glxext.c index 8d168d8a3..a1f9d42e9 100644 --- a/xorg-server/glx/glxext.c +++ b/xorg-server/glx/glxext.c @@ -39,6 +39,7 @@ #include <registry.h> #include "privates.h" #include <os.h> +#include "extinit.h" #include "unpack.h" #include "glxutil.h" #include "glxext.h" @@ -322,9 +323,15 @@ GlxExtensionInit(void) ExtensionEntry *extEntry; ScreenPtr pScreen; int i; - __GLXprovider *p; + __GLXprovider *p, **stack; Bool glx_provided = False; + if (serverGeneration == 1) { + for (stack = &__glXProviderStack; *stack; stack = &(*stack)->next) + ; + *stack = &__glXDRISWRastProvider; + } + __glXContextRes = CreateNewResourceType((DeleteType) ContextGone, "GLXContext"); __glXDrawableRes = CreateNewResourceType((DeleteType) DrawableGone, @@ -332,6 +339,9 @@ GlxExtensionInit(void) if (!__glXContextRes || !__glXDrawableRes) return; + if (serverGeneration == 1) + GlxPushProvider(&__glXDRISWRastProvider); + if (!dixRegisterPrivateKey (&glxClientPrivateKeyRec, PRIVATE_CLIENT, sizeof(__GLXclientState))) return; |