[Mesa-dev] [Mesa-stable] [PATCH v2] st: require compatible driver in autotools
Dylan Baker
dylan at pnwbakers.com
Mon Apr 22 21:48:59 UTC 2019
Emil, I'll pull this if you want, 100% up to you.
Dylan
Quoting Alyssa Ross (2019-04-19 11:53:24)
> The meson build system already has these checks. I've just copied them
> to autotools.
>
> Without this, state trackers could be enabled when building with the
> following set of options, which resulted in a compile error due to VL
> being built without DRM.
>
> --enable-autotools
> --with-platforms=x11
> --with-dri-drivers=
> --with-gallium-drivers=swrast
> --disable-glx
> --disable-dri3
> --disable-gbm
>
> The compile error was:
>
> vl/vl_winsys_dri.c:36:10: fatal error: xf86drm.h: No such file or directory
> #include <xf86drm.h>
> ^~~~~~~~~~~
> compilation terminated.
>
> Cc: mesa-stable at lists.freedesktop.org
> ---
> This version of the patch adds the check to OMX tizonia, which I had
> previously missed.
>
> configure.ac | 341 +++++++++++++++++++++++++++------------------------
> 1 file changed, 183 insertions(+), 158 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 1ef68fe68e6..ee8658ffc8c 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -2341,6 +2341,164 @@ if test -n "$with_gallium_drivers" -a "x$with_gallium_drivers" != xswrast; then
> fi
> fi
>
> +dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
> +if test -n "$with_gallium_drivers"; then
> + gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
> + for driver in $gallium_drivers; do
> + case "x$driver" in
> + xsvga)
> + HAVE_GALLIUM_SVGA=yes
> + require_libdrm "svga"
> + ;;
> + xi915)
> + HAVE_GALLIUM_I915=yes
> + PKG_CHECK_MODULES([I915], [libdrm >= $LIBDRM_INTEL_REQUIRED libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
> + require_libdrm "Gallium i915"
> + ;;
> + xr300)
> + HAVE_GALLIUM_R300=yes
> + PKG_CHECK_MODULES([RADEON], [libdrm >= $LIBDRM_RADEON_REQUIRED libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
> + require_libdrm "r300"
> + r300_require_llvm "r300"
> + ;;
> + xr600)
> + HAVE_GALLIUM_R600=yes
> + PKG_CHECK_MODULES([RADEON], [libdrm >= $LIBDRM_RADEON_REQUIRED libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
> + require_libdrm "r600"
> + if test "x$enable_llvm" = xyes; then
> + radeon_llvm_check $LLVM_REQUIRED_R600 "r600"
> +
> + llvm_add_component "asmparser" "r600"
> + llvm_add_component "bitreader" "r600"
> + fi
> + ;;
> + xradeonsi)
> + HAVE_GALLIUM_RADEONSI=yes
> + PKG_CHECK_MODULES([RADEON], [libdrm >= $LIBDRM_RADEON_REQUIRED libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
> + PKG_CHECK_MODULES([AMDGPU], [libdrm >= $LIBDRM_AMDGPU_REQUIRED libdrm_amdgpu >= $LIBDRM_AMDGPU_REQUIRED])
> + require_libdrm "radeonsi"
> + radeon_llvm_check $LLVM_REQUIRED_RADEONSI "radeonsi"
> + if test "x$enable_egl" = xyes; then
> + require_basic_egl "radeonsi"
> + fi
> + ;;
> + xnouveau)
> + HAVE_GALLIUM_NOUVEAU=yes
> + PKG_CHECK_MODULES([NOUVEAU], [libdrm >= $LIBDRM_NOUVEAU_REQUIRED libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
> + require_libdrm "nouveau"
> + ;;
> + xfreedreno)
> + HAVE_GALLIUM_FREEDRENO=yes
> + require_libdrm "freedreno"
> + ;;
> + xetnaviv)
> + HAVE_GALLIUM_ETNAVIV=yes
> + PKG_CHECK_MODULES([ETNAVIV], [libdrm >= $LIBDRM_ETNAVIV_REQUIRED libdrm_etnaviv >= $LIBDRM_ETNAVIV_REQUIRED])
> + require_libdrm "etnaviv"
> + ;;
> + xtegra)
> + HAVE_GALLIUM_TEGRA=yes
> + require_libdrm "tegra"
> + ;;
> + xswrast)
> + HAVE_GALLIUM_SOFTPIPE=yes
> + if test "x$enable_llvm" = xyes; then
> + HAVE_GALLIUM_LLVMPIPE=yes
> + fi
> + ;;
> + xswr)
> + llvm_require_version $LLVM_REQUIRED_SWR "swr"
> +
> + if test "x$HAVE_CXX11" != "xyes"; then
> + AC_MSG_ERROR([swr requires c++11 support])
> + fi
> +
> + swr_require_cxx_feature_flags "AVX" "defined(__AVX__)" \
> + ",-target-cpu=sandybridge,-mavx,-march=core-avx,-tp=sandybridge" \
> + SWR_AVX_CXXFLAGS
> + AC_SUBST([SWR_AVX_CXXFLAGS])
> +
> + swr_archs=`IFS=', '; echo $with_swr_archs`
> + for arch in $swr_archs; do
> + case "x$arch" in
> + xavx)
> + HAVE_SWR_AVX=yes
> + ;;
> + xavx2)
> + swr_require_cxx_feature_flags "AVX2" "defined(__AVX2__)" \
> + ",-target-cpu=haswell,-mavx2 -mfma -mbmi2 -mf16c,-march=core-avx2,-tp=haswell" \
> + SWR_AVX2_CXXFLAGS
> + AC_SUBST([SWR_AVX2_CXXFLAGS])
> + HAVE_SWR_AVX2=yes
> + ;;
> + xknl)
> + swr_require_cxx_feature_flags "KNL" "defined(__AVX512F__) && defined(__AVX512ER__)" \
> + ",-target-cpu=mic-knl,-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__)" \
> + ",-target-cpu=x86-skylake,-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'])
> + ;;
> + esac
> + done
> +
> + if test "x$HAVE_SWR_AVX" != xyes -a \
> + "x$HAVE_SWR_AVX2" != xyes -a \
> + "x$HAVE_SWR_KNL" != xyes -a \
> + "x$HAVE_SWR_SKX" != xyes; 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)
> + HAVE_GALLIUM_VC4=yes
> + PKG_CHECK_MODULES([VC4], [libdrm >= $LIBDRM_VC4_REQUIRED])
> +
> + PKG_CHECK_MODULES([SIMPENROSE], [simpenrose],
> + [USE_VC4_SIMULATOR=yes;
> + DEFINES="$DEFINES -DUSE_VC4_SIMULATOR"],
> + [USE_VC4_SIMULATOR=no])
> + ;;
> + xv3d)
> + HAVE_GALLIUM_V3D=yes
> +
> + PKG_CHECK_MODULES([V3D_SIMULATOR], [v3dv3],
> + [USE_V3D_SIMULATOR=yes;
> + DEFINES="$DEFINES -DUSE_V3D_SIMULATOR"],
> + [USE_V3D_SIMULATOR=no])
> + ;;
> + xkmsro)
> + HAVE_GALLIUM_KMSRO=yes
> + ;;
> + xvirgl)
> + HAVE_GALLIUM_VIRGL=yes
> + require_libdrm "virgl"
> + if test "x$enable_egl" = xyes; then
> + require_basic_egl "virgl"
> + fi
> + ;;
> + *)
> + AC_MSG_ERROR([Unknown Gallium driver: $driver])
> + ;;
> + esac
> + done
> +fi
> +
> if test "x$enable_dri" = xyes -o \
> "x$enable_xvmc" = xyes -o \
> "x$enable_vdpau" = xyes -o \
> @@ -2367,6 +2525,10 @@ if test "x$enable_xvmc" = xyes; then
> if test "x$have_xvmc_platform" != xyes; then
> AC_MSG_ERROR([XVMC requires the x11 platforms])
> fi
> + if test "x$HAVE_GALLIUM_R600" != xyes -a \
> + "x$HAVE_GALLIUM_NOUVEAU" != "xyes"; then
> + AC_MSG_ERROR([XVMC state tracker requires at least one of the r600 or nouveau gallium drivers])
> + fi
> PKG_CHECK_MODULES([XVMC], [xvmc >= $XVMC_REQUIRED])
> gallium_st="$gallium_st xvmc"
> fi
> @@ -2376,6 +2538,12 @@ if test "x$enable_vdpau" = xyes; then
> if test "x$have_vdpau_platform" != xyes; then
> AC_MSG_ERROR([VDPAU requires the x11 platforms])
> fi
> + if test "x$HAVE_GALLIUM_R300" != xyes -a \
> + "x$HAVE_GALLIUM_R600" != xyes -a \
> + "x$HAVE_GALLIUM_RADEONSI" != xyes -a \
> + "x$HAVE_GALLIUM_NOUVEAU" != "xyes"; then
> + AC_MSG_ERROR([VDPAU state tracker requires at least one of the r300, r600, radeonsi or nouveau gallium drivers])
> + fi
> PKG_CHECK_MODULES([VDPAU], [vdpau >= $VDPAU_REQUIRED])
> gallium_st="$gallium_st vdpau"
> DEFINES="$DEFINES -DHAVE_ST_VDPAU"
> @@ -2386,6 +2554,11 @@ if test "x$enable_omx_bellagio" = xyes; then
> if test "x$have_omx_platform" != xyes; then
> AC_MSG_ERROR([OMX requires at least one of the x11 or drm platforms])
> fi
> + if test "x$HAVE_GALLIUM_R600" != xyes -a \
> + "x$HAVE_GALLIUM_RADEONSI" != xyes -a \
> + "x$HAVE_GALLIUM_NOUVEAU" != "xyes"; then
> + AC_MSG_ERROR([OMX state tracker requires at least one of the r600, radeonsi or nouveau gallium drivers])
> + fi
> PKG_CHECK_MODULES([OMX_BELLAGIO], [libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED])
> gallium_st="$gallium_st omx_bellagio"
> AC_DEFINE([ENABLE_ST_OMX_BELLAGIO], 1, [Use Bellagio for OMX IL])
> @@ -2398,6 +2571,11 @@ if test "x$enable_omx_tizonia" = xyes; then
> if test "x$have_omx_platform" != xyes; then
> AC_MSG_ERROR([OMX requires at least one of the x11 or drm platforms])
> fi
> + if test "x$HAVE_GALLIUM_R600" != xyes -a \
> + "x$HAVE_GALLIUM_RADEONSI" != xyes -a \
> + "x$HAVE_GALLIUM_NOUVEAU" != "xyes"; then
> + AC_MSG_ERROR([OMX state tracker requires at least one of the r600, radeonsi or nouveau gallium drivers])
> + fi
> PKG_CHECK_MODULES([OMX_TIZONIA],
> [libtizonia >= $LIBOMXIL_TIZONIA_REQUIRED
> tizilheaders >= $LIBOMXIL_TIZONIA_REQUIRED
> @@ -2413,6 +2591,11 @@ if test "x$enable_va" = xyes; then
> if test "x$have_va_platform" != xyes; then
> AC_MSG_ERROR([VA requires at least one of the x11 drm or wayland platforms])
> fi
> + if test "x$HAVE_GALLIUM_R600" != xyes -a \
> + "x$HAVE_GALLIUM_RADEONSI" != xyes -a \
> + "x$HAVE_GALLIUM_NOUVEAU" != "xyes"; then
> + AC_MSG_ERROR([VA state tracker requires at least one of the r600, radeonsi or nouveau gallium drivers])
> + fi
> PKG_CHECK_MODULES([VA], [libva >= $LIBVA_REQUIRED])
> gallium_st="$gallium_st va"
> fi
> @@ -2686,164 +2869,6 @@ swr_require_cxx_feature_flags() {
> return 1
> }
>
> -dnl Duplicates in GALLIUM_DRIVERS_DIRS are removed by sorting it after this block
> -if test -n "$with_gallium_drivers"; then
> - gallium_drivers=`IFS=', '; echo $with_gallium_drivers`
> - for driver in $gallium_drivers; do
> - case "x$driver" in
> - xsvga)
> - HAVE_GALLIUM_SVGA=yes
> - require_libdrm "svga"
> - ;;
> - xi915)
> - HAVE_GALLIUM_I915=yes
> - PKG_CHECK_MODULES([I915], [libdrm >= $LIBDRM_INTEL_REQUIRED libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
> - require_libdrm "Gallium i915"
> - ;;
> - xr300)
> - HAVE_GALLIUM_R300=yes
> - PKG_CHECK_MODULES([RADEON], [libdrm >= $LIBDRM_RADEON_REQUIRED libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
> - require_libdrm "r300"
> - r300_require_llvm "r300"
> - ;;
> - xr600)
> - HAVE_GALLIUM_R600=yes
> - PKG_CHECK_MODULES([RADEON], [libdrm >= $LIBDRM_RADEON_REQUIRED libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
> - require_libdrm "r600"
> - if test "x$enable_llvm" = xyes; then
> - radeon_llvm_check $LLVM_REQUIRED_R600 "r600"
> -
> - llvm_add_component "asmparser" "r600"
> - llvm_add_component "bitreader" "r600"
> - fi
> - ;;
> - xradeonsi)
> - HAVE_GALLIUM_RADEONSI=yes
> - PKG_CHECK_MODULES([RADEON], [libdrm >= $LIBDRM_RADEON_REQUIRED libdrm_radeon >= $LIBDRM_RADEON_REQUIRED])
> - PKG_CHECK_MODULES([AMDGPU], [libdrm >= $LIBDRM_AMDGPU_REQUIRED libdrm_amdgpu >= $LIBDRM_AMDGPU_REQUIRED])
> - require_libdrm "radeonsi"
> - radeon_llvm_check $LLVM_REQUIRED_RADEONSI "radeonsi"
> - if test "x$enable_egl" = xyes; then
> - require_basic_egl "radeonsi"
> - fi
> - ;;
> - xnouveau)
> - HAVE_GALLIUM_NOUVEAU=yes
> - PKG_CHECK_MODULES([NOUVEAU], [libdrm >= $LIBDRM_NOUVEAU_REQUIRED libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
> - require_libdrm "nouveau"
> - ;;
> - xfreedreno)
> - HAVE_GALLIUM_FREEDRENO=yes
> - require_libdrm "freedreno"
> - ;;
> - xetnaviv)
> - HAVE_GALLIUM_ETNAVIV=yes
> - PKG_CHECK_MODULES([ETNAVIV], [libdrm >= $LIBDRM_ETNAVIV_REQUIRED libdrm_etnaviv >= $LIBDRM_ETNAVIV_REQUIRED])
> - require_libdrm "etnaviv"
> - ;;
> - xtegra)
> - HAVE_GALLIUM_TEGRA=yes
> - require_libdrm "tegra"
> - ;;
> - xswrast)
> - HAVE_GALLIUM_SOFTPIPE=yes
> - if test "x$enable_llvm" = xyes; then
> - HAVE_GALLIUM_LLVMPIPE=yes
> - fi
> - ;;
> - xswr)
> - llvm_require_version $LLVM_REQUIRED_SWR "swr"
> -
> - if test "x$HAVE_CXX11" != "xyes"; then
> - AC_MSG_ERROR([swr requires c++11 support])
> - fi
> -
> - swr_require_cxx_feature_flags "AVX" "defined(__AVX__)" \
> - ",-target-cpu=sandybridge,-mavx,-march=core-avx,-tp=sandybridge" \
> - SWR_AVX_CXXFLAGS
> - AC_SUBST([SWR_AVX_CXXFLAGS])
> -
> - swr_archs=`IFS=', '; echo $with_swr_archs`
> - for arch in $swr_archs; do
> - case "x$arch" in
> - xavx)
> - HAVE_SWR_AVX=yes
> - ;;
> - xavx2)
> - swr_require_cxx_feature_flags "AVX2" "defined(__AVX2__)" \
> - ",-target-cpu=haswell,-mavx2 -mfma -mbmi2 -mf16c,-march=core-avx2,-tp=haswell" \
> - SWR_AVX2_CXXFLAGS
> - AC_SUBST([SWR_AVX2_CXXFLAGS])
> - HAVE_SWR_AVX2=yes
> - ;;
> - xknl)
> - swr_require_cxx_feature_flags "KNL" "defined(__AVX512F__) && defined(__AVX512ER__)" \
> - ",-target-cpu=mic-knl,-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__)" \
> - ",-target-cpu=x86-skylake,-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'])
> - ;;
> - esac
> - done
> -
> - if test "x$HAVE_SWR_AVX" != xyes -a \
> - "x$HAVE_SWR_AVX2" != xyes -a \
> - "x$HAVE_SWR_KNL" != xyes -a \
> - "x$HAVE_SWR_SKX" != xyes; 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)
> - HAVE_GALLIUM_VC4=yes
> - PKG_CHECK_MODULES([VC4], [libdrm >= $LIBDRM_VC4_REQUIRED])
> -
> - PKG_CHECK_MODULES([SIMPENROSE], [simpenrose],
> - [USE_VC4_SIMULATOR=yes;
> - DEFINES="$DEFINES -DUSE_VC4_SIMULATOR"],
> - [USE_VC4_SIMULATOR=no])
> - ;;
> - xv3d)
> - HAVE_GALLIUM_V3D=yes
> -
> - PKG_CHECK_MODULES([V3D_SIMULATOR], [v3dv3],
> - [USE_V3D_SIMULATOR=yes;
> - DEFINES="$DEFINES -DUSE_V3D_SIMULATOR"],
> - [USE_V3D_SIMULATOR=no])
> - ;;
> - xkmsro)
> - HAVE_GALLIUM_KMSRO=yes
> - ;;
> - xvirgl)
> - HAVE_GALLIUM_VIRGL=yes
> - require_libdrm "virgl"
> - if test "x$enable_egl" = xyes; then
> - require_basic_egl "virgl"
> - fi
> - ;;
> - *)
> - AC_MSG_ERROR([Unknown Gallium driver: $driver])
> - ;;
> - esac
> - done
> -fi
> -
> # XXX: Keep in sync with LLVM_REQUIRED_SWR
> AM_CONDITIONAL(SWR_INVALID_LLVM_VERSION, test "x$LLVM_VERSION" != x7.0.0 -a \
> "x$LLVM_VERSION" != x7.0.1)
> --
> 2.19.2
>
> _______________________________________________
> mesa-stable mailing list
> mesa-stable at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-stable
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20190422/919829b0/attachment-0001.sig>
More information about the mesa-dev
mailing list