diff options
author | George Sapountzis <gsapountzis@gmail.com> | 2010-03-27 14:06:05 +0200 |
---|---|---|
committer | George Sapountzis <gsapountzis@gmail.com> | 2010-03-27 14:06:05 +0200 |
commit | 29ec84b0a80e1fe2e6f58f91ab63f2f9ebd012a6 (patch) | |
tree | 6a22dc9fffda4c67cc188ce36fc1e62c37d25f58 /src/glx/drisw_glx.c | |
parent | c8844c5549dec7e9c47ab49d6e229980f62da74d (diff) |
glx: try swrastg_dri, if swrast_dri fails
This needs a patch for xserver/glx also. An enviroment variable will be added
at some point, it chould be for swrastg only or all gallium drivers.
Diffstat (limited to 'src/glx/drisw_glx.c')
-rw-r--r-- | src/glx/drisw_glx.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c index 3db2d63f1f..99f8f2cbf0 100644 --- a/src/glx/drisw_glx.c +++ b/src/glx/drisw_glx.c @@ -360,6 +360,20 @@ driDestroyScreen(__GLXscreenConfigs * psc) dlclose(psc->driver); } +static void * +driOpenSwrast(void) +{ + void *driver = NULL; + + if (driver == NULL) + driver = driOpenDriver("swrast"); + + if (driver == NULL) + driver = driOpenDriver("swrastg"); + + return driver; +} + static __GLXDRIscreen * driCreateScreen(__GLXscreenConfigs * psc, int screen, __GLXdisplayPrivate * priv) @@ -367,14 +381,13 @@ driCreateScreen(__GLXscreenConfigs * psc, int screen, __GLXDRIscreen *psp; const __DRIconfig **driver_configs; const __DRIextension **extensions; - const char *driverName = "swrast"; int i; psp = Xcalloc(1, sizeof *psp); if (psp == NULL) return NULL; - psc->driver = driOpenDriver(driverName); + psc->driver = driOpenSwrast(); if (psc->driver == NULL) goto handle_error; |