mirror of
https://gitee.com/openharmony/third_party_mesa3d
synced 2024-11-24 16:00:56 +00:00
configure/swr: add KNL and SKX architecture targets
Not built by default. Currently only builds with icc. v2: * document knl,skx possibilities for swr_archs * merge with changed loader lib selection code Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
This commit is contained in:
parent
f42186b01d
commit
1cb5a6061c
22
configure.ac
22
configure.ac
@ -2357,7 +2357,7 @@ dnl Architectures to build SWR library for
|
||||
AC_ARG_WITH([swr-archs],
|
||||
[AS_HELP_STRING([--with-swr-archs@<:@=DIRS...@:>@],
|
||||
[comma delimited swr architectures list, e.g.
|
||||
"avx,avx2" @<:@default="avx,avx2"@:>@])],
|
||||
"avx,avx2,knl,skx" @<:@default="avx,avx2"@:>@])],
|
||||
[with_swr_archs="$withval"],
|
||||
[with_swr_archs="avx,avx2"])
|
||||
|
||||
@ -2521,6 +2521,20 @@ if test -n "$with_gallium_drivers"; then
|
||||
AC_SUBST([SWR_AVX2_CXXFLAGS])
|
||||
HAVE_SWR_AVX2=yes
|
||||
;;
|
||||
xknl)
|
||||
swr_require_cxx_feature_flags "KNL" "defined(__AVX512F__) && defined(__AVX512ER__)" \
|
||||
",-march=knl,-xMIC-AVX512" \
|
||||
SWR_KNL_CXXFLAGS
|
||||
AC_SUBST([SWR_KNL_CXXFLAGS])
|
||||
HAVE_SWR_KNL=yes
|
||||
;;
|
||||
xskx)
|
||||
swr_require_cxx_feature_flags "SKX" "defined(__AVX512F__) && defined(__AVX512BW__)" \
|
||||
",-march=skylake-avx512,-xCORE-AVX512" \
|
||||
SWR_SKX_CXXFLAGS
|
||||
AC_SUBST([SWR_SKX_CXXFLAGS])
|
||||
HAVE_SWR_SKX=yes
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([unknown SWR build architecture '$arch'])
|
||||
;;
|
||||
@ -2528,7 +2542,9 @@ if test -n "$with_gallium_drivers"; then
|
||||
done
|
||||
|
||||
if test "x$HAVE_SWR_AVX" != xyes -a \
|
||||
"x$HAVE_SWR_AVX2" != xyes; then
|
||||
"x$HAVE_SWR_AVX2" != xyes -a \
|
||||
"x$HAVE_SWR_KNL" != xyes -a \
|
||||
"x$HAVE_SWR_SKX" != xyes -a; then
|
||||
AC_MSG_ERROR([swr enabled but no swr architectures selected])
|
||||
fi
|
||||
|
||||
@ -2571,6 +2587,8 @@ fi
|
||||
|
||||
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)
|
||||
|
||||
dnl We need to validate some needed dependencies for renderonly drivers.
|
||||
|
||||
|
@ -63,6 +63,14 @@ if HAVE_SWR_AVX2
|
||||
libmesaswr_la_CXXFLAGS += -DHAVE_SWR_AVX2
|
||||
endif
|
||||
|
||||
if HAVE_SWR_KNL
|
||||
libmesaswr_la_CXXFLAGS += -DHAVE_SWR_KNL
|
||||
endif
|
||||
|
||||
if HAVE_SWR_SKX
|
||||
libmesaswr_la_CXXFLAGS += -DHAVE_SWR_SKX
|
||||
endif
|
||||
|
||||
COMMON_SOURCES = \
|
||||
$(ARCHRAST_CXX_SOURCES) \
|
||||
$(COMMON_CXX_SOURCES) \
|
||||
@ -263,6 +271,36 @@ libswrAVX2_la_LDFLAGS = \
|
||||
$(COMMON_LDFLAGS)
|
||||
endif
|
||||
|
||||
if HAVE_SWR_KNL
|
||||
lib_LTLIBRARIES += libswrKNL.la
|
||||
|
||||
libswrKNL_la_CXXFLAGS = \
|
||||
$(SWR_KNL_CXXFLAGS) \
|
||||
-DKNOB_ARCH=KNOB_ARCH_AVX512 -DAVX512F_STRICT \
|
||||
$(COMMON_CXXFLAGS)
|
||||
|
||||
libswrKNL_la_SOURCES = \
|
||||
$(COMMON_SOURCES)
|
||||
|
||||
libswrKNL_la_LDFLAGS = \
|
||||
$(COMMON_LDFLAGS)
|
||||
endif
|
||||
|
||||
if HAVE_SWR_SKX
|
||||
lib_LTLIBRARIES += libswrSKX.la
|
||||
|
||||
libswrSKX_la_CXXFLAGS = \
|
||||
$(SWR_SKX_CXXFLAGS) \
|
||||
-DKNOB_ARCH=KNOB_ARCH_AVX512 \
|
||||
$(COMMON_CXXFLAGS)
|
||||
|
||||
libswrSKX_la_SOURCES = \
|
||||
$(COMMON_SOURCES)
|
||||
|
||||
libswrSKX_la_LDFLAGS = \
|
||||
$(COMMON_LDFLAGS)
|
||||
endif
|
||||
|
||||
include $(top_srcdir)/install-gallium-links.mk
|
||||
|
||||
# Generated gen_builder.hpp is not backwards compatible. So ship only one
|
||||
|
@ -38,6 +38,26 @@ swr_create_screen(struct sw_winsys *winsys)
|
||||
|
||||
util_cpu_detect();
|
||||
|
||||
if (!strlen(filename) &&
|
||||
util_cpu_caps.has_avx512f && util_cpu_caps.has_avx512er) {
|
||||
#if HAVE_SWR_KNL
|
||||
fprintf(stderr, "KNL ");
|
||||
sprintf(filename, "%s%s%s", UTIL_DL_PREFIX, "swrKNL", UTIL_DL_EXT);
|
||||
#else
|
||||
fprintf(stderr, "KNL (not built) ");
|
||||
#endif
|
||||
}
|
||||
|
||||
if (!strlen(filename) &&
|
||||
util_cpu_caps.has_avx512f && util_cpu_caps.has_avx512bw) {
|
||||
#if HAVE_SWR_SKX
|
||||
fprintf(stderr, "SKX ");
|
||||
sprintf(filename, "%s%s%s", UTIL_DL_PREFIX, "swrSKX", UTIL_DL_EXT);
|
||||
#else
|
||||
fprintf(stderr, "SKX (not built) ");
|
||||
#endif
|
||||
}
|
||||
|
||||
if (!strlen(filename) && util_cpu_caps.has_avx2) {
|
||||
#if HAVE_SWR_AVX2
|
||||
fprintf(stderr, "AVX2 ");
|
||||
|
Loading…
Reference in New Issue
Block a user