Merge pull request #820 from billhollings/master

Update dependency libraries to match Vulkan SDK 1.2.131.
diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md
index aa01001..26e9a1c 100644
--- a/Docs/Whats_New.md
+++ b/Docs/Whats_New.md
@@ -17,7 +17,7 @@
 MoltenVK 1.0.40
 ---------------
 
-Released 2020/01/21
+Released 2020/01/22
 
 - Refactor descriptor management to reduce memory footprint and fix caching leak.
 - Add `MVK_CONFIG_PREALLOCATE_DESCRIPTORS` environment variable to support preallocated 
@@ -25,11 +25,33 @@
 - Fix crash when app does not use queue family zero.
 - Fix buffer offset in `vkCmdPushDescriptorSet()` for non-dedicated buffer memory.
 - Fix Metal validation error on push constant sizing differences between C and MSL structs.
+- Use `MTLBuffer` when inline uniform block descriptor is written to instead of copying host-side bytes.
+- Fix `EXT_inline_uniform_block` when using push descriptor sets.
+- Merge buffer and inline unions to fix issue where binding inline descriptor would interfere with
+  future binds on the same set index in the same command buffer (now only used in push case anyway).
 - Track performance of `CAMetalLayer nextDrawable` call.
 - Document recommendation to use 3 swapchain images, particularly with full-screen rendering.
 - Update `MoltenVK_Runtime_UserGuide.md` to better explain runtime environment variables.
 - Update `VK_MVK_MOLTENVK_SPEC_VERSION` to `24`.
 - Update copyright notices to year 2020.
+- Update dependency libraries to match *Vulkan SDK 1.2.131*.
+- Update to latest SPIRV-Cross version:
+	- MSL: Support `ClipDistance` as an input stage variable.
+	- MSL: Fix automatic binding allocation for image atomic buffers.
+	- MSL: Deal with packing vectors for vertex input/fragment output.
+	- MSL: Don't set `OrigID` when emitting component packed vectors.
+	- MSL: Add trivial tests for `Component` decoration.
+	- MSL: Deal with padded fragment output + `Component` decoration.
+	- MSL: Partially implement support for Component decoration in complex scenarios.
+	- MSL: Explicitly don't support component packing for tessellation.
+	- MSL: Deal with sign on wave `min/max`.
+	- MSL: Add support for force-activating IAB resources.
+	- Deal with illegal names in types as well.
+	- Basic implementation of `OpCopyLogical`.
+	- Fix sign handling for `S/UToF`.
+	- Fix uninitialized memory issue.
+	- Roll custom versions of `isalpha/isalnum`.
+	- Update license headers to year 2020.
 
 
 
diff --git a/ExternalRevisions/README.md b/ExternalRevisions/README.md
index 76dc0be..2034823 100644
--- a/ExternalRevisions/README.md
+++ b/ExternalRevisions/README.md
@@ -149,7 +149,8 @@
 you are developing features for **_MoltenVK_**, you may end up making changes to *SPIRV-Cross*. 
 
 If you make changes to the `SPIRV-Cross` repository, you can build a new version of the `libSPIRVCross.a`
-static library by opening the `ExternalDependencies.xcodeproj` *Xcode* project, and running the **_ExternalDependencies_** *Xcode* scheme. You can then rebuild **MoltenVK** to include the new library.
+static library by opening the `ExternalDependencies.xcodeproj` *Xcode* project, and running the 
+**_ExternalDependencies_** *Xcode* scheme. You can then rebuild **MoltenVK** to include the new library.
 
 While makng changes to the `SPIRV-Cross` repository, you can regression test your changes using the
 following steps:
@@ -201,8 +202,9 @@
 
 5. Repeat *Step 4* for the `SPIRV-Tools-iOS` target within the `ExternalDependencies` *Xcode* project
 
-6. Update `Templates/spirv-tools/build.zip` from the contents of `External/glslang/External/spirv-tools/build`,
-   and test by running `./fetchDependencies --skip-spirv-tools-build`, and a **MoltenVK** build.
+6. Update `Templates/spirv-tools/build.zip` from the `*.h` and `*.inc` files in 
+   `External/glslang/External/spirv-tools/build`, remove hidden `.*` files, and test 
+   by running `./fetchDependencies --skip-spirv-tools-build`, and a **MoltenVK** build.
 
 
 
diff --git a/ExternalRevisions/SPIRV-Cross_repo_revision b/ExternalRevisions/SPIRV-Cross_repo_revision
index 57d5a9f..4101c6f 100644
--- a/ExternalRevisions/SPIRV-Cross_repo_revision
+++ b/ExternalRevisions/SPIRV-Cross_repo_revision
@@ -1 +1 @@
-96a276c2ca86e81530313786e99e2b95623898ca
+f9818f0804e6e73ec8afcc523b7e7f8bfc362632
diff --git a/ExternalRevisions/Vulkan-Headers_repo_revision b/ExternalRevisions/Vulkan-Headers_repo_revision
index 9275552..1602b8e 100644
--- a/ExternalRevisions/Vulkan-Headers_repo_revision
+++ b/ExternalRevisions/Vulkan-Headers_repo_revision
@@ -1 +1 @@
-0e57fc1cfa56a203efe43e4dfb9b3c9e9b105593
+881bbb347a08d1b5aa77f61a52a30b506de9f2bf
diff --git a/ExternalRevisions/Vulkan-Tools_repo_revision b/ExternalRevisions/Vulkan-Tools_repo_revision
index 2978205..2a84555 100644
--- a/ExternalRevisions/Vulkan-Tools_repo_revision
+++ b/ExternalRevisions/Vulkan-Tools_repo_revision
@@ -1 +1 @@
-0c2618b2c31e2f216e131ff4c1c83e2c92c6ae66
+4792a6854238ba3f6d10b8c7fcd11c102cae4ca6
diff --git a/ExternalRevisions/VulkanSamples_repo_revision b/ExternalRevisions/VulkanSamples_repo_revision
index 00eb4cf..c2e97ce 100644
--- a/ExternalRevisions/VulkanSamples_repo_revision
+++ b/ExternalRevisions/VulkanSamples_repo_revision
@@ -1 +1 @@
-ae32f2390060925afa9c5b111ac94de6d13fe229
+9f72cf123c673e47679bb72caa06a17d7b0258dd
diff --git a/ExternalRevisions/glslang_repo_revision b/ExternalRevisions/glslang_repo_revision
index 445aab9..da32f64 100644
--- a/ExternalRevisions/glslang_repo_revision
+++ b/ExternalRevisions/glslang_repo_revision
@@ -1 +1 @@
-ebf634bcaa3e46ca8a912ed05b87281c731b2391
+4fc7a33910fb8e40b970d160e1b38ab3f67fe0f3
diff --git a/Templates/spirv-tools/build.zip b/Templates/spirv-tools/build.zip
index f66fa7a..c54ae08 100644
--- a/Templates/spirv-tools/build.zip
+++ b/Templates/spirv-tools/build.zip
Binary files differ