From 4ad14325bc83fce54a3ce77ec5181b65c4ae1a91 Mon Sep 17 00:00:00 2001 From: Alec Miller Date: Sat, 27 Jan 2024 19:36:27 -0800 Subject: [PATCH] kramv - enable Metal 3 support (macOS 13+, iOS 16+) Note there isn't any specific code that requires this yet, but it's a good minspec at least on macOS. Newer Intel macOS can still run x64, but eventually I'll just drop the universal app and only support Apple Silicon. iOS could drop back, but that's just a library that few are using. And I'd like it to be unified on shader support. Can start using RT, mesh shaders, descriptor indexing, etc. --- build2/kram.xcodeproj/project.pbxproj | 8 ++++---- build2/kramc.xcodeproj/project.pbxproj | 6 ++---- build2/kramv.xcodeproj/project.pbxproj | 6 ++++-- gtlf/GLTF/GLTF.xcodeproj/project.pbxproj | 10 ++++------ gtlf/GLTFMTL/GLTFMTL.xcodeproj/project.pbxproj | 8 ++++---- gtlf/GLTFMTL/Source/GLTFMTLShaderBuilder.m | 2 +- 6 files changed, 19 insertions(+), 21 deletions(-) diff --git a/build2/kram.xcodeproj/project.pbxproj b/build2/kram.xcodeproj/project.pbxproj index b6dab7a6..d62802c0 100644 --- a/build2/kram.xcodeproj/project.pbxproj +++ b/build2/kram.xcodeproj/project.pbxproj @@ -1988,8 +1988,8 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ""; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - MACOSX_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + MACOSX_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -2075,8 +2075,8 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ""; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - MACOSX_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + MACOSX_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; OTHER_CFLAGS = ( diff --git a/build2/kramc.xcodeproj/project.pbxproj b/build2/kramc.xcodeproj/project.pbxproj index 9b88cc4b..f4a1ad2e 100644 --- a/build2/kramc.xcodeproj/project.pbxproj +++ b/build2/kramc.xcodeproj/project.pbxproj @@ -198,7 +198,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 12.0; + MACOSX_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -262,7 +262,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 12.0; + MACOSX_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; OTHER_CFLAGS = ( @@ -293,7 +293,6 @@ GCC_WARN_SHADOW = YES; GCC_WARN_STRICT_SELECTOR_MATCH = YES; HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../libkram/kram"; - MACOSX_DEPLOYMENT_TARGET = 12.0; PRODUCT_BUNDLE_IDENTIFIER = com.hialec.kramc; PRODUCT_NAME = kram; }; @@ -316,7 +315,6 @@ GCC_WARN_SHADOW = YES; GCC_WARN_STRICT_SELECTOR_MATCH = YES; HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../libkram/kram"; - MACOSX_DEPLOYMENT_TARGET = 12.0; PRODUCT_BUNDLE_IDENTIFIER = com.hialec.kramc; PRODUCT_NAME = kram; }; diff --git a/build2/kramv.xcodeproj/project.pbxproj b/build2/kramv.xcodeproj/project.pbxproj index 6018a7cf..cb8b4fcb 100644 --- a/build2/kramv.xcodeproj/project.pbxproj +++ b/build2/kramv.xcodeproj/project.pbxproj @@ -565,7 +565,7 @@ "$(PROJECT_DIR)/../libkram/kram", "$(PROJECT_DIR)/../libkram", ); - MACOSX_DEPLOYMENT_TARGET = 12.0; + MACOSX_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; MTL_LANGUAGE_REVISION = UseDeploymentTarget; @@ -636,7 +636,7 @@ "$(PROJECT_DIR)/../libkram/kram", "$(PROJECT_DIR)/../libkram", ); - MACOSX_DEPLOYMENT_TARGET = 12.0; + MACOSX_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; MTL_LANGUAGE_REVISION = UseDeploymentTarget; @@ -681,6 +681,7 @@ "@executable_path/../Frameworks", ); MARKETING_VERSION = 2.0.0; + MTL_LANGUAGE_REVISION = Metal30; PRODUCT_BUNDLE_IDENTIFIER = com.hialec.kramv; PRODUCT_NAME = "$(TARGET_NAME)"; }; @@ -716,6 +717,7 @@ "@executable_path/../Frameworks", ); MARKETING_VERSION = 2.0.0; + MTL_LANGUAGE_REVISION = Metal30; OTHER_CFLAGS = ( "-DNDEBUG=1", "-DCOMPILE_FASTL=0", diff --git a/gtlf/GLTF/GLTF.xcodeproj/project.pbxproj b/gtlf/GLTF/GLTF.xcodeproj/project.pbxproj index fd9000ba..4173bfc9 100644 --- a/gtlf/GLTF/GLTF.xcodeproj/project.pbxproj +++ b/gtlf/GLTF/GLTF.xcodeproj/project.pbxproj @@ -403,8 +403,8 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - MACOSX_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + MACOSX_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; @@ -463,8 +463,8 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - MACOSX_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + MACOSX_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; OTHER_CFLAGS = "-DNDEBUG=1"; SDKROOT = macosx; @@ -488,7 +488,6 @@ FRAMEWORK_VERSION = A; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", @@ -519,7 +518,6 @@ FRAMEWORK_VERSION = A; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", diff --git a/gtlf/GLTFMTL/GLTFMTL.xcodeproj/project.pbxproj b/gtlf/GLTFMTL/GLTFMTL.xcodeproj/project.pbxproj index dba2d3ff..d32a1e09 100644 --- a/gtlf/GLTFMTL/GLTFMTL.xcodeproj/project.pbxproj +++ b/gtlf/GLTFMTL/GLTFMTL.xcodeproj/project.pbxproj @@ -263,8 +263,8 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - MACOSX_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + MACOSX_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; @@ -325,8 +325,8 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.1; - MACOSX_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; + MACOSX_DEPLOYMENT_TARGET = 13.0; MTL_ENABLE_DEBUG_INFO = NO; OTHER_CFLAGS = "-DNDEBUG=1"; SDKROOT = macosx; diff --git a/gtlf/GLTFMTL/Source/GLTFMTLShaderBuilder.m b/gtlf/GLTFMTL/Source/GLTFMTLShaderBuilder.m index 47a6b125..91ec211c 100644 --- a/gtlf/GLTFMTL/Source/GLTFMTLShaderBuilder.m +++ b/gtlf/GLTFMTL/Source/GLTFMTLShaderBuilder.m @@ -68,7 +68,7 @@ @implementation GLTFMTLShaderBuilder pipelineDescriptor.vertexDescriptor = vertexDescriptor; pipelineDescriptor.colorAttachments[0].pixelFormat = colorPixelFormat; - pipelineDescriptor.sampleCount = sampleCount; + pipelineDescriptor.rasterSampleCount = sampleCount; if (submesh.material.alphaMode == GLTFAlphaModeBlend) { pipelineDescriptor.colorAttachments[0].blendingEnabled = YES;