From ee72fec9cfaddfef78a112f0b8d2f3f7f67a6535 Mon Sep 17 00:00:00 2001 From: Tim Rowley Date: Fri, 15 Apr 2016 12:38:25 -0500 Subject: [PATCH] gallium/swr: allow swr use as a swrast dri driver Reviewed-by: Emil Velikov Tested-by: Ilia Mirkin --- configure.ac | 3 +++ src/gallium/auxiliary/target-helpers/sw_helper.h | 15 +++++++++++++-- src/gallium/drivers/swr/Automake.inc | 8 ++++++++ src/gallium/targets/dri/Makefile.am | 1 + src/gallium/targets/pipe-loader/Makefile.am | 19 ++++++++++++++----- 5 files changed, 39 insertions(+), 7 deletions(-) create mode 100644 src/gallium/drivers/swr/Automake.inc 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) -- 2.7.4