Since there's been some churn on this, I'll try to post the updated patches in a new thread (provided my git config is set right that is)
- Chuck On Tue, Jan 16, 2018 at 4:05 PM, Cherniak, Bruce <bruce.chern...@intel.com> wrote: > With a minor comment change (below) > Reviewed-by: Bruce Cherniak <bruce.chern...@intel.com> > > > On Jan 16, 2018, at 1:59 PM, Chuck Atkins <chuck.atk...@kitware.com> > wrote: > > > > Part 1 of 2 (part 1 is autoconf changes, part 2 is C++ changes) > > > > When only a single SWR architecture is being used, this allows that > > architecture to be builtin rather than as a separate libswrARCH.so that > > gets loaded via dlopen. Since there are now several different code > > paths for each detected CPU architecture, the log output is also > > adjusted to convey where the backend is getting loaded from. > > > > This allows SWR to be used for static mesa builds which are still > > important for large HPC environments where shared libraries can impose > > unacceptable application startup times as hundreds of thousands of copies > > of the libs are loaded from a shared parallel filesystem. > > > > Based on an initial implementation by Tim Rowley. > > > > Signed-off-by: Chuck Atkins <chuck.atk...@kitware.com> > > CC: Tim Rowley <timothy.o.row...@intel.com> > > CC: Bruce Cherniak <bruce.chern...@intel.com> > > --- > > configure.ac | 12 +++++++++- > > src/gallium/drivers/swr/Makefile.am | 48 +++++++++++++++++++++++++++++- > ------- > > 2 files changed, 49 insertions(+), 11 deletions(-) > > > > diff --git a/configure.ac b/configure.ac > > index e236a3c54f..7c1fbe0ed1 100644 > > --- a/configure.ac > > +++ b/configure.ac > > @@ -2640,6 +2640,11 @@ if test -n "$with_gallium_drivers"; then > > AC_MSG_ERROR([swr enabled but no swr architectures > selected]) > > fi > > > > + # test if more than one swr arch configured > > + if test `echo $swr_archs | wc -w` -eq 1; then > > + HAVE_SWR_BUILTIN=yes > > + fi > > + > > HAVE_GALLIUM_SWR=yes > > ;; > > xvc4) > > @@ -2689,6 +2694,7 @@ AM_CONDITIONAL(HAVE_SWR_AVX, test "x$HAVE_SWR_AVX" > = xyes) > > AM_CONDITIONAL(HAVE_SWR_AVX2, test "x$HAVE_SWR_AVX2" = xyes) > > AM_CONDITIONAL(HAVE_SWR_KNL, test "x$HAVE_SWR_KNL" = xyes) > > AM_CONDITIONAL(HAVE_SWR_SKX, test "x$HAVE_SWR_SKX" = xyes) > > +AM_CONDITIONAL(HAVE_SWR_BUILTIN, test "x$HAVE_SWR_BUILTIN" = xyes) > > > > dnl We need to validate some needed dependencies for renderonly drivers. > > > > @@ -3153,7 +3159,11 @@ fi > > > > echo "" > > if test "x$HAVE_GALLIUM_SWR" != x; then > > - echo " SWR archs: $swr_archs" > > + if test "x$HAVE_SWR_BUILTIN" = xyes; then > > + echo " SWR archs: $swr_archs (builtin)" > > + else > > + echo " SWR archs: $swr_archs" > > + fi > > fi > > > > dnl Libraries > > diff --git a/src/gallium/drivers/swr/Makefile.am > b/src/gallium/drivers/swr/Makefile.am > > index c995f1b84a..69cd52d18f 100644 > > --- a/src/gallium/drivers/swr/Makefile.am > > +++ b/src/gallium/drivers/swr/Makefile.am > > @@ -29,10 +29,7 @@ noinst_LTLIBRARIES = libmesaswr.la > > # gen_knobs.* included here to provide driver access to swr configuration > > This comment no longer applies here. Please move it below with the > includes. > > > libmesaswr_la_SOURCES = \ > > $(CXX_SOURCES) \ > > - $(COMMON_CXX_SOURCES) \ > > $(JITTER_CXX_SOURCES) \ > > - rasterizer/codegen/gen_knobs.cpp \ > > - rasterizer/codegen/gen_knobs.h \ > > $(LOADER_SOURCES) > > > > COMMON_CXXFLAGS = \ > > @@ -243,8 +240,6 @@ COMMON_LDFLAGS = \ > > lib_LTLIBRARIES = > > > > if HAVE_SWR_AVX > > -lib_LTLIBRARIES += libswrAVX.la > > - > > libswrAVX_la_CXXFLAGS = \ > > $(PTHREAD_CFLAGS) \ > > $(SWR_AVX_CXXFLAGS) \ > > @@ -262,7 +257,6 @@ libswrAVX_la_LDFLAGS = \ > > endif > > > > if HAVE_SWR_AVX2 > > -lib_LTLIBRARIES += libswrAVX2.la > > libswrAVX2_la_CXXFLAGS = \ > > $(PTHREAD_CFLAGS) \ > > $(SWR_AVX2_CXXFLAGS) \ > > @@ -280,8 +274,6 @@ libswrAVX2_la_LDFLAGS = \ > > endif > > > > if HAVE_SWR_KNL > > -lib_LTLIBRARIES += libswrKNL.la > > - > > libswrKNL_la_CXXFLAGS = \ > > $(PTHREAD_CFLAGS) \ > > $(SWR_KNL_CXXFLAGS) \ > > @@ -299,8 +291,6 @@ libswrKNL_la_LDFLAGS = \ > > endif > > > > if HAVE_SWR_SKX > > -lib_LTLIBRARIES += libswrSKX.la > > - > > libswrSKX_la_CXXFLAGS = \ > > $(PTHREAD_CFLAGS) \ > > $(SWR_SKX_CXXFLAGS) \ > > @@ -317,6 +307,44 @@ libswrSKX_la_LDFLAGS = \ > > $(COMMON_LDFLAGS) > > endif > > > > +if HAVE_SWR_BUILTIN > > +libmesaswr_la_CXXFLAGS += -DHAVE_SWR_BUILTIN > > +libmesaswr_la_LIBADD = > > +if HAVE_SWR_AVX > > +noinst_LTLIBRARIES += libswrAVX.la > > +libmesaswr_la_LIBADD += libswrAVX.la > > +endif > > +if HAVE_SWR_AVX2 > > +noinst_LTLIBRARIES += libswrAVX2.la > > +libmesaswr_la_LIBADD += libswrAVX2.la > > +endif > > +if HAVE_SWR_KNL > > +noinst_LTLIBRARIES += libswrKNL.la > > +libmesaswr_la_LIBADD += libswrKNL.la > > +endif > > +if HAVE_SWR_SKX > > +noinst_LTLIBRARIES += libswrSKX.la > > +libmesaswr_la_LIBADD += libswrSKX.la > > +endif > > +else # !HAVE_SWR_BUILTIN > > Move above comment to here. > > > +libmesaswr_la_SOURCES += \ > > + $(COMMON_CXX_SOURCES) \ > > + rasterizer/codegen/gen_knobs.cpp \ > > + rasterizer/codegen/gen_knobs.h > > +if HAVE_SWR_AVX > > +lib_LTLIBRARIES += libswrAVX.la > > +endif > > +if HAVE_SWR_AVX2 > > +lib_LTLIBRARIES += libswrAVX2.la > > +endif > > +if HAVE_SWR_KNL > > +lib_LTLIBRARIES += libswrKNL.la > > +endif > > +if HAVE_SWR_SKX > > +lib_LTLIBRARIES += libswrSKX.la > > +endif > > +endif > > + > > include $(top_srcdir)/install-gallium-links.mk > > > > # Generated gen_builder.hpp is not backwards compatible. So ship only one > > -- > > 2.14.3 > > > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev