Merge pull request #1541 from billhollings/shaderconverter-tool-default-msl-version

MoltenVKShaderConverter tool defaults to the highest MSL version supported on runtime OS.
diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md
index 946a1ef..8aa8343 100644
--- a/Docs/Whats_New.md
+++ b/Docs/Whats_New.md
@@ -19,9 +19,18 @@
 Released TBD
 
 - Reinstate memory barriers on non-Apple GPUs, which were inadvertently disabled in an earlier update.
-- Update *glslang* version, to use `python3` in *glslang* scripts, to replace missing `python` on *macOS 12.3*.
+- Support base vertex instance support in shader conversion.
 - Fix alignment between outputs and inputs between shader stages when using nested structures.
 - Fix issue where the depth component of a stencil-only renderpass attachment was incorrectly attempting to be stored.
+- `MoltenVKShaderConverter` tool defaults to the highest MSL version supported on runtime OS.
+- Update *glslang* version, to use `python3` in *glslang* scripts, to replace missing `python` on *macOS 12.3*.
+- Update to latest SPIRV-Cross:
+	- MSL: Support input/output blocks containing nested struct arrays.
+	- MSL: Use var name instead of var-type name for flattened interface members.
+	- MSL: Handle aliased variable names for resources placed in IB struct.
+	- MSL: Append entry point args to local variable names to avoid conflicts.
+	- MSL: Consider that gl_IsHelperInvocation can be Volatile.
+	- MSL: Refactor and fix use of quadgroup vs simdgroup.
 
 
 
diff --git a/ExternalRevisions/SPIRV-Cross_repo_revision b/ExternalRevisions/SPIRV-Cross_repo_revision
index 1b85a89..78a1017 100644
--- a/ExternalRevisions/SPIRV-Cross_repo_revision
+++ b/ExternalRevisions/SPIRV-Cross_repo_revision
@@ -1 +1 @@
-131278458ea8eebe6a6e9c476fbcf71278726e1a
+0b51794f0142a3124f4e351cfc0616a48268ba97
diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverterTool/MoltenVKShaderConverterTool.cpp b/MoltenVKShaderConverter/MoltenVKShaderConverterTool/MoltenVKShaderConverterTool.cpp
index 90e20a5..8d64a59 100644
--- a/MoltenVKShaderConverter/MoltenVKShaderConverterTool/MoltenVKShaderConverterTool.cpp
+++ b/MoltenVKShaderConverter/MoltenVKShaderConverterTool/MoltenVKShaderConverterTool.cpp
@@ -421,8 +421,27 @@
 	_quietMode = false;
 
 	_mslVersionMajor = 2;
-	_mslVersionMinor = 4;
+
+	if (mvkOSVersionIsAtLeast(12.0)) {
+		_mslVersionMinor = 4;
+	} else if (mvkOSVersionIsAtLeast(11.0)) {
+		_mslVersionMinor = 3;
+	} else if (mvkOSVersionIsAtLeast(10.15)) {
+		_mslVersionMinor = 2;
+	} else if (mvkOSVersionIsAtLeast(10.14)) {
+		_mslVersionMinor = 1;
+	} else if (mvkOSVersionIsAtLeast(10.13)) {
+		_mslVersionMinor = 0;
+	} else if (mvkOSVersionIsAtLeast(10.12)) {
+		_mslVersionMajor = 1;
+		_mslVersionMinor = 2;
+	} else {
+		_mslVersionMajor = 1;
+		_mslVersionMinor = 1;
+	}
+
 	_mslVersionPatch = 0;
+
 	_mslPlatform = SPIRVToMSLConversionOptions().mslOptions.platform;
 
 	_isActive = parseArgs(argc, argv);