From ca16373a2bedfaf5d5f1b668f080cda91d96171c Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Tue, 29 Mar 2016 12:00:24 -0700 Subject: [PATCH] configure: Add initial support for enabling Vulkan drivers --- configure.ac | 68 +++++++++++++++++++++++++++++++++++++++++-- src/Makefile.am | 2 +- src/intel/Makefile.am | 6 +++- 3 files changed, 72 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac index 24c069f23a3..0d3f0ff3c9d 100644 --- a/configure.ac +++ b/configure.ac @@ -1545,6 +1545,59 @@ if test -n "$with_dri_drivers"; then DRI_DIRS=`echo $DRI_DIRS|tr " " "\n"|sort -u|tr "\n" " "` fi + +# +# Vulkan driver configuration +# + +# Keep this in sync with the --with-vulkan-drivers help string default value +VULKAN_DRIVERS_DEFAULT="intel" + +AC_ARG_WITH([vulkan-drivers], + [AS_HELP_STRING([--with-vulkan-drivers@<:@=DIRS...@:>@], + [comma delimited Vulkan drivers list, e.g. + "intel" + @<:@default=intel@:>@])], + [with_vulkan_drivers="$withval"], + [with_vulkan_drivers="$VULKAN_DRIVERS_DEFAULT"]) + +# 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 "$with_vulkan_drivers" in + yes) with_vulkan_drivers="$VULKAN_DRIVERS_DEFAULT" ;; + no) with_vulkan_drivers='' ;; +esac + +AC_ARG_WITH([vulkan-icddir], + [AS_HELP_STRING([--with-vulkan-icddir=DIR], + [directory for the Vulkan driver icd files @<:@${libdir}/dri@:>@])], + [VULKAN_ICD_INSTALL_DIR="$withval"], + [VULKAN_ICD_INSTALL_DIR='${sysconfdir}/vulkan/icd.d']) +AC_SUBST([VULKAN_ICD_INSTALL_DIR]) + +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; + + ;; + *) + 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_xlib_glx" = xyes -o \ "x$enable_osmesa" = xyes -o \ @@ -1632,8 +1685,6 @@ GBM_PC_LIB_PRIV="$DLOPEN_LIBS" AC_SUBST([GBM_PC_REQ_PRIV]) AC_SUBST([GBM_PC_LIB_PRIV]) -AM_CONDITIONAL(HAVE_VULKAN, true) - dnl dnl EGL configuration dnl @@ -2401,6 +2452,10 @@ AM_CONDITIONAL(HAVE_R200_DRI, test x$HAVE_R200_DRI = xyes) AM_CONDITIONAL(HAVE_RADEON_DRI, test x$HAVE_RADEON_DRI = xyes) AM_CONDITIONAL(HAVE_SWRAST_DRI, test x$HAVE_SWRAST_DRI = xyes) +AM_CONDITIONAL(HAVE_INTEL_VULKAN, test "x$HAVE_INTEL_VULKAN" = xyes) + +AM_CONDITIONAL(HAVE_INTEL_DRIVERS, test "x$HAVE_INTEL_VULKAN" = xyes) + AM_CONDITIONAL(NEED_RADEON_DRM_WINSYS, test "x$HAVE_GALLIUM_R300" = xyes -o \ "x$HAVE_GALLIUM_R600" = xyes -o \ "x$HAVE_GALLIUM_RADEONSI" = xyes) @@ -2647,6 +2702,15 @@ if test "$enable_egl" = yes; then echo " EGL drivers: $egl_drivers" fi +# Vulkan +echo "" +if test "x$VULKAN_DRIVERS" != x; then + echo " Vulkan drivers: $VULKAN_DRIVERS" + echo " Vulkan ICD dir: $VULKAN_ICD_INSTALL_DIR" +else + echo " Vulkan drivers: no" +fi + echo "" if test "x$MESA_LLVM" = x1; then echo " llvm: yes" diff --git a/src/Makefile.am b/src/Makefile.am index 73686a93b3c..a0572b7a563 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -56,7 +56,7 @@ EXTRA_DIST = \ AM_CFLAGS = $(VISIBILITY_CFLAGS) AM_CXXFLAGS = $(VISIBILITY_CXXFLAGS) -if HAVE_VULKAN +if HAVE_INTEL_DRIVERS SUBDIRS += intel endif diff --git a/src/intel/Makefile.am b/src/intel/Makefile.am index d5bd0b3b5df..c3673c6e7c8 100644 --- a/src/intel/Makefile.am +++ b/src/intel/Makefile.am @@ -19,4 +19,8 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. -SUBDIRS = genxml isl vulkan +SUBDIRS = genxml isl + +if HAVE_INTEL_VULKAN +SUBDIRS += vulkan +endif -- 2.30.2