39 Commits

Author SHA1 Message Date
Bill Hollings
834d391aec Update dependency libraries to match Vulkan SDK 1.2.148.
fetchDependencies support option to skip all library builds.
fetchDependencies avoid sync locks if not building in parallel.
fetchDependencies build glslang headers.
Update ExternalRevisions/README.md glslang build integration section.
Update What's New.
2020-07-27 22:25:44 -04:00
Bill Hollings
abb8792843 fetchDependencies build external libraries in parallel by platform.
Log ext lib build steps to provide user feedback.
Add package_ext_libs_finish.sh script to separate packaging
libraries from building them, to avoid build database conflicts.
Travis only build macOS ext libs.
2020-06-22 00:00:00 -04:00
Bill Hollings
ac204382db Merge simulator support with tvOS support. 2020-06-19 15:05:43 -04:00
Bill Hollings
50828dde93 fetchDependencies supports iOS simulator fat external library builds.
fetchDependencies supports options for specifying which platform options to build for.
Fix SPIRV-Tools builds to avoid code stripping warnings.
2020-06-17 19:10:33 -04:00
Bill Hollings
4a5bf6953c Update fetchDependencies script to use pre-built spirv-tools files by default. 2020-06-02 13:30:52 -04:00
Bill Hollings
2b2bfc3fbd Move generation of API-Samples SPIR-V header files out of fetchDependencies.
Add Demos/LunarG-VulkanSamples/API-Samples/generateSPIRVShaders script.
Update user documentation.
2020-04-12 12:53:17 -04:00
Bill Hollings
eb99488f04 Reinstate VulkanSamples API-Samples demo apps.
MVKShaderConverterTool add support to output SPIR-V as header (.h) files.
Add MVKShaderConverterTool Xcode target.
Add MVKShaderConverterTool Package Xcode scheme.
fetchDependencies builds MVKShaderConverterTool and runs
it on shader files in VulkanSamples API-Samples directory.
2020-04-11 16:19:03 -04:00
Bill Hollings
8ec682938b Update copyright to 2020. 2020-01-07 16:47:29 -05:00
Bill Hollings
19c397e0b7 Move generation of SPIRV-Cross/mvkSpirvCrossRevisionDerived.h to separate script.
Add Scripts/gen_spirv_cross_rev_hdr.sh script and
call from ExternalDependencies SPIRV-Cross build.
2019-10-22 16:51:27 -04:00
Bill Hollings
ef8de08ff1 Skip SPIRV-Tools build in Travis.
Add fetchDependencies option to skip building SPIRV-Tools and use a template of pre-generated headers.
Modify .travis.yml to use this.
2019-06-16 12:00:22 -04:00
Bill Hollings
67743ab423 Automatically update VkPhysicalDeviceProperties::pipelineCacheUUID when SPIRV-Cross revision changes.
Generate derived External/SPIRV-Cross/mvkSpirvCrossRevisionDerived.h
header file from SPIRV-Cross_repo_revision file from within fetchDependencies.
MoltenVK includes derived header file and extracts first part of revision hash
for inclusion in pipelineCacheUUID.
Update highest available MTLFeatureSets for use in pipelineCacheUUID.
Suppress echoing of script directory changes in fetchDependencies.
2019-05-10 18:24:19 -04:00
Bill Hollings
62f374bf7e Allow building external dependency libraries in Debug mode.
Add ExternalDependencies (Debug) scheme to ExternalDependencies Xcode project.
Add --debug option to fetchDependencies script.
Support Release, Debug & Latest directories in External/build directory.
Enable DEPLOYMENT_POSTPROCESSING build setting when compiling
SPIRV-Tools to avoid warning spam when building dylibs.
Disable visibility warnings when building MoltenVKShaderConverter
in Release mode from external libraries built in Debug mode.
Always use -Xlinker -w option when creating dylibs to disable visibility warnings.
2019-04-18 15:08:39 -04:00
alexey.lysiuk
d015381fa3 Stop on the first error in fetch dependencies script 2019-03-08 10:58:06 +02:00
Bill Hollings
1fbc1333f8 Update What's New document.
Fix issue loading from Vulkan-Portability_repo_revision in fetchDependencies.
2019-02-27 17:47:15 -05:00
Bill Hollings
f969bcc937 Minor refactoring to simplify fetchDependencies script. 2019-01-27 20:34:41 -05:00
Bill Hollings
dd5c0186bb Merge branch 'master' of https://github.com/KhronosGroup/MoltenVK 2019-01-27 19:53:59 -05:00
Bill Hollings
e5a890775b Add support for VK_EXTX_portability_subset extension.
Add KhronosGroup/Vulkan-Portability as external dependency repo.
Add ExternalRevisions/Vulkan-Portability_repo_revision.
Add vk_extx_portability_subset.h header file to mvk_vulkan.h.
MVKImageView allow constructor with no image or device.
Add mvkVkComponentMappingsMatch() & mvkVkComponentSwizzlesMatch() functions.
Cleanup some local var init warnings.
2019-01-27 19:52:59 -05:00
Jeremy Kniager
60b4f2fa9d fetchDependencies: Fix SPIRV-Tools including pre-built glslang
Glslang does not build SPIRV-Tools when including it.
The `fetchDependencies` script does this when cloning
the repo on its own, but neglects to do this when a path
to a pre-built glslang is provided.

This commit adds the SPIRV-Tools build step when given
a path to a pre-built glslang.
2019-01-25 10:21:07 -07:00
Bill Hollings
fe55930fd5 Update Brenwill copyright noticies to 2019. 2019-01-01 21:13:25 -05:00
Bill Hollings
d34b0812fe Allow building external libraries from fetchDependencies script or Xcode.
The fetchDependencies script puts build files in External/build directory.
Xcode puts build files in standard Library/.../DerivedData directory.
Copy compiled external static library files to External/build/iOS &
External/build/macOS regardless of location of intermediates.
2018-12-25 21:43:29 -05:00
Bill Hollings
91ed8ba4b0 Add verbose option to fetchDependencies and use it in Travis to avoid CI timeouts. 2018-12-24 22:15:23 -05:00
Bill Hollings
bdacc5392a Merge branch 'master' of https://github.com/KhronosGroup/MoltenVK 2018-12-24 19:18:01 -05:00
Bill Hollings
9b42574249 Build external dependencies into static libraries in External/build when fetched.
Add separate ExternalDependencies Xcode project.
Move external dependencies to ExternalDependencies project.
The fetchDependencies script builds external dependencies libraries into External/build.
The fetchDependencies script prepares SPIRV-Tools without preparing glslang.
MoltenVK links to pre-built external dependency static libraries.
MoltenVK includes external library headers using full relative paths.
2018-12-24 19:11:15 -05:00
DiegoAce
ea0bbe5780 Limit fetchDependencies Parallel Building to Number of Available Cores 2018-12-20 20:08:54 -06:00
Dan Ginsburg
c41301f323 Parallel build for fetchDependencies to speed this up. 2018-11-20 10:35:27 -05:00
Bill Hollings
d99984e064 Align MoltenVK with Vulkan SDK 1.1.92.
Update to latest dependency libraries for Vulkan SDK 1.1.92.
Generate Hologram demo dispatch files in fetchDependencies and remove them from git.
Update MoltenVK version to 1.0.27.
Update What's New document.
2018-11-15 17:40:15 +01:00
Bill Hollings
38160b3eb3 MoltenVK 1.0.26.
Fixes to create_dylib.sh to cleanup bitcode and architecture support.
Update to latest SPIRV-Cross version.
Update MoltenVK version to 1.0.26.
Update Xcode projects to Xcode 10.1.
Update What's New document.
2018-11-06 16:01:36 -05:00
Bill Hollings
b296f51153 Fix descriptive comments in fetchDependencies script. 2018-10-02 15:14:33 -04:00
Ryan Schmidt
8ef623373d
Fix typos in comments in fetchDependencies 2018-08-21 10:04:37 -05:00
Jeremy Kniager
cbb9886723 fetchDeps: Add flags for pre-built repos
Add --v-headers-root, --spirv-cross-root,
and --glslang-root options with an arg that allow
caller to pass in the root dir of these three
repos if the caller already has them.  The script
then symlinks to these instead of fetching and building.
2018-06-21 15:42:52 -06:00
Bill Hollings
b1b26e644f Fix glslang install. 2018-05-28 09:43:11 -04:00
Bill Hollings
c833cc544d Replace dependency on Vulkan-LoaderAndValidationLayers with Vulkan-Headers and Vulkan-Tools.
Update to latest versions of Vulkan-Headers, SPIRV-Cross, glslang, Vulkan-Tools, and VulkanSamples.
2018-05-28 08:33:46 -04:00
Bill Hollings
9b871d0280 Update to latest LunarG/VulkanSamples and update MoltenVK version to 1.0.3. 2018-04-18 11:06:47 -04:00
Bill Hollings
3a2657b2bb Update Demos to use latest LunarG VulkanSamples and Vulkan-LoaderAndValidationLayers code.
Update to latest Vulkan-LoaderAndValidationLayers version.
Update to latest VulkanSamples version.
Update to latest SPIRV-Cross version.
2018-04-16 16:26:34 -04:00
Bill Hollings
256c76683e
Merge pull request #126 from VinDuv/use-ninja-for-deps
fetchDependencies: Use ninja if available to build dependencies
2018-04-09 12:58:02 -04:00
Karl Schultz
b1a18b7855 fetchDeps: Copy glslang instead of symlink
Using a symlink to locate an externally-built glslang
doesn't work if the parent directory of the externally-built
glslang isn't the same as the parent here (External).

This fixes a portability warning when building from V-LVL
because the parent there was "external" vs "External".

Copy is still a win because it is better than fetching and
building.
2018-04-06 18:33:28 -06:00
Vincent Duvert
9a3ab266d1 Use ninja if available to build dependencies
If the ninja build system is installed, ask CMake to generate Ninja build files and use
it for the build.
2018-04-06 08:27:22 +02:00
Karl Schultz
8faa3a2fe4 fetchDeps: remove -sdk. New opts for LVL, glslang trees
Changes to fetchDependencies script:
- remove -sdk option
- Add --v-lvl-root and --glslang-root options (with an arg)
that allow caller to pass in the root dir of these two repos
if the caller already has them.  The script then symlinks to
these instead of fetching and building.

Fixes: #79 #84
2018-04-02 15:09:06 -06:00
Bill Hollings
979a7f801f Reorganize External dependencies.
fetchDependencies script now in top directory to avoid Travis caching of
External directory. fetchDependencies is now smart about fetching vs cloning
and building only what is necessary.
2018-03-30 22:16:27 -04:00