1 2 #ifndef INLINE_SW_HELPER_H 3 #define INLINE_SW_HELPER_H 4 5 #include "pipe/p_compiler.h" 6 #include "util/u_debug.h" 7 #include "state_tracker/sw_winsys.h" 8 9 10 /* Helper function to choose and instantiate one of the software rasterizers: 11 * llvmpipe, softpipe. 12 */ 13 14 #ifdef GALLIUM_SOFTPIPE 15 #include "softpipe/sp_public.h" 16 #endif 17 18 #ifdef GALLIUM_LLVMPIPE 19 #include "llvmpipe/lp_public.h" 20 #endif 21 22 23 static INLINE struct pipe_screen * sw_screen_create_named(struct sw_winsys * winsys,const char * driver)24sw_screen_create_named(struct sw_winsys *winsys, const char *driver) 25 { 26 struct pipe_screen *screen = NULL; 27 28 #if defined(GALLIUM_LLVMPIPE) 29 if (screen == NULL && strcmp(driver, "llvmpipe") == 0) 30 screen = llvmpipe_create_screen(winsys); 31 #endif 32 33 #if defined(GALLIUM_SOFTPIPE) 34 if (screen == NULL) 35 screen = softpipe_create_screen(winsys); 36 #endif 37 38 return screen; 39 } 40 41 42 static INLINE struct pipe_screen * sw_screen_create(struct sw_winsys * winsys)43sw_screen_create(struct sw_winsys *winsys) 44 { 45 const char *default_driver; 46 const char *driver; 47 48 #if defined(GALLIUM_LLVMPIPE) 49 default_driver = "llvmpipe"; 50 #elif defined(GALLIUM_SOFTPIPE) 51 default_driver = "softpipe"; 52 #else 53 default_driver = ""; 54 #endif 55 56 driver = debug_get_option("GALLIUM_DRIVER", default_driver); 57 return sw_screen_create_named(winsys, driver); 58 } 59 60 61 #endif 62