Mesa (master): glx: try swrastg_dri, if swrast_dri fails

George Sapountzis gsap7 at kemper.freedesktop.org
Sat Mar 27 05:14:12 PDT 2010


Module: Mesa
Branch: master
Commit: 29ec84b0a80e1fe2e6f58f91ab63f2f9ebd012a6
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=29ec84b0a80e1fe2e6f58f91ab63f2f9ebd012a6

Author: George Sapountzis <gsapountzis at gmail.com>
Date:   Sat Mar 27 14:06:05 2010 +0200

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.

---

 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 3db2d63..99f8f2c 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;
 



More information about the mesa-commit mailing list