summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Rowley <timothy.o.rowley@intel.com>2016-04-15 12:38:25 -0500
committerTim Rowley <timothy.o.rowley@intel.com>2016-04-15 14:21:50 -0500
commitee72fec9cfaddfef78a112f0b8d2f3f7f67a6535 (patch)
tree12a1fe797c25d6534ec7801518756a4ba4118381
parentf6d21bcd6b5cd5073a571034ec640177b0abf82d (diff)
downloadexternal_mesa3d-ee72fec9cfaddfef78a112f0b8d2f3f7f67a6535.zip
external_mesa3d-ee72fec9cfaddfef78a112f0b8d2f3f7f67a6535.tar.gz
external_mesa3d-ee72fec9cfaddfef78a112f0b8d2f3f7f67a6535.tar.bz2
gallium/swr: allow swr use as a swrast dri driver
Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Tested-by: Ilia Mirkin <imirkin@alum.mit.edu>
-rw-r--r--configure.ac3
-rw-r--r--src/gallium/auxiliary/target-helpers/sw_helper.h15
-rw-r--r--src/gallium/drivers/swr/Automake.inc8
-rw-r--r--src/gallium/targets/dri/Makefile.am1
-rw-r--r--src/gallium/targets/pipe-loader/Makefile.am19
5 files changed, 39 insertions, 7 deletions
diff --git a/configure.ac b/configure.ac
index 4313aff..4a41d8f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2378,6 +2378,9 @@ AM_CONDITIONAL(HAVE_GALLIUM_FREEDRENO, test "x$HAVE_GALLIUM_FREEDRENO" = xyes)
AM_CONDITIONAL(HAVE_GALLIUM_SOFTPIPE, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes)
AM_CONDITIONAL(HAVE_GALLIUM_LLVMPIPE, test "x$HAVE_GALLIUM_LLVMPIPE" = xyes)
AM_CONDITIONAL(HAVE_GALLIUM_SWR, test "x$HAVE_GALLIUM_SWR" = xyes)
+AM_CONDITIONAL(HAVE_GALLIUM_SWRAST, test "x$HAVE_GALLIUM_SOFTPIPE" = xyes -o \
+ "x$HAVE_GALLIUM_LLVMPIPE" = xyes -o \
+ "x$HAVE_GALLIUM_SWR" = xyes)
AM_CONDITIONAL(HAVE_GALLIUM_VC4, test "x$HAVE_GALLIUM_VC4" = xyes)
AM_CONDITIONAL(HAVE_GALLIUM_VIRGL, test "x$HAVE_GALLIUM_VIRGL" = xyes)
diff --git a/src/gallium/auxiliary/target-helpers/sw_helper.h b/src/gallium/auxiliary/target-helpers/sw_helper.h
index ae5f3de..5e4e9f7 100644
--- a/src/gallium/auxiliary/target-helpers/sw_helper.h
+++ b/src/gallium/auxiliary/target-helpers/sw_helper.h
@@ -9,7 +9,7 @@
/* Helper function to choose and instantiate one of the software rasterizers:
- * llvmpipe, softpipe.
+ * llvmpipe, softpipe, swr.
*/
#ifdef GALLIUM_SOFTPIPE
@@ -20,6 +20,10 @@
#include "llvmpipe/lp_public.h"
#endif
+#ifdef GALLIUM_SWR
+#include "swr/swr_public.h"
+#endif
+
#ifdef GALLIUM_VIRGL
#include "virgl/virgl_public.h"
#include "virgl/vtest/virgl_vtest_public.h"
@@ -44,10 +48,15 @@ sw_screen_create_named(struct sw_winsys *winsys, const char *driver)
#endif
#if defined(GALLIUM_SOFTPIPE)
- if (screen == NULL)
+ if (screen == NULL && strcmp(driver, "softpipe") == 0)
screen = softpipe_create_screen(winsys);
#endif
+#if defined(GALLIUM_SWR)
+ if (screen == NULL && strcmp(driver, "swr") == 0)
+ screen = swr_create_screen(winsys);
+#endif
+
return screen;
}
@@ -62,6 +71,8 @@ sw_screen_create(struct sw_winsys *winsys)
default_driver = "llvmpipe";
#elif defined(GALLIUM_SOFTPIPE)
default_driver = "softpipe";
+#elif defined(GALLIUM_SWR)
+ default_driver = "swr";
#else
default_driver = "";
#endif
diff --git a/src/gallium/drivers/swr/Automake.inc b/src/gallium/drivers/swr/Automake.inc
new file mode 100644
index 0000000..a519214
--- /dev/null
+++ b/src/gallium/drivers/swr/Automake.inc
@@ -0,0 +1,8 @@
+if HAVE_GALLIUM_SWR
+
+TARGET_DRIVERS += swrast
+TARGET_CPPFLAGS += -DGALLIUM_SWR
+TARGET_LIB_DEPS += \
+ $(top_builddir)/src/gallium/drivers/swr/libmesaswr.la
+
+endif
diff --git a/src/gallium/targets/dri/Makefile.am b/src/gallium/targets/dri/Makefile.am
index 2666524..f42dd25 100644
--- a/src/gallium/targets/dri/Makefile.am
+++ b/src/gallium/targets/dri/Makefile.am
@@ -86,6 +86,7 @@ include $(top_srcdir)/src/gallium/drivers/virgl/Automake.inc
include $(top_srcdir)/src/gallium/drivers/softpipe/Automake.inc
include $(top_srcdir)/src/gallium/drivers/llvmpipe/Automake.inc
+include $(top_srcdir)/src/gallium/drivers/swr/Automake.inc
if HAVE_GALLIUM_STATIC_TARGETS
diff --git a/src/gallium/targets/pipe-loader/Makefile.am b/src/gallium/targets/pipe-loader/Makefile.am
index 0b516de..18b403f 100644
--- a/src/gallium/targets/pipe-loader/Makefile.am
+++ b/src/gallium/targets/pipe-loader/Makefile.am
@@ -192,16 +192,18 @@ pipe_vmwgfx_la_LIBADD = \
endif
-if HAVE_GALLIUM_SOFTPIPE
-AM_CPPFLAGS += -DGALLIUM_SOFTPIPE
-
+if HAVE_GALLIUM_SWRAST
pipe_LTLIBRARIES += pipe_swrast.la
pipe_swrast_la_SOURCES = pipe_swrast.c
nodist_EXTRA_pipe_swrast_la_SOURCES = dummy.cpp
+pipe_swrast_la_LIBADD = $(PIPE_LIBS)
-pipe_swrast_la_LIBADD = \
- $(PIPE_LIBS) \
+if HAVE_GALLIUM_SOFTPIPE
+AM_CPPFLAGS += -DGALLIUM_SOFTPIPE
+
+pipe_swrast_la_LIBADD += \
$(top_builddir)/src/gallium/drivers/softpipe/libsoftpipe.la
+endif
if HAVE_GALLIUM_LLVMPIPE
AM_CPPFLAGS += -DGALLIUM_LLVMPIPE
@@ -210,6 +212,13 @@ pipe_swrast_la_LIBADD += \
$(top_builddir)/src/gallium/drivers/llvmpipe/libllvmpipe.la
endif
+if HAVE_GALLIUM_SWR
+AM_CPPFLAGS += -DGALLIUM_SWR
+
+pipe_swrast_la_LIBADD += \
+ $(top_builddir)/src/gallium/drivers/swr/libmesaswr.la
+endif
+
pipe_swrast_la_LIBADD += \
$(GALLIUM_PIPE_LOADER_WINSYS_LIBS)