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);