summaryrefslogtreecommitdiff
path: root/mi
diff options
context:
space:
mode:
authorJon TURNEY <jon.turney@dronecode.org.uk>2009-11-07 18:44:23 +0000
committerJon TURNEY <jon.turney@dronecode.org.uk>2011-09-01 13:17:02 +0100
commit09bb05b7645b679cf69f20474ffa6a8fc4b2690c (patch)
treeb96806692c02af401f50bfa687bdfe05c6bf9bf3 /mi
parentd052b89cc331f7b3894b4a4e9cb3490eb5df2c69 (diff)
Add a DDX specific GLX provider push hook
This is needed to give DDX which are statically linked with extensions a chance to install DDX specific GLX providers before the GLX extension is initialized The the swrast provider is installed just before GLX extension is initialized. The GLX extension asks providers if they can support a screen in the reverse of the provider installation order, so installing a DDX-specific GLX provider earlier than this is not useful, as it will always lose out to swrast. Installing the provider later than this is not useful as the provider for each screen has already been selected during GLX extension initialization. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
Diffstat (limited to 'mi')
-rw-r--r--mi/miinitext.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/mi/miinitext.c b/mi/miinitext.c
index 4499f377c..2605e00d4 100644
--- a/mi/miinitext.c
+++ b/mi/miinitext.c
@@ -93,6 +93,7 @@ SOFTWARE.
#include "extension.h"
#include "micmap.h"
#include "globals.h"
+#include "ddxhooks.h"
extern Bool noTestExtensions;
@@ -467,7 +468,15 @@ InitExtensions(int argc, char *argv[])
#ifdef GLXEXT
if (serverGeneration == 1)
- GlxPushProvider(&__glXDRISWRastProvider);
+ {
+ GlxPushProvider(&__glXDRISWRastProvider);
+
+ if (ddxHooks.ddxPushProviders)
+ {
+ /* a chance for DDX to install providers better than swrast... */
+ ddxHooks.ddxPushProviders();
+ }
+ }
if (!noGlxExtension) GlxExtensionInit();
#endif
}