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

Reply via email to