summaryrefslogtreecommitdiff
path: root/src/gallium/targets/dri-swrast/swrast_drm_api.c
diff options
context:
space:
mode:
authorJakob Bornecrantz <wallbraker@gmail.com>2010-03-26 14:47:20 +0100
committerJakob Bornecrantz <wallbraker@gmail.com>2010-03-26 14:56:26 +0100
commite57405e8d516c09b890c6f1c3bd8fe7780417c95 (patch)
tree3309702546a78e9649097b9c5925a116950406ed /src/gallium/targets/dri-swrast/swrast_drm_api.c
parent7f91f2efb5b92a9ad8506c54643142f40f286d5c (diff)
swrastg: Use llvmpipe if built but only on scons
Diffstat (limited to 'src/gallium/targets/dri-swrast/swrast_drm_api.c')
-rw-r--r--src/gallium/targets/dri-swrast/swrast_drm_api.c25
1 files changed, 20 insertions, 5 deletions
diff --git a/src/gallium/targets/dri-swrast/swrast_drm_api.c b/src/gallium/targets/dri-swrast/swrast_drm_api.c
index 211836d784..224651603d 100644
--- a/src/gallium/targets/dri-swrast/swrast_drm_api.c
+++ b/src/gallium/targets/dri-swrast/swrast_drm_api.c
@@ -28,12 +28,18 @@
#include "pipe/p_compiler.h"
#include "util/u_memory.h"
-
-#include "softpipe/sp_public.h"
#include "state_tracker/drm_api.h"
#include "state_tracker/sw_winsys.h"
#include "dri_sw_winsys.h"
+#ifdef GALLIUM_SOFTPIPE
+#include "softpipe/sp_public.h"
+#endif
+
+#ifdef GALLIUM_LLVMPIPE
+#include "llvmpipe/lp_public.h"
+#endif
+
static struct pipe_screen *
swrast_create_screen(struct drm_api *api,
int drmFD,
@@ -57,15 +63,24 @@ swrast_create_screen(struct drm_api *api,
if (winsys == NULL)
return NULL;
- screen = softpipe_create_screen( winsys );
- if (screen == NULL)
+#ifdef GALLIUM_LLVMPIPE
+ if (!screen)
+ screen = llvmpipe_create_screen(winsys);
+#endif
+
+#ifdef GALLIUM_SOFTPIPE
+ if (!screen)
+ screen = softpipe_create_screen(winsys);
+#endif
+
+ if (!screen)
goto fail;
return screen;
fail:
if (winsys)
- winsys->destroy( winsys );
+ winsys->destroy(winsys);
return NULL;
}