62 lines
1.2 KiB
C
62 lines
1.2 KiB
C
|
|
||
|
#ifndef INLINE_SW_HELPER_H
|
||
|
#define INLINE_SW_HELPER_H
|
||
|
|
||
|
#include "pipe/p_compiler.h"
|
||
|
#include "util/u_debug.h"
|
||
|
#include "state_tracker/sw_winsys.h"
|
||
|
|
||
|
|
||
|
/* Helper function to choose and instantiate one of the software rasterizers:
|
||
|
* llvmpipe, softpipe.
|
||
|
*/
|
||
|
|
||
|
#ifdef GALLIUM_SOFTPIPE
|
||
|
#include "softpipe/sp_public.h"
|
||
|
#endif
|
||
|
|
||
|
#ifdef GALLIUM_LLVMPIPE
|
||
|
#include "llvmpipe/lp_public.h"
|
||
|
#endif
|
||
|
|
||
|
|
||
|
static INLINE struct pipe_screen *
|
||
|
sw_screen_create_named(struct sw_winsys *winsys, const char *driver)
|
||
|
{
|
||
|
struct pipe_screen *screen = NULL;
|
||
|
|
||
|
#if defined(GALLIUM_LLVMPIPE)
|
||
|
if (screen == NULL && strcmp(driver, "llvmpipe") == 0)
|
||
|
screen = llvmpipe_create_screen(winsys);
|
||
|
#endif
|
||
|
|
||
|
#if defined(GALLIUM_SOFTPIPE)
|
||
|
if (screen == NULL)
|
||
|
screen = softpipe_create_screen(winsys);
|
||
|
#endif
|
||
|
|
||
|
return screen;
|
||
|
}
|
||
|
|
||
|
|
||
|
static INLINE struct pipe_screen *
|
||
|
sw_screen_create(struct sw_winsys *winsys)
|
||
|
{
|
||
|
const char *default_driver;
|
||
|
const char *driver;
|
||
|
|
||
|
#if defined(GALLIUM_LLVMPIPE)
|
||
|
default_driver = "llvmpipe";
|
||
|
#elif defined(GALLIUM_SOFTPIPE)
|
||
|
default_driver = "softpipe";
|
||
|
#else
|
||
|
default_driver = "";
|
||
|
#endif
|
||
|
|
||
|
driver = "softpipe"; // debug_get_option("GALLIUM_DRIVER", default_driver);
|
||
|
return sw_screen_create_named(winsys, driver);
|
||
|
}
|
||
|
|
||
|
|
||
|
#endif
|