--- /usr/portage/media-libs/mesa/mesa-18.3.2.ebuild 2019-01-28 07:09:29.000000000 +0300 +++ /usr/local/portage/media-libs/mesa/mesa-18.3.2.ebuild 2019-01-30 19:28:07.001804146 +0300 @@ -317,6 +317,12 @@ pkg_setup() { python-any-r1_pkg_setup } +src_prepare(){ + default + # must be regenerated + rm "src/gallium/drivers/swr/rasterizer/jitter/gen_builder.hpp" || die +} + multilib_src_configure() { local emesonargs=() @@ -441,6 +447,27 @@ multilib_src_configure() { fi if use gallium; then + if [[ ${ABI} == amd64 ]] && use llvm; then + local i f swr= + for i in knl skx avx2 avx; do + case ${i} in + knl)f=AVX512F;; + skx)f=AVX512BW;; + *)f=${i^^};; + esac + echo "#ifndef __${f}__ +#error +#endif"|$(tc-getCPP) - -o /dev/null ${CXXFLAGS} 2>/dev/null || continue + swr+=,${i} + break + done + swr=${swr#,} + if [[ -n "${swr}" ]]; then + gallium_enable -- swr + emesonargs+=( -Dswr-arches=${swr} ) + fi + + fi gallium_enable -- swrast emesonargs+=( -Dosmesa=$(usex osmesa gallium none) ) else