[Mesa-dev] [PATCH 2/2] radv: Add new flag for LLVM dependecies with vulkan
Tobias Droste
tdroste at gmx.de
Sun Oct 2 19:45:19 UTC 2016
This reuse the same logic gallium uses to determine if LLVM is needed or
not:
--enable-vulkan-llvm is set to yes if at least one vulkan driver is
active and the host is i3*6 or x86_64.
To build vulkan drivers without LLVM (e.g. intel) one has to add
--disable-vulkan-llvm.
In order to make this all work the vulkan driver check has to move
either diretcly below or directly above the gallium driver checks.
Move them below the gallium driver stuff.
Signed-off-by: Tobias Droste <tdroste at gmx.de>
---
configure.ac | 148 +++++++++++++++++++++++++++++++++--------------------------
1 file changed, 84 insertions(+), 64 deletions(-)
diff --git a/configure.ac b/configure.ac
index 1e80a49..ea07cc3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1625,67 +1625,6 @@ if test -n "$with_dri_drivers"; then
fi
-#
-# Vulkan driver configuration
-#
-
-AC_ARG_WITH([vulkan-drivers],
- [AS_HELP_STRING([--with-vulkan-drivers@<:@=DIRS...@:>@],
- [comma delimited Vulkan drivers list, e.g.
- "intel"
- @<:@default=no@:>@])],
- [with_vulkan_drivers="$withval"],
- [with_vulkan_drivers="no"])
-
-# Doing '--without-vulkan-drivers' will set this variable to 'no'. Clear it
-# here so that the script doesn't choke on an unknown driver name later.
-case "x$with_vulkan_drivers" in
- xyes) with_vulkan_drivers="$VULKAN_DRIVERS_DEFAULT" ;;
- xno) with_vulkan_drivers='' ;;
-esac
-
-AC_ARG_WITH([vulkan-icddir],
- [AS_HELP_STRING([--with-vulkan-icddir=DIR],
- [directory for the Vulkan driver icd files @<:@${datarootdir}/vulkan/icd.d@:>@])],
- [VULKAN_ICD_INSTALL_DIR="$withval"],
- [VULKAN_ICD_INSTALL_DIR='${datarootdir}/vulkan/icd.d'])
-AC_SUBST([VULKAN_ICD_INSTALL_DIR])
-
-AC_ARG_ENABLE([vulkan-icd-full-driver-path],
- [AS_HELP_STRING([--disable-vulkan-icd-full-driver-path],
- [create Vulkan ICD files with just a .so name and no path])],
- [vulkan_icd_driver_path="$enableval"],
- [vulkan_icd_driver_path="yes"])
-AM_CONDITIONAL(VULKAN_ICD_DRIVER_PATH, test "x$vulkan_icd_driver_path" = xyes)
-
-if test -n "$with_vulkan_drivers"; then
- VULKAN_DRIVERS=`IFS=', '; echo $with_vulkan_drivers`
- for driver in $VULKAN_DRIVERS; do
- case "x$driver" in
- xintel)
- if test "x$HAVE_I965_DRI" != xyes; then
- AC_MSG_ERROR([Intel Vulkan driver requires the i965 dri driver])
- fi
- if test "x$with_sha1" == "x"; then
- AC_MSG_ERROR([Intel Vulkan driver requires SHA1])
- fi
- HAVE_INTEL_VULKAN=yes;
-
- ;;
- xradeon)
- PKG_CHECK_MODULES([AMDGPU], [libdrm_amdgpu >= $LIBDRM_AMDGPU_REQUIRED])
- radeon_llvm_check "radv" "3" "9" "0"
- HAVE_RADEON_VULKAN=yes;
- ;;
- *)
- AC_MSG_ERROR([Vulkan driver '$driver' does not exist])
- ;;
- esac
- done
- VULKAN_DRIVERS=`echo $VULKAN_DRIVERS|tr " " "\n"|sort -u|tr "\n" " "`
-fi
-
-
AM_CONDITIONAL(NEED_MEGADRIVER, test -n "$DRI_DIRS")
AM_CONDITIONAL(NEED_LIBMESA, test "x$enable_glx" = xxlib -o \
"x$enable_osmesa" = xyes -o \
@@ -2104,6 +2043,12 @@ AC_ARG_ENABLE([gallium-llvm],
[enable_gallium_llvm="$enableval"],
[enable_gallium_llvm=auto])
+AC_ARG_ENABLE([vulkan-llvm],
+ [AS_HELP_STRING([--enable-vulkan-llvm],
+ [build Vulkan LLVM support @<:@default=enabled on x86/x86_64@:>@])],
+ [enable_vulkan_llvm="$enableval"],
+ [enable_vulkan_llvm=auto])
+
AC_ARG_ENABLE([llvm-shared-libs],
[AS_HELP_STRING([--enable-llvm-shared-libs],
[link with LLVM shared libraries @<:@default=enabled@:>@])],
@@ -2155,12 +2100,20 @@ llvm_check_version_for() {
if test -z "$with_gallium_drivers"; then
enable_gallium_llvm=no
fi
+if test -z "$with_vulkan_drivers"; then
+ enable_vulkan_llvm=no
+fi
if test "x$enable_gallium_llvm" = xauto; then
case "$host_cpu" in
i*86|x86_64|amd64) enable_gallium_llvm=yes;;
esac
fi
-if test "x$enable_gallium_llvm" = xyes || test "x$HAVE_RADEON_VULKAN" = xyes; then
+if test "x$enable_vulkan_llvm" = xauto; then
+ case "$host_cpu" in
+ i*86|x86_64|amd64) enable_vulkan_llvm=yes;;
+ esac
+fi
+if test "x$enable_gallium_llvm" = xyes || test "x$enable_vulkan_llvm" = xyes; then
if test -n "$llvm_prefix"; then
AC_PATH_TOOL([LLVM_CONFIG], [llvm-config], [no], ["$llvm_prefix/bin"])
else
@@ -2326,8 +2279,14 @@ radeon_llvm_check() {
else
amdgpu_llvm_target_name='amdgpu'
fi
- if test "x$enable_gallium_llvm" != "xyes"; then
- AC_MSG_ERROR([--enable-gallium-llvm is required when building $1])
+ if test "x$5" == "xvulkan"; then
+ if test "x$enable_vulkan_llvm" != "xyes"; then
+ AC_MSG_ERROR([--enable-vulkan-llvm is required when building $1])
+ fi
+ else
+ if test "x$enable_gallium_llvm" != "xyes"; then
+ AC_MSG_ERROR([--enable-gallium-llvm is required when building $1])
+ fi
fi
llvm_check_version_for $2 $3 $4 $1
if test true && $LLVM_CONFIG --targets-built | grep -iqvw $amdgpu_llvm_target_name ; then
@@ -2499,6 +2458,67 @@ if test -n "$with_gallium_drivers"; then
done
fi
+
+#
+# Vulkan driver configuration
+#
+
+AC_ARG_WITH([vulkan-drivers],
+ [AS_HELP_STRING([--with-vulkan-drivers@<:@=DIRS...@:>@],
+ [comma delimited Vulkan drivers list, e.g.
+ "intel"
+ @<:@default=no@:>@])],
+ [with_vulkan_drivers="$withval"],
+ [with_vulkan_drivers="no"])
+
+# Doing '--without-vulkan-drivers' will set this variable to 'no'. Clear it
+# here so that the script doesn't choke on an unknown driver name later.
+case "x$with_vulkan_drivers" in
+ xyes) with_vulkan_drivers="$VULKAN_DRIVERS_DEFAULT" ;;
+ xno) with_vulkan_drivers='' ;;
+esac
+
+AC_ARG_WITH([vulkan-icddir],
+ [AS_HELP_STRING([--with-vulkan-icddir=DIR],
+ [directory for the Vulkan driver icd files @<:@${datarootdir}/vulkan/icd.d@:>@])],
+ [VULKAN_ICD_INSTALL_DIR="$withval"],
+ [VULKAN_ICD_INSTALL_DIR='${datarootdir}/vulkan/icd.d'])
+AC_SUBST([VULKAN_ICD_INSTALL_DIR])
+
+AC_ARG_ENABLE([vulkan-icd-full-driver-path],
+ [AS_HELP_STRING([--disable-vulkan-icd-full-driver-path],
+ [create Vulkan ICD files with just a .so name and no path])],
+ [vulkan_icd_driver_path="$enableval"],
+ [vulkan_icd_driver_path="yes"])
+AM_CONDITIONAL(VULKAN_ICD_DRIVER_PATH, test "x$vulkan_icd_driver_path" = xyes)
+
+if test -n "$with_vulkan_drivers"; then
+ VULKAN_DRIVERS=`IFS=', '; echo $with_vulkan_drivers`
+ for driver in $VULKAN_DRIVERS; do
+ case "x$driver" in
+ xintel)
+ if test "x$HAVE_I965_DRI" != xyes; then
+ AC_MSG_ERROR([Intel Vulkan driver requires the i965 dri driver])
+ fi
+ if test "x$with_sha1" == "x"; then
+ AC_MSG_ERROR([Intel Vulkan driver requires SHA1])
+ fi
+ HAVE_INTEL_VULKAN=yes;
+
+ ;;
+ xradeon)
+ PKG_CHECK_MODULES([AMDGPU], [libdrm_amdgpu >= $LIBDRM_AMDGPU_REQUIRED])
+ radeon_llvm_check "radv" "3" "9" "0" "vulkan"
+ HAVE_RADEON_VULKAN=yes;
+ ;;
+ *)
+ AC_MSG_ERROR([Vulkan driver '$driver' does not exist])
+ ;;
+ esac
+ done
+ VULKAN_DRIVERS=`echo $VULKAN_DRIVERS|tr " " "\n"|sort -u|tr "\n" " "`
+fi
+
dnl Set LLVM_LIBS - This is done after the driver configuration so
dnl that drivers can add additional components to LLVM_COMPONENTS.
dnl Previously, gallium drivers were updating LLVM_LIBS directly
--
2.10.0
More information about the mesa-dev
mailing list