[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