libgl-xlib: Use a simple GALLIUM_DRIVER env var to select the pipe driver.
authorJosé Fonseca <jfonseca@vmware.com>
Tue, 16 Mar 2010 13:48:09 +0000 (13:48 +0000)
committerJosé Fonseca <jfonseca@vmware.com>
Tue, 16 Mar 2010 13:48:09 +0000 (13:48 +0000)
GALLIUM_DRIVER is being used in many other places, and it easier to
memorizing and understand than all the GALLIUM_NO_XXX.

src/gallium/targets/libgl-xlib/xlib.c

index eff4b4778bfb3dc1e7cd9917000d42d90c32fb3c..48e79fe4f3b9d03668b45662faf16d4e81da16c1 100644 (file)
@@ -63,6 +63,8 @@ PUBLIC const struct st_module st_module_OpenGL = {
 static struct pipe_screen *
 swrast_xlib_create_screen( Display *display )
 {
+   const char *default_driver;
+   const char *driver;
    struct sw_winsys *winsys;
    struct pipe_screen *screen = NULL;
 
@@ -73,17 +75,29 @@ swrast_xlib_create_screen( Display *display )
    if (winsys == NULL)
       return NULL;
 
+#if defined(GALLIUM_CELL)
+   default_driver = "cell";
+#elif defined(GALLIUM_LLVMPIPE)
+   default_driver = "llvmpipe";
+#elif defined(GALLIUM_SOFTPIPE)
+   default_driver = "softpipe";
+#else
+   default_driver = "";
+#endif
+
+   driver = debug_get_option("GALLIUM_DRIVER", default_driver);
+
    /* Create a software rasterizer on top of that winsys:
     */
 #if defined(GALLIUM_CELL)
    if (screen == NULL &&
-       !debug_get_bool_option("GALLIUM_NO_CELL", FALSE))
+       strcmp(driver, "cell") == 0)
       screen = cell_create_screen( winsys );
 #endif
 
 #if defined(GALLIUM_LLVMPIPE)
    if (screen == NULL &&
-       !debug_get_bool_option("GALLIUM_NO_LLVM", FALSE))
+       strcmp(driver, "llvmpipe") == 0)
       screen = llvmpipe_create_screen( winsys );
 #endif