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 23static INLINE struct pipe_screen * 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 42static INLINE struct pipe_screen * 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