From bb7b46be0f5e435d703a68e2a8abdae7ad10fdd7 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Thu, 10 Jun 2021 15:56:58 -0400 Subject: [PATCH 1/6] MoltenVKShaderConverter build fixes. Remove #include "SPIRVReflection.h" from SPIRVToMSLConverter.h. Remove MoltenVKShaderConverter/Common and move contained files to MoltenVKShaderConverter/MoltenVKShaderConverter. --- .../project.pbxproj | 36 +++++++++---------- .../SPIRVSupport.cpp | 0 .../SPIRVSupport.h | 0 .../SPIRVToMSLConverter.h | 1 - 4 files changed, 18 insertions(+), 19 deletions(-) rename MoltenVKShaderConverter/{Common => MoltenVKShaderConverter}/SPIRVSupport.cpp (100%) rename MoltenVKShaderConverter/{Common => MoltenVKShaderConverter}/SPIRVSupport.h (100%) diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj b/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj index 24cbcaf4..5d458eab 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj @@ -9,13 +9,11 @@ /* Begin PBXBuildFile section */ 2FEA0D012490381A00EEF3AD /* SPIRVReflection.h in Headers */ = {isa = PBXBuildFile; fileRef = 450A4F5E220CB180007203D7 /* SPIRVReflection.h */; }; 2FEA0D022490381A00EEF3AD /* MVKStrings.h in Headers */ = {isa = PBXBuildFile; fileRef = A98149651FB6A98A005F00B4 /* MVKStrings.h */; }; - 2FEA0D032490381A00EEF3AD /* SPIRVSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A9C70F5D221B321600FBA31A /* SPIRVSupport.h */; }; 2FEA0D042490381A00EEF3AD /* SPIRVConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = A928C9171D0488DC00071B88 /* SPIRVConversion.h */; }; 2FEA0D052490381A00EEF3AD /* SPIRVToMSLConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = A9093F5B1C58013E0094110D /* SPIRVToMSLConverter.h */; }; 2FEA0D062490381A00EEF3AD /* MVKCommonEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F042AA1FB4D060009FCCB8 /* MVKCommonEnvironment.h */; }; 2FEA0D082490381A00EEF3AD /* FileSupport.mm in Sources */ = {isa = PBXBuildFile; fileRef = A925B70A1C7754B2006E7ECD /* FileSupport.mm */; }; 2FEA0D092490381A00EEF3AD /* SPIRVToMSLConverter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9093F5A1C58013E0094110D /* SPIRVToMSLConverter.cpp */; }; - 2FEA0D0A2490381A00EEF3AD /* SPIRVSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9C70F5E221B321700FBA31A /* SPIRVSupport.cpp */; }; 2FEA0D0B2490381A00EEF3AD /* SPIRVConversion.mm in Sources */ = {isa = PBXBuildFile; fileRef = A928C9181D0488DC00071B88 /* SPIRVConversion.mm */; }; 450A4F61220CB180007203D7 /* SPIRVReflection.h in Headers */ = {isa = PBXBuildFile; fileRef = 450A4F5E220CB180007203D7 /* SPIRVReflection.h */; }; 450A4F62220CB180007203D7 /* SPIRVReflection.h in Headers */ = {isa = PBXBuildFile; fileRef = 450A4F5E220CB180007203D7 /* SPIRVReflection.h */; }; @@ -46,6 +44,13 @@ A95096BB2003D00300F10950 /* FileSupport.mm in Sources */ = {isa = PBXBuildFile; fileRef = A925B70A1C7754B2006E7ECD /* FileSupport.mm */; }; A95096BC2003D00300F10950 /* FileSupport.mm in Sources */ = {isa = PBXBuildFile; fileRef = A925B70A1C7754B2006E7ECD /* FileSupport.mm */; }; A95096BF2003D32400F10950 /* OSSupport.mm in Sources */ = {isa = PBXBuildFile; fileRef = A95096BD2003D32400F10950 /* OSSupport.mm */; }; + A9546B252672A3B8004BA3E6 /* SPIRVSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9546B232672A3B8004BA3E6 /* SPIRVSupport.cpp */; }; + A9546B262672A3B8004BA3E6 /* SPIRVSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9546B232672A3B8004BA3E6 /* SPIRVSupport.cpp */; }; + A9546B272672A3B8004BA3E6 /* SPIRVSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9546B232672A3B8004BA3E6 /* SPIRVSupport.cpp */; }; + A9546B282672A3B8004BA3E6 /* SPIRVSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9546B232672A3B8004BA3E6 /* SPIRVSupport.cpp */; }; + A9546B292672A3B8004BA3E6 /* SPIRVSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A9546B242672A3B8004BA3E6 /* SPIRVSupport.h */; }; + A9546B2A2672A3B8004BA3E6 /* SPIRVSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A9546B242672A3B8004BA3E6 /* SPIRVSupport.h */; }; + A9546B2B2672A3B8004BA3E6 /* SPIRVSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A9546B242672A3B8004BA3E6 /* SPIRVSupport.h */; }; A97CC7401C7527F3004A5C7E /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A97CC73D1C7527F3004A5C7E /* main.cpp */; }; A97CC7411C7527F3004A5C7E /* MoltenVKShaderConverterTool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A97CC73E1C7527F3004A5C7E /* MoltenVKShaderConverterTool.cpp */; }; A98149681FB6A98A005F00B4 /* MVKStrings.h in Headers */ = {isa = PBXBuildFile; fileRef = A98149651FB6A98A005F00B4 /* MVKStrings.h */; }; @@ -58,11 +63,6 @@ A983870924EEE94800199A05 /* SPIRVTools.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A983870224EEE94800199A05 /* SPIRVTools.xcframework */; }; A9A14E332244388700C080F3 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9A14E322244388700C080F3 /* Metal.framework */; }; A9B51BDD225E98BB00AC74D2 /* MVKOSExtensions.mm in Sources */ = {isa = PBXBuildFile; fileRef = A9B51BDB225E98BB00AC74D2 /* MVKOSExtensions.mm */; }; - A9C70F61221B321700FBA31A /* SPIRVSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A9C70F5D221B321600FBA31A /* SPIRVSupport.h */; }; - A9C70F62221B321700FBA31A /* SPIRVSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = A9C70F5D221B321600FBA31A /* SPIRVSupport.h */; }; - A9C70F63221B321700FBA31A /* SPIRVSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9C70F5E221B321700FBA31A /* SPIRVSupport.cpp */; }; - A9C70F66221B321700FBA31A /* SPIRVSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9C70F5E221B321700FBA31A /* SPIRVSupport.cpp */; }; - A9C70F67221B321700FBA31A /* SPIRVSupport.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A9C70F5E221B321700FBA31A /* SPIRVSupport.cpp */; }; A9F042B21FB4D060009FCCB8 /* MVKCommonEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F042AA1FB4D060009FCCB8 /* MVKCommonEnvironment.h */; }; A9F042B31FB4D060009FCCB8 /* MVKCommonEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F042AA1FB4D060009FCCB8 /* MVKCommonEnvironment.h */; }; /* End PBXBuildFile section */ @@ -94,6 +94,8 @@ A93903C71C57E9ED00FE90DC /* libMoltenVKShaderConverter.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMoltenVKShaderConverter.a; sourceTree = BUILT_PRODUCTS_DIR; }; A95096BD2003D32400F10950 /* OSSupport.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OSSupport.mm; sourceTree = ""; }; A95096BE2003D32400F10950 /* OSSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OSSupport.h; sourceTree = ""; }; + A9546B232672A3B8004BA3E6 /* SPIRVSupport.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SPIRVSupport.cpp; sourceTree = ""; }; + A9546B242672A3B8004BA3E6 /* SPIRVSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPIRVSupport.h; sourceTree = ""; }; A964BD5F1C57EFBD00D930D8 /* MoltenVKShaderConverter */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = MoltenVKShaderConverter; sourceTree = BUILT_PRODUCTS_DIR; }; A97CC73D1C7527F3004A5C7E /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; A97CC73E1C7527F3004A5C7E /* MoltenVKShaderConverterTool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MoltenVKShaderConverterTool.cpp; sourceTree = ""; }; @@ -105,8 +107,6 @@ A9A14E322244388700C080F3 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; }; A9B51BDB225E98BB00AC74D2 /* MVKOSExtensions.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MVKOSExtensions.mm; sourceTree = ""; }; A9B51BDC225E98BB00AC74D2 /* MVKOSExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKOSExtensions.h; sourceTree = ""; }; - A9C70F5D221B321600FBA31A /* SPIRVSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SPIRVSupport.h; path = Common/SPIRVSupport.h; sourceTree = SOURCE_ROOT; }; - A9C70F5E221B321700FBA31A /* SPIRVSupport.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SPIRVSupport.cpp; path = Common/SPIRVSupport.cpp; sourceTree = SOURCE_ROOT; }; A9F042AA1FB4D060009FCCB8 /* MVKCommonEnvironment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MVKCommonEnvironment.h; sourceTree = ""; }; /* End PBXFileReference section */ @@ -165,6 +165,8 @@ A928C9171D0488DC00071B88 /* SPIRVConversion.h */, A928C9181D0488DC00071B88 /* SPIRVConversion.mm */, 450A4F5E220CB180007203D7 /* SPIRVReflection.h */, + A9546B232672A3B8004BA3E6 /* SPIRVSupport.cpp */, + A9546B242672A3B8004BA3E6 /* SPIRVSupport.h */, A9093F5A1C58013E0094110D /* SPIRVToMSLConverter.cpp */, A9093F5B1C58013E0094110D /* SPIRVToMSLConverter.h */, ); @@ -213,8 +215,6 @@ A9B51BDC225E98BB00AC74D2 /* MVKOSExtensions.h */, A9B51BDB225E98BB00AC74D2 /* MVKOSExtensions.mm */, A98149651FB6A98A005F00B4 /* MVKStrings.h */, - A9C70F5E221B321700FBA31A /* SPIRVSupport.cpp */, - A9C70F5D221B321600FBA31A /* SPIRVSupport.h */, ); name = Common; path = ../Common; @@ -241,7 +241,7 @@ 2FEA0D012490381A00EEF3AD /* SPIRVReflection.h in Headers */, A920A8A7251B75B70076851C /* GLSLConversion.h in Headers */, 2FEA0D022490381A00EEF3AD /* MVKStrings.h in Headers */, - 2FEA0D032490381A00EEF3AD /* SPIRVSupport.h in Headers */, + A9546B2A2672A3B8004BA3E6 /* SPIRVSupport.h in Headers */, 2FEA0D042490381A00EEF3AD /* SPIRVConversion.h in Headers */, A920A8AD251B75B80076851C /* GLSLToSPIRVConverter.h in Headers */, 2FEA0D052490381A00EEF3AD /* SPIRVToMSLConverter.h in Headers */, @@ -256,7 +256,7 @@ 450A4F61220CB180007203D7 /* SPIRVReflection.h in Headers */, A920A8A6251B75B70076851C /* GLSLConversion.h in Headers */, A98149681FB6A98A005F00B4 /* MVKStrings.h in Headers */, - A9C70F61221B321700FBA31A /* SPIRVSupport.h in Headers */, + A9546B292672A3B8004BA3E6 /* SPIRVSupport.h in Headers */, A928C9191D0488DC00071B88 /* SPIRVConversion.h in Headers */, A920A8AC251B75B70076851C /* GLSLToSPIRVConverter.h in Headers */, A909408C1C58013E0094110D /* SPIRVToMSLConverter.h in Headers */, @@ -271,7 +271,7 @@ 450A4F62220CB180007203D7 /* SPIRVReflection.h in Headers */, A920A8A8251B75B70076851C /* GLSLConversion.h in Headers */, A98149691FB6A98A005F00B4 /* MVKStrings.h in Headers */, - A9C70F62221B321700FBA31A /* SPIRVSupport.h in Headers */, + A9546B2B2672A3B8004BA3E6 /* SPIRVSupport.h in Headers */, A928C91A1D0488DC00071B88 /* SPIRVConversion.h in Headers */, A920A8AE251B75B80076851C /* GLSLToSPIRVConverter.h in Headers */, A909408D1C58013E0094110D /* SPIRVToMSLConverter.h in Headers */, @@ -461,8 +461,8 @@ A920A8AA251B75B70076851C /* GLSLConversion.mm in Sources */, A920A8A4251B75B70076851C /* GLSLToSPIRVConverter.cpp in Sources */, 2FEA0D092490381A00EEF3AD /* SPIRVToMSLConverter.cpp in Sources */, - 2FEA0D0A2490381A00EEF3AD /* SPIRVSupport.cpp in Sources */, 2FEA0D0B2490381A00EEF3AD /* SPIRVConversion.mm in Sources */, + A9546B272672A3B8004BA3E6 /* SPIRVSupport.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -471,9 +471,9 @@ buildActionMask = 2147483647; files = ( A97CC7411C7527F3004A5C7E /* MoltenVKShaderConverterTool.cpp in Sources */, - A9C70F63221B321700FBA31A /* SPIRVSupport.cpp in Sources */, A95096BF2003D32400F10950 /* OSSupport.mm in Sources */, A9B51BDD225E98BB00AC74D2 /* MVKOSExtensions.mm in Sources */, + A9546B252672A3B8004BA3E6 /* SPIRVSupport.cpp in Sources */, A97CC7401C7527F3004A5C7E /* main.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -486,8 +486,8 @@ A920A8A9251B75B70076851C /* GLSLConversion.mm in Sources */, A920A8A3251B75B70076851C /* GLSLToSPIRVConverter.cpp in Sources */, A909408A1C58013E0094110D /* SPIRVToMSLConverter.cpp in Sources */, - A9C70F66221B321700FBA31A /* SPIRVSupport.cpp in Sources */, A928C91B1D0488DC00071B88 /* SPIRVConversion.mm in Sources */, + A9546B262672A3B8004BA3E6 /* SPIRVSupport.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -499,8 +499,8 @@ A920A8AB251B75B70076851C /* GLSLConversion.mm in Sources */, A920A8A5251B75B70076851C /* GLSLToSPIRVConverter.cpp in Sources */, A909408B1C58013E0094110D /* SPIRVToMSLConverter.cpp in Sources */, - A9C70F67221B321700FBA31A /* SPIRVSupport.cpp in Sources */, A928C91C1D0488DC00071B88 /* SPIRVConversion.mm in Sources */, + A9546B282672A3B8004BA3E6 /* SPIRVSupport.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/MoltenVKShaderConverter/Common/SPIRVSupport.cpp b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVSupport.cpp similarity index 100% rename from MoltenVKShaderConverter/Common/SPIRVSupport.cpp rename to MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVSupport.cpp diff --git a/MoltenVKShaderConverter/Common/SPIRVSupport.h b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVSupport.h similarity index 100% rename from MoltenVKShaderConverter/Common/SPIRVSupport.h rename to MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVSupport.h diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.h b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.h index 688acd00..99557701 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.h +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter/SPIRVToMSLConverter.h @@ -19,7 +19,6 @@ #ifndef __SPIRVToMSLConverter_h_ #define __SPIRVToMSLConverter_h_ 1 -#include "SPIRVReflection.h" #include #include #include From ef34fb7f37f4de0abe625d1335711306596092c3 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Thu, 10 Jun 2021 18:32:38 -0400 Subject: [PATCH 2/6] Set project build optimizations to -O2 for all Release mode builds. --- Demos/Cube/Cube.xcodeproj/project.pbxproj | 1 + ExternalDependencies.xcodeproj/project.pbxproj | 2 +- MoltenVK/MoltenVK.xcodeproj/project.pbxproj | 2 +- .../MoltenVKShaderConverter.xcodeproj/project.pbxproj | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Demos/Cube/Cube.xcodeproj/project.pbxproj b/Demos/Cube/Cube.xcodeproj/project.pbxproj index 522253f0..eb852710 100644 --- a/Demos/Cube/Cube.xcodeproj/project.pbxproj +++ b/Demos/Cube/Cube.xcodeproj/project.pbxproj @@ -500,6 +500,7 @@ ENABLE_BITCODE = NO; ENABLE_NS_ASSERTIONS = NO; GCC_C_LANGUAGE_STANDARD = c99; + GCC_OPTIMIZATION_LEVEL = 2; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO; diff --git a/ExternalDependencies.xcodeproj/project.pbxproj b/ExternalDependencies.xcodeproj/project.pbxproj index a4a38772..a7b53552 100644 --- a/ExternalDependencies.xcodeproj/project.pbxproj +++ b/ExternalDependencies.xcodeproj/project.pbxproj @@ -5369,7 +5369,7 @@ GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = fast; + GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = "NDEBUG=1"; GCC_SYMBOLS_PRIVATE_EXTERN = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = NO; diff --git a/MoltenVK/MoltenVK.xcodeproj/project.pbxproj b/MoltenVK/MoltenVK.xcodeproj/project.pbxproj index cac183f3..6a8c9caa 100644 --- a/MoltenVK/MoltenVK.xcodeproj/project.pbxproj +++ b/MoltenVK/MoltenVK.xcodeproj/project.pbxproj @@ -1637,7 +1637,7 @@ GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = fast; + GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = ( "NDEBUG=1", "SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross", diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj b/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj index 5d458eab..dd6ac78a 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj @@ -667,7 +667,7 @@ GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_INLINES_ARE_PRIVATE_EXTERN = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = fast; + GCC_OPTIMIZATION_LEVEL = 2; GCC_PREPROCESSOR_DEFINITIONS = ( "NDEBUG=1", "SPIRV_CROSS_NAMESPACE_OVERRIDE=MVK_spirv_cross", From 269fca63bac8283006c0581d3a77fc8d83fc5d3d Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Mon, 14 Jun 2021 10:39:42 -0400 Subject: [PATCH 3/6] Upgrade project builds to use C++17. --- Demos/Cube/Cube.xcodeproj/project.pbxproj | 4 ++-- Docs/Whats_New.md | 2 ++ ExternalDependencies.xcodeproj/project.pbxproj | 4 ++-- MoltenVK/MoltenVK.xcodeproj/project.pbxproj | 4 ++-- .../MoltenVKShaderConverter.xcodeproj/project.pbxproj | 4 ++-- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Demos/Cube/Cube.xcodeproj/project.pbxproj b/Demos/Cube/Cube.xcodeproj/project.pbxproj index eb852710..4fddc15c 100644 --- a/Demos/Cube/Cube.xcodeproj/project.pbxproj +++ b/Demos/Cube/Cube.xcodeproj/project.pbxproj @@ -460,7 +460,7 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = NO; @@ -493,7 +493,7 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = NO; diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index e13796b9..46d1951d 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -22,6 +22,8 @@ Released TBD - `VK_KHR_imageless_framebuffer` - Make `vkGetPastPresentationTimingGOOGLE()` queuing behavior compliant with Vulkan spec. - Expose `vkGetIOSurfaceMVK()` and `vkUseIOSurfaceMVK()` without requiring _Objective-C_. +- Default MoltenVK build using `C++17` and compiler optimization setting `-O2`. +- API fix to remove `#include "SPIRVReflection.h"` from `SPIRVToMSLConverter.h` header. - Support _Xcode 12.5_ build settings, build warnings, and SDK change to availability of `[MTLDevice supportsBCTextureCompression]` on _Mac Catalyst_. - Improve cache hits when matching `SPIRVToMSLConversionConfiguration` structs to each other diff --git a/ExternalDependencies.xcodeproj/project.pbxproj b/ExternalDependencies.xcodeproj/project.pbxproj index a7b53552..89f0e9f6 100644 --- a/ExternalDependencies.xcodeproj/project.pbxproj +++ b/ExternalDependencies.xcodeproj/project.pbxproj @@ -5299,7 +5299,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; BITCODE_GENERATION_MODE = marker; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = NO; CLANG_WARN_BOOL_CONVERSION = YES; @@ -5347,7 +5347,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; BITCODE_GENERATION_MODE = bitcode; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = NO; CLANG_WARN_BOOL_CONVERSION = YES; diff --git a/MoltenVK/MoltenVK.xcodeproj/project.pbxproj b/MoltenVK/MoltenVK.xcodeproj/project.pbxproj index 6a8c9caa..f216f588 100644 --- a/MoltenVK/MoltenVK.xcodeproj/project.pbxproj +++ b/MoltenVK/MoltenVK.xcodeproj/project.pbxproj @@ -1543,7 +1543,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; BITCODE_GENERATION_MODE = marker; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = NO; CLANG_WARN_BOOL_CONVERSION = YES; @@ -1612,7 +1612,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; BITCODE_GENERATION_MODE = bitcode; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = NO; CLANG_WARN_BOOL_CONVERSION = YES; diff --git a/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj b/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj index dd6ac78a..c3908dec 100644 --- a/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj +++ b/MoltenVKShaderConverter/MoltenVKShaderConverter.xcodeproj/project.pbxproj @@ -587,7 +587,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; BITCODE_GENERATION_MODE = marker; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = NO; CLANG_WARN_BOOL_CONVERSION = YES; @@ -645,7 +645,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; ARCHS = "$(ARCHS_STANDARD_64_BIT)"; BITCODE_GENERATION_MODE = bitcode; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "c++17"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = NO; CLANG_WARN_BOOL_CONVERSION = YES; From a7a8a88904bf190c1b61a4e06b032a6b8f5f49be Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Mon, 14 Jun 2021 11:35:43 -0400 Subject: [PATCH 4/6] Upgrade projects to Xcode 13 build settings. --- Demos/Cube/Cube.xcodeproj/project.pbxproj | 2 +- .../Cube.xcodeproj/xcshareddata/xcschemes/Cube-iOS.xcscheme | 2 +- .../Cube.xcodeproj/xcshareddata/xcschemes/Cube-macOS.xcscheme | 2 +- .../Cube.xcodeproj/xcshareddata/xcschemes/Cube-tvOS.xcscheme | 2 +- ExternalDependencies.xcodeproj/project.pbxproj | 2 +- .../xcschemes/ExternalDependencies (Debug).xcscheme | 2 +- .../xcshareddata/xcschemes/ExternalDependencies-iOS.xcscheme | 2 +- .../xcshareddata/xcschemes/ExternalDependencies-macOS.xcscheme | 2 +- .../xcshareddata/xcschemes/ExternalDependencies-tvOS.xcscheme | 2 +- .../xcshareddata/xcschemes/ExternalDependencies.xcscheme | 2 +- .../xcshareddata/xcschemes/SPIRV-Cross-iOS.xcscheme | 2 +- .../xcshareddata/xcschemes/SPIRV-Cross-macOS.xcscheme | 2 +- .../xcshareddata/xcschemes/SPIRV-Cross-tvOS.xcscheme | 2 +- .../xcshareddata/xcschemes/SPIRV-Tools-iOS.xcscheme | 2 +- .../xcshareddata/xcschemes/SPIRV-Tools-macOS.xcscheme | 2 +- .../xcshareddata/xcschemes/SPIRV-Tools-tvOS.xcscheme | 2 +- .../xcshareddata/xcschemes/glslang-iOS.xcscheme | 2 +- .../xcshareddata/xcschemes/glslang-macOS.xcscheme | 2 +- .../xcshareddata/xcschemes/glslang-tvOS.xcscheme | 2 +- MoltenVK/MoltenVK.xcodeproj/project.pbxproj | 2 +- .../xcshareddata/xcschemes/MoltenVK-iOS.xcscheme | 2 +- .../xcshareddata/xcschemes/MoltenVK-macOS.xcscheme | 2 +- .../xcshareddata/xcschemes/MoltenVK-tvOS.xcscheme | 2 +- MoltenVKPackaging.xcodeproj/project.pbxproj | 2 +- .../xcschemes/MVKShaderConverterTool Package.xcscheme | 2 +- .../xcshareddata/xcschemes/MoltenVK Package (Debug).xcscheme | 2 +- .../xcshareddata/xcschemes/MoltenVK Package (iOS only).xcscheme | 2 +- .../xcschemes/MoltenVK Package (macOS only).xcscheme | 2 +- .../xcschemes/MoltenVK Package (tvOS only).xcscheme | 2 +- .../xcshareddata/xcschemes/MoltenVK Package.xcscheme | 2 +- .../MoltenVKShaderConverter.xcodeproj/project.pbxproj | 2 +- .../xcshareddata/xcschemes/MoltenVKShaderConverter-iOS.xcscheme | 2 +- .../xcschemes/MoltenVKShaderConverter-macOS.xcscheme | 2 +- .../xcschemes/MoltenVKShaderConverter-tvOS.xcscheme | 2 +- .../xcshareddata/xcschemes/MoltenVKShaderConverter.xcscheme | 2 +- 35 files changed, 35 insertions(+), 35 deletions(-) diff --git a/Demos/Cube/Cube.xcodeproj/project.pbxproj b/Demos/Cube/Cube.xcodeproj/project.pbxproj index 4fddc15c..a8c82181 100644 --- a/Demos/Cube/Cube.xcodeproj/project.pbxproj +++ b/Demos/Cube/Cube.xcodeproj/project.pbxproj @@ -246,7 +246,7 @@ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1250; + LastUpgradeCheck = 1300; }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Cube" */; compatibilityVersion = "Xcode 8.0"; diff --git a/Demos/Cube/Cube.xcodeproj/xcshareddata/xcschemes/Cube-iOS.xcscheme b/Demos/Cube/Cube.xcodeproj/xcshareddata/xcschemes/Cube-iOS.xcscheme index 2bc4f6bf..b526fc2b 100644 --- a/Demos/Cube/Cube.xcodeproj/xcshareddata/xcschemes/Cube-iOS.xcscheme +++ b/Demos/Cube/Cube.xcodeproj/xcshareddata/xcschemes/Cube-iOS.xcscheme @@ -1,6 +1,6 @@ Date: Mon, 14 Jun 2021 16:24:32 -0400 Subject: [PATCH 5/6] Upgrade projects to Xcode 13 SDK APIs. Add MVK_XCODE_13 code macro. Support MTLLanguageVersion2_4 enum value. MoltenVKPackaging project add DISABLE_MANUAL_TARGET_ORDER_BUILD_WARNING build setting to suppress build warnings about using manual build orders. --- Common/MVKCommonEnvironment.h | 6 +++++- Docs/Whats_New.md | 1 + MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm | 5 +++++ MoltenVKPackaging.xcodeproj/project.pbxproj | 2 ++ 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Common/MVKCommonEnvironment.h b/Common/MVKCommonEnvironment.h index 2e61f97c..e219e2df 100644 --- a/Common/MVKCommonEnvironment.h +++ b/Common/MVKCommonEnvironment.h @@ -87,7 +87,11 @@ extern "C" { # define MVK_MACOS_APPLE_SILICON (MVK_MACOS && MVK_APPLE_SILICON) #endif -/** Building with Xcode 12. */ +/** Building with Xcode versions. */ +#ifndef MVK_XCODE_13 +# define MVK_XCODE_13 ((__MAC_OS_X_VERSION_MAX_ALLOWED >= 120000) || \ + (__IPHONE_OS_VERSION_MAX_ALLOWED >= 150000)) // Also covers tvOS +#endif #ifndef MVK_XCODE_12 # define MVK_XCODE_12 ((__MAC_OS_X_VERSION_MAX_ALLOWED >= 101600) || \ (__IPHONE_OS_VERSION_MAX_ALLOWED >= 140000)) // Also covers tvOS diff --git a/Docs/Whats_New.md b/Docs/Whats_New.md index 46d1951d..6ae284d2 100644 --- a/Docs/Whats_New.md +++ b/Docs/Whats_New.md @@ -39,6 +39,7 @@ Released TBD - Protect against crash when retrieving `MTLTexture` when `VkImage` has no `VkDeviceMemory` bound. - Adjust some `VkPhysicalDeviceLimits` values for Vulkan and Metal compliance. - Fix internal reference from `SPIRV_CROSS_NAMESPACE_OVERRIDE` to `SPIRV_CROSS_NAMESPACE`. +- Support _Xcode 13_ SDK APIs and build settings. diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 6ca29717..f08893b0 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -1532,6 +1532,11 @@ void MVKPhysicalDevice::initMetalFeatures() { _metalFeatures.mslVersion = SPIRV_CROSS_NAMESPACE::CompilerMSL::Options::make_msl_version(maj, min); switch (_metalFeatures.mslVersionEnum) { +#if MVK_XCODE_13 + case MTLLanguageVersion2_4: + setMSLVersion(2, 4); + break; +#endif #if MVK_XCODE_12 case MTLLanguageVersion2_3: setMSLVersion(2, 3); diff --git a/MoltenVKPackaging.xcodeproj/project.pbxproj b/MoltenVKPackaging.xcodeproj/project.pbxproj index 83968ba6..4a92ac47 100644 --- a/MoltenVKPackaging.xcodeproj/project.pbxproj +++ b/MoltenVKPackaging.xcodeproj/project.pbxproj @@ -504,12 +504,14 @@ A90B2B211A9B6170008EE819 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + DISABLE_MANUAL_TARGET_ORDER_BUILD_WARNING = YES; }; name = Debug; }; A90B2B221A9B6170008EE819 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + DISABLE_MANUAL_TARGET_ORDER_BUILD_WARNING = YES; }; name = Release; }; From 71b71be33c1c630a45a1fe9cc65da5aa0e7afd06 Mon Sep 17 00:00:00 2001 From: Bill Hollings Date: Mon, 14 Jun 2021 19:59:33 -0400 Subject: [PATCH 6/6] Add Xcode destinations in Makefile to avoid Xcode 13 warnings. --- Makefile | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 2faf9f9f..ffed8776 100644 --- a/Makefile +++ b/Makefile @@ -35,19 +35,19 @@ all-debug: .PHONY: macos macos: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (macOS only)" $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (macOS only)" -destination "generic/platform=macOS" $(OUTPUT_FMT_CMD) .PHONY: macos-debug macos-debug: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (macOS only)" -configuration "Debug" $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (macOS only)" -destination "generic/platform=macOS" -configuration "Debug" $(OUTPUT_FMT_CMD) .PHONY: ios ios: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS" $(OUTPUT_FMT_CMD) .PHONY: ios-debug ios-debug: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -configuration "Debug" $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (iOS only)" -destination "generic/platform=iOS" -configuration "Debug" $(OUTPUT_FMT_CMD) .PHONY: iossim iossim: @@ -67,11 +67,11 @@ maccat-debug: .PHONY: tvos tvos: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS" $(OUTPUT_FMT_CMD) .PHONY: tvos-debug tvos-debug: - $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -configuration "Debug" $(OUTPUT_FMT_CMD) + $(XCODEBUILD) build -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (tvOS only)" -destination "generic/platform=tvOS" -configuration "Debug" $(OUTPUT_FMT_CMD) .PHONY: tvossim tvossim: @@ -83,7 +83,7 @@ tvossim-debug: .PHONY: clean clean: - $(XCODEBUILD) clean -quiet -project "$(XC_PROJ)" -scheme "$(XC_SCHEME)" + $(XCODEBUILD) clean -project "$(XC_PROJ)" -scheme "$(XC_SCHEME) (macOS only)" -destination "generic/platform=macOS" $(OUTPUT_FMT_CMD) rm -rf Package # Usually requires 'sudo make install'