From: George Sapountzis Date: Sat, 27 Mar 2010 12:06:05 +0000 (+0200) Subject: glx: try swrastg_dri, if swrast_dri fails X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=29ec84b0a80e1fe2e6f58f91ab63f2f9ebd012a6;p=mesa.git 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. --- diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c index 3db2d63f1f7..99f8f2cbf06 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;