Mesa (master): st/python: Always use softpipe as reference driver.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Thu Apr 1 16:48:20 UTC 2010


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

Author: José Fonseca <jfonseca at vmware.com>
Date:   Thu Apr  1 16:38:01 2010 +0100

st/python: Always use softpipe as reference driver.

---

 src/gallium/state_trackers/python/st_device.c      |    2 +-
 .../state_trackers/python/st_hardpipe_winsys.c     |    2 +-
 .../state_trackers/python/st_softpipe_winsys.c     |   22 ++++++++++++-------
 src/gallium/state_trackers/python/st_winsys.h      |    2 +-
 4 files changed, 17 insertions(+), 11 deletions(-)

diff --git a/src/gallium/state_trackers/python/st_device.c b/src/gallium/state_trackers/python/st_device.c
index 44d65e3..4f227a0 100644
--- a/src/gallium/state_trackers/python/st_device.c
+++ b/src/gallium/state_trackers/python/st_device.c
@@ -85,7 +85,7 @@ st_device_create(boolean hardware)
    if (hardware)
       screen = st_hardware_screen_create();
    else
-      screen = st_software_screen_create();
+      screen = st_software_screen_create("softpipe");
 
    screen = trace_screen_create(screen);
    if (!screen)
diff --git a/src/gallium/state_trackers/python/st_hardpipe_winsys.c b/src/gallium/state_trackers/python/st_hardpipe_winsys.c
index b141177..c6743db 100644
--- a/src/gallium/state_trackers/python/st_hardpipe_winsys.c
+++ b/src/gallium/state_trackers/python/st_hardpipe_winsys.c
@@ -208,5 +208,5 @@ st_hardware_screen_create(void)
    if(st_hardpipe_load())
       return pfnGetGalliumScreenMESA();
    else
-      return st_software_screen_create();
+      return st_software_screen_create(NULL);
 }
diff --git a/src/gallium/state_trackers/python/st_softpipe_winsys.c b/src/gallium/state_trackers/python/st_softpipe_winsys.c
index 0a332aa..8584bad 100644
--- a/src/gallium/state_trackers/python/st_softpipe_winsys.c
+++ b/src/gallium/state_trackers/python/st_softpipe_winsys.c
@@ -35,27 +35,29 @@
 
 
 struct pipe_screen *
-st_software_screen_create(void)
+st_software_screen_create(const char *driver)
 {
    struct sw_winsys *ws;
-   const char *default_driver;
-   const char *driver;
    struct pipe_screen *screen = NULL;
 
+   if (!driver) {
+      const char *default_driver;
+
 #if defined(HAVE_LLVMPIPE)
-   default_driver = "llvmpipe";
+      default_driver = "llvmpipe";
 #elif defined(HAVE_SOFTPIPE)
-   default_driver = "softpipe";
+      default_driver = "softpipe";
 #else
-   default_driver = "";
+      default_driver = "";
 #endif
 
+      driver = debug_get_option("GALLIUM_DRIVER", default_driver);
+   }
+
    ws = null_sw_create();
    if(!ws)
       return NULL;
 
-   driver = debug_get_option("GALLIUM_DRIVER", default_driver);
-
 #ifdef HAVE_LLVMPIPE
    if (strcmp(driver, "llvmpipe") == 0) {
       screen = llvmpipe_create_screen(ws);
@@ -68,5 +70,9 @@ st_software_screen_create(void)
    }
 #endif
 
+   if (!screen) {
+      ws->destroy(ws);
+   }
+
    return screen;
 }
diff --git a/src/gallium/state_trackers/python/st_winsys.h b/src/gallium/state_trackers/python/st_winsys.h
index e1a9938..7d4066d 100644
--- a/src/gallium/state_trackers/python/st_winsys.h
+++ b/src/gallium/state_trackers/python/st_winsys.h
@@ -37,7 +37,7 @@ struct pipe_screen *
 st_hardware_screen_create(void);
 
 struct pipe_screen *
-st_software_screen_create(void);
+st_software_screen_create(const char *driver);
 
 
 #endif /* ST_WINSYS_H_ */




More information about the mesa-commit mailing list