diff options
| -rw-r--r-- | src/gallium/auxiliary/target-helpers/inline_sw_helper.h | 39 | ||||
| -rw-r--r-- | src/gallium/auxiliary/target-helpers/inline_wrapper_sw_helper.h | 12 | ||||
| -rw-r--r-- | src/gallium/targets/dri-i915/target.c | 3 | ||||
| -rw-r--r-- | src/gallium/targets/dri-i965/target.c | 3 | ||||
| -rw-r--r-- | src/gallium/targets/egl/pipe_i965.c | 3 | ||||
| -rw-r--r-- | src/gallium/targets/xorg-i965/intel_target.c | 3 | 
6 files changed, 37 insertions, 26 deletions
| diff --git a/src/gallium/auxiliary/target-helpers/inline_sw_helper.h b/src/gallium/auxiliary/target-helpers/inline_sw_helper.h index 036c1ee48a..34bfa527db 100644 --- a/src/gallium/auxiliary/target-helpers/inline_sw_helper.h +++ b/src/gallium/auxiliary/target-helpers/inline_sw_helper.h @@ -23,26 +23,13 @@  #include "cell/ppu/cell_public.h"  #endif +  static INLINE struct pipe_screen * -sw_screen_create(struct sw_winsys *winsys) +sw_screen_create_named(struct sw_winsys *winsys, const char *driver)  { -   const char *default_driver; -   const char *driver;     struct pipe_screen *screen = 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); - -#if defined(GALLIUM_CELL)     if (screen == NULL && strcmp(driver, "cell") == 0)        screen = cell_create_screen(winsys);  #endif @@ -60,4 +47,26 @@ sw_screen_create(struct sw_winsys *winsys)     return screen;  } + +static INLINE struct pipe_screen * +sw_screen_create(struct sw_winsys *winsys) +{ +   const char *default_driver; +   const char *driver; + +#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); +   return sw_screen_create_named(winsys, driver); +} + +  #endif diff --git a/src/gallium/auxiliary/target-helpers/inline_wrapper_sw_helper.h b/src/gallium/auxiliary/target-helpers/inline_wrapper_sw_helper.h index f27e34a300..e4effa713e 100644 --- a/src/gallium/auxiliary/target-helpers/inline_wrapper_sw_helper.h +++ b/src/gallium/auxiliary/target-helpers/inline_wrapper_sw_helper.h @@ -13,14 +13,20 @@ static INLINE struct pipe_screen *  sw_screen_wrap(struct pipe_screen *screen)  {     struct sw_winsys *sws; -   struct pipe_screen *sw_screen; +   struct pipe_screen *sw_screen = NULL; +   const char *driver; + +   driver = debug_get_option("GALLIUM_DRIVER", "native"); +   if (strcmp(driver, "native") == 0) +      return screen;     sws = wrapper_sw_winsys_wrap_pipe_screen(screen);     if (!sws)        goto err; -   sw_screen = sw_screen_create(sws); -   if (sw_screen == screen) +   sw_screen = sw_screen_create_named(sws, driver); + +   if (!sw_screen)        goto err_winsys;     return sw_screen; diff --git a/src/gallium/targets/dri-i915/target.c b/src/gallium/targets/dri-i915/target.c index 5ae6ca367d..a27b7bd6d8 100644 --- a/src/gallium/targets/dri-i915/target.c +++ b/src/gallium/targets/dri-i915/target.c @@ -19,8 +19,7 @@ create_screen(int fd)     if (!screen)        return NULL; -   if (debug_get_bool_option("I915_SOFTWARE", FALSE)) -      screen = sw_screen_wrap(screen); +   screen = sw_screen_wrap(screen);     screen = debug_screen_wrap(screen); diff --git a/src/gallium/targets/dri-i965/target.c b/src/gallium/targets/dri-i965/target.c index ce97f82027..0632b97bea 100644 --- a/src/gallium/targets/dri-i965/target.c +++ b/src/gallium/targets/dri-i965/target.c @@ -19,8 +19,7 @@ create_screen(int fd)     if (!screen)        return NULL; -   if (debug_get_bool_option("BRW_SOFTPIPE", FALSE)) -      screen = sw_screen_wrap(screen); +   screen = sw_screen_wrap(screen);     screen = debug_screen_wrap(screen); diff --git a/src/gallium/targets/egl/pipe_i965.c b/src/gallium/targets/egl/pipe_i965.c index ae452128b0..6b886fb3f1 100644 --- a/src/gallium/targets/egl/pipe_i965.c +++ b/src/gallium/targets/egl/pipe_i965.c @@ -18,8 +18,7 @@ create_screen(int fd)     if (!screen)        return NULL; -   if (debug_get_bool_option("BRW_SOFTPIPE", FALSE)) -      screen = sw_screen_wrap(screen); +   screen = sw_screen_wrap(screen);     screen = debug_screen_wrap(screen); diff --git a/src/gallium/targets/xorg-i965/intel_target.c b/src/gallium/targets/xorg-i965/intel_target.c index ce97f82027..0632b97bea 100644 --- a/src/gallium/targets/xorg-i965/intel_target.c +++ b/src/gallium/targets/xorg-i965/intel_target.c @@ -19,8 +19,7 @@ create_screen(int fd)     if (!screen)        return NULL; -   if (debug_get_bool_option("BRW_SOFTPIPE", FALSE)) -      screen = sw_screen_wrap(screen); +   screen = sw_screen_wrap(screen);     screen = debug_screen_wrap(screen); | 
