From 728182cf759fc0c9e0d251adf70dc1e378a318d8 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Tue, 8 Mar 2022 21:22:25 -0500 Subject: [PATCH] MoltenVKShaderConverter tool defaults to the highest MSL version supported on runtime OS. Update to latest SPIRV-Cross. Update Docs/Whats_New.md document. --- Docs/Whats_New.md | 11 +++++++++- ExternalRevisions/SPIRV-Cross_repo_revision | 2 +- .../MoltenVKShaderConverterTool.cpp | 21 ++++++++++++++++++- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 946a1ef0..8aa83438 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -19,9 +19,18 @@ MoltenVK 1.1.9 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 1b85a893..78a1017a 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 90e20a53..8d64a599 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverterTool/MoltenVKShaderConverterTool.cpp +++ b/MoltenVKShaderConverter/MoltenVKShaderConverterTool/MoltenVKShaderConverterTool.cpp @@ -421,8 +421,27 @@ MoltenVKShaderConverterTool::MoltenVKShaderConverterTool(int argc, const char* a _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);