vulkan: Initial Vulkan support!

This work was done by Jacob Lifshay and Mark Callow; I'm just merging it
into revision control.

--HG--
extra : rebase_source : cb3bb332146125366b5242c0d7444f44638733d9
extra : amend_source : c72ebb6d3a92efc3fdd085ce3b6d4b1d7f573cc9
This commit is contained in:
Ryan C. Gordon 2017-08-27 22:15:57 -04:00
parent 0ff15ac41b
commit a566435db1
60 changed files with 5456 additions and 80 deletions

107
configure vendored
View file

@ -745,6 +745,7 @@ infodir
docdir
oldincludedir
includedir
runstatedir
localstatedir
sharedstatedir
sysconfdir
@ -854,6 +855,7 @@ enable_video_opengl
enable_video_opengles
enable_video_opengles1
enable_video_opengles2
enable_video_vulkan
enable_libudev
enable_dbus
enable_ime
@ -920,6 +922,7 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE}'
@ -1172,6 +1175,15 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
-runstatedir | --runstatedir | --runstatedi | --runstated \
| --runstate | --runstat | --runsta | --runst | --runs \
| --run | --ru | --r)
ac_prev=runstatedir ;;
-runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
| --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
| --run=* | --ru=* | --r=*)
runstatedir=$ac_optarg ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@ -1309,7 +1321,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
libdir localedir mandir
libdir localedir mandir runstatedir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@ -1462,6 +1474,7 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@ -1603,6 +1616,7 @@ Optional Features:
include OpenGL ES 1.1 support [[default=yes]]
--enable-video-opengles2
include OpenGL ES 2.0 support [[default=yes]]
--enable-video-vulkan include Vulkan surface support [[default=yes]]
--enable-libudev enable libudev support [[default=yes]]
--enable-dbus enable D-Bus support [[default=yes]]
--enable-ime enable IME support [[default=yes]]
@ -21891,6 +21905,87 @@ $as_echo "#define SDL_VIDEO_RENDER_OGL_ES2 1" >>confdefs.h
fi
}
# Check whether --enable-video-vulkan was given.
if test "${enable_video_vulkan+set}" = set; then :
enableval=$enable_video_vulkan;
else
enable_video_vulkan=yes
fi
CheckVulkan()
{
have_vulkan_hdr=no
if test x$enable_video = xyes -a x$enable_video_vulkan = xyes; then
case "$host" in
*-*-androideabi*)
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if defined(__ANDROID__) && defined(__ARM_EABI__) && !defined(__ARM_ARCH_7A__)
#error Vulkan doesn't work on this configuration
#endif
int main()
{
return 0;
}
int
main ()
{
enable_video_vulkan=no
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
;;
*)
;;
esac
if test x$enable_video_vulkan = xno; then
# For reasons I am totally unable to see, I get an undefined macro error if
# I put this in the AC_TRY_COMPILE.
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Sorry, Vulkan does not work on this configuration." >&5
$as_echo "$as_me: WARNING: Sorry, Vulkan does not work on this configuration." >&2;}
fi
if test x$enable_video_vulkan = xyes; then
vsdk_include_dir="${VULKAN_SDK}/include"
vulkan_header="vulkan/vulkan.h"
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="${save_CPPFLAGS} -I$vsdk_include_dir"
as_ac_Header=`$as_echo "ac_cv_header_$vulkan_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$vulkan_header" "$as_ac_Header" "$ac_includes_default"
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
have_vulkan_hdr=yes
else
have_vulkan_hdr=no
fi
CPPFLAGS="$save_CPPFLAGS"
fi
fi
if test x$have_vulkan_hdr = xyes; then
# vulkan.h has been found in either $VULKAN_SDK/include or along the
# the standard include path. Unfortunately there seems no easy
# way to find out which, so...
if test -n "$VULKAN_SDK" -a -f "$vsdk_include_dir/$vulkan_header"; then
EXTRA_CFLAGS="$EXTRA_CFLAGS -I$vsdk_include_dir"
fi
$as_echo "#define SDL_VIDEO_VULKAN_SURFACE 1" >>confdefs.h
SUMMARY_video="${SUMMARY_video} vulkan"
fi
}
CheckInputEvents()
{
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Linux 2.4 unified input interface" >&5
@ -23637,6 +23732,7 @@ case "$host" in
CheckKMSDRM
CheckOpenGLX11
CheckOpenGLESX11
CheckVulkan
CheckMir
CheckWayland
CheckLibUDev
@ -23806,6 +23902,7 @@ $as_echo "#define SDL_TIMER_UNIX 1" >>confdefs.h
CheckWINDOWS
CheckWINDOWSGL
CheckWINDOWSGLES
CheckVulkan
CheckDIRECTX
# Set up the core platform files
@ -24092,6 +24189,7 @@ fi
CheckDummyAudio
CheckDLOPEN
CheckPTHREAD
CheckVulkan
# Set up files for the audio library
if test x$enable_audio = xyes; then
@ -24174,6 +24272,9 @@ $as_echo "#define SDL_VIDEO_RENDER_OGL_ES2 1" >>confdefs.h
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,OpenGLES"
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,QuartzCore"
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,UIKit"
if test x$ac_cv_header_vulkan_vulkan_h = xyes; then
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,QuartzCore"
fi
;;
*-*-darwin* )
# This could be either full "Mac OS X", or plain "Darwin" which is
@ -24195,6 +24296,7 @@ $as_echo "#define SDL_VIDEO_RENDER_OGL_ES2 1" >>confdefs.h
CheckX11
CheckMacGL
CheckOpenGLX11
CheckVulkan
CheckPTHREAD
# Set up files for the audio library
@ -24260,6 +24362,9 @@ $as_echo "#define SDL_TIMER_UNIX 1" >>confdefs.h
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Cocoa"
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,Carbon"
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,IOKit"
if test x$ac_cv_header_vulkan_vulkan_h = xyes; then
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,QuartzCore"
fi
;;
*-nacl|*-pnacl)
ARCH=nacl