2 #ifndef INLINE_SW_HELPER_H
3 #define INLINE_SW_HELPER_H
5 #include "pipe/p_compiler.h"
6 #include "util/u_debug.h"
7 #include "state_tracker/sw_winsys.h"
10 /* Helper function to choose and instantiate one of the software rasterizers:
11 * cell, llvmpipe, softpipe.
14 #ifdef GALLIUM_SOFTPIPE
15 #include "softpipe/sp_public.h"
18 #ifdef GALLIUM_LLVMPIPE
19 #include "llvmpipe/lp_public.h"
23 #include "cell/ppu/cell_public.h"
27 static INLINE struct pipe_screen *
28 sw_screen_create_named(struct sw_winsys *winsys, const char *driver)
30 struct pipe_screen *screen = NULL;
32 #if defined(GALLIUM_CELL)
33 if (screen == NULL && strcmp(driver, "cell") == 0)
34 screen = cell_create_screen(winsys);
37 #if defined(GALLIUM_LLVMPIPE)
38 if (screen == NULL && strcmp(driver, "llvmpipe") == 0)
39 screen = llvmpipe_create_screen(winsys);
42 #if defined(GALLIUM_SOFTPIPE)
44 screen = softpipe_create_screen(winsys);
51 static INLINE struct pipe_screen *
52 sw_screen_create(struct sw_winsys *winsys)
54 const char *default_driver;
57 #if defined(GALLIUM_CELL)
58 default_driver = "cell";
59 #elif defined(GALLIUM_LLVMPIPE)
60 default_driver = "llvmpipe";
61 #elif defined(GALLIUM_SOFTPIPE)
62 default_driver = "softpipe";
67 driver = debug_get_option("GALLIUM_DRIVER", default_driver);
68 return sw_screen_create_named(winsys, driver);