qt5base-lts/mkspecs/common
Morten Johan Sørvig 60457e6cd0 macOS: Experimental Vulkan support via MoltenVK
Add support for QSurface::VulkanSurface and QVulkanWindow.

Usage:
  1) Build MoltenVK according to instructions
  2) Configure Qt: ./configure -I /path/to/MoltenVK/Package/Release/MoltenVK/include
  3) export QT_VULKAN_LIB=/path/to/MoltenVK/Package/Release/MoltenVK/macOS/libMoltenVK.

Implement support for QSurface::VulkanSurface by enabling
layer mode for QNSView and then creating a CAMetalLayer,
which the MoltenVK translation layer can run on.

MoltenVK provides an implementation of the Vulcan API,
which means that the platform integration is similar
to other platforms: implement a QCocoaVulkanInstance
where we pass the QNSView instance to the vkCreateMacOSSurfaceMVK
Vulkan surface constructor function.

Using Vulkan directly without QVulkanWindow is possible, but not
tested.

We currently load libMoltenVK at run-time and use the
existing QT_VULKAN_LIB environment variable to set its
path. For deployment purposes it would be better to
link against MoltenVK.frameworkm, but this

Task-number: QTBUG-66966
Change-Id: I04ec6289c40b199dca9fed32902b5d2ad4e9c030
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2018-05-08 11:27:26 +00:00
..
aix Stop including net/if.h from qplatformdefs.h 2017-10-08 06:41:24 +00:00
android Add QIODevice::NewOnly and QIODevice::ExistingOnly OpenMode flags 2018-01-17 04:32:47 +00:00
bsd Stop including net/if.h from qplatformdefs.h 2017-10-08 06:41:24 +00:00
c89 Updated license headers 2016-01-15 12:25:24 +00:00
integrity Stop including net/if.h from qplatformdefs.h 2017-10-08 06:41:24 +00:00
mac Stop including net/if.h from qplatformdefs.h 2017-10-08 06:41:24 +00:00
nacl Updated license headers 2016-01-15 12:25:24 +00:00
posix Add QIODevice::NewOnly and QIODevice::ExistingOnly OpenMode flags 2018-01-17 04:32:47 +00:00
qnx Stop including net/if.h from qplatformdefs.h 2017-10-08 06:41:24 +00:00
uikit Merge remote-tracking branch 'origin/5.8' into dev 2016-10-13 09:49:38 +02:00
winrt_winphone Merge remote-tracking branch 'origin/5.9' into 5.10 2017-10-04 13:41:04 +02:00
android-base-head.conf android: Add support for precompiled headers 2018-05-04 10:25:05 +00:00
android-base-tail.conf Detect C standard and try using the most recent one (take 2) 2018-04-21 09:05:14 +00:00
angle.conf Restore behavior of using libEGL and libGLESv2 as default for angle 2017-05-11 08:35:54 +00:00
clang-mac.conf Move Apple-specific -fapplication-extensions option to the mkspec 2017-04-12 03:37:01 +00:00
clang.conf Detect C standard and try using the most recent one (take 2) 2018-04-21 09:05:14 +00:00
g++-base.conf Detect C standard and try using the most recent one (take 2) 2018-04-21 09:05:14 +00:00
g++-macx.conf Remove the -load_all option from the linker enabling static builds 2015-01-07 09:57:07 +01:00
g++-unix.conf
g++-win32.conf mkspecs: Factorize common parts of win32-g++ and win32-clang-g++ 2018-02-21 18:08:01 +00:00
g++.conf
gcc-base-mac.conf MinGW: reuse gcc-base.conf and g++-base.conf 2016-11-29 16:23:58 +00:00
gcc-base-unix.conf Generate gdb indexing for faster debugging on Linux 2017-12-19 11:50:12 +00:00
gcc-base.conf Make the use of -fdata-sections and --gc-sections more generic in Qt 2018-04-27 06:47:35 +00:00
ghs-base.conf Remove QMAKE_LIBS_CORE variable 2017-08-28 13:10:38 +00:00
ghs-integrity-armv7.conf Add -bigswitch on INTEGRITY 2017-04-03 08:08:46 +00:00
ghs-integrity-armv8.conf Add INTEGRITY mkspec for ARMv8 Drive CX 2017-05-29 09:46:12 +00:00
ghs-integrity-x86.conf Add support for building for INTEGRITY using GHS toolchain. 2016-03-21 16:49:54 +00:00
ios.conf Add support for Apple tvOS 2016-05-17 16:11:23 +00:00
linux.conf Merge remote-tracking branch 'origin/5.9' into dev 2017-08-31 14:31:31 +02:00
llvm.conf
mac.conf Merge remote-tracking branch 'origin/5.7' into 5.8 2016-10-06 20:12:27 +02:00
macx.conf macOS: Experimental Vulkan support via MoltenVK 2018-05-08 11:27:26 +00:00
msvc-desktop.conf Merge remote-tracking branch 'origin/5.9' into 5.11 2018-02-14 12:51:24 +01:00
msvc-version.conf Merge remote-tracking branch 'origin/5.9' into 5.11 2018-02-14 12:51:24 +01:00
qcc-base-qnx-aarch64le.conf Add some 64-bit QNX platforms 2016-06-22 14:59:26 +00:00
qcc-base-qnx-armle-v7.conf move inclusions of unix.conf (and related files) near the top 2015-10-01 16:19:27 +00:00
qcc-base-qnx-x86-64.conf Add some 64-bit QNX platforms 2016-06-22 14:59:26 +00:00
qcc-base-qnx-x86.conf move inclusions of unix.conf (and related files) near the top 2015-10-01 16:19:27 +00:00
qcc-base-qnx.conf qmake: add support for mkspecs which don't support strict_c++ 2018-04-05 18:55:46 +00:00
qcc-base.conf Merge remote-tracking branch 'origin/5.9' into dev 2017-06-19 16:12:34 +02:00
sanitize.conf Add support for gcc/clang's sanitize features 2014-10-02 19:45:00 +02:00
shell-unix.conf centralize setup of shell-related variables in spec_post.prf 2015-03-06 19:08:40 +00:00
shell-win32.conf centralize setup of shell-related variables in spec_post.prf 2015-03-06 19:08:40 +00:00
solaris.conf Remove unused mkspecs variable QMAKE_LIBS_NIS 2017-08-28 13:10:44 +00:00
tvos.conf qmake: enable bitcode also for iOS 2016-08-19 21:06:05 +00:00
uikit.conf Remove useless DARWIN_NO_CARBON define from uikit mkspecs 2017-01-24 19:40:29 +00:00
unix.conf unify handling of library prefixes and extensions 2015-10-01 16:19:30 +00:00
watchos.conf qmake: enable bitcode also for iOS 2016-08-19 21:06:05 +00:00
windows-vulkan.conf Fix WebEngine build when VULKAN_SDK environment variable is present 2017-07-25 13:48:41 +00:00