diff options
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/drivers/swr/Makefile.am | 38 | ||||
-rw-r--r-- | src/gallium/drivers/swr/swr_loader.cpp | 20 |
2 files changed, 58 insertions, 0 deletions
diff --git a/src/gallium/drivers/swr/Makefile.am b/src/gallium/drivers/swr/Makefile.am index f38ce7b1d97..64950214572 100644 --- a/src/gallium/drivers/swr/Makefile.am +++ b/src/gallium/drivers/swr/Makefile.am @@ -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 diff --git a/src/gallium/drivers/swr/swr_loader.cpp b/src/gallium/drivers/swr/swr_loader.cpp index 4aa850a6b8d..e205fe2d7ef 100644 --- a/src/gallium/drivers/swr/swr_loader.cpp +++ b/src/gallium/drivers/swr/swr_loader.cpp @@ -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 "); |