gallium/swr: allow swr use as a swrast dri driver
authorTim Rowley <timothy.o.rowley@intel.com>
Fri, 15 Apr 2016 17:38:25 +0000 (12:38 -0500)
committerTim Rowley <timothy.o.rowley@intel.com>
Fri, 15 Apr 2016 19:21:50 +0000 (14:21 -0500)
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Tested-by: Ilia Mirkin <imirkin@alum.mit.edu>
configure.ac
src/gallium/auxiliary/target-helpers/sw_helper.h
src/gallium/drivers/swr/Automake.inc [new file with mode: 0644]
src/gallium/targets/dri/Makefile.am
src/gallium/targets/pipe-loader/Makefile.am

index 4313aff9116bd3a691f98497b445e9be6c425514..4a41d8f973ed473c06089d98e59a07f97adaf320 100644 (file)
@@ -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)
 
index ae5f3de92babd806d706c468447969d2dbd2272f..5e4e9f78af6f313294cbfd661f11076c1274bb19 100644 (file)
@@ -9,7 +9,7 @@
 
 
 /* Helper function to choose and instantiate one of the software rasterizers:
- * llvmpipe, softpipe.
+ * llvmpipe, softpipe, swr.
  */
 
 #ifdef GALLIUM_SOFTPIPE
 #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 (file)
index 0000000..a519214
--- /dev/null
@@ -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
index 2666524fbfe9100d901614f00fd16a54747ac59b..f42dd25a56be6543543ef298aab7cf93b499b79e 100644 (file)
@@ -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
 
index 0b516de0b5bca417c76bd86f74fa987081c58aa4..18b403f73315272855d539f8a3a9007f8d5f4c50 100644 (file)
@@ -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)