Skip to content

Metal macOS xcode27.0 rc

Alex Soto edited this page Sep 9, 2026 · 1 revision

#Metal.framework

diff -ruN /Applications/Xcode_27.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTL4ComputePipeline.h /Applications/Xcode_27.0.0-rc.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTL4ComputePipeline.h
--- /Applications/Xcode_27.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTL4ComputePipeline.h	2026-08-10 04:10:14
+++ /Applications/Xcode_27.0.0-rc.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTL4ComputePipeline.h	2026-08-10 02:12:57
@@ -60,6 +60,9 @@
 /// A value indicating whether the pipeline supports Metal indirect command buffers.
 @property (readwrite, nonatomic) MTL4IndirectCommandBufferSupportState supportIndirectCommandBuffers;
 
+@property(readwrite, nonatomic) MTLForwardProgressUsage forwardProgressUsage API_AVAILABLE(macos(27.0), ios(27.0));
+@property(readwrite, nonatomic) MTLContentionRelief contentionRelief API_AVAILABLE(macos(27.0), ios(27.0));
+@property(readwrite, nonatomic) BOOL optimizeForPersistentKernel API_AVAILABLE(macos(27.0), ios(27.0));
 
 /// Resets the descriptor to its default values.
 - (void)reset;
diff -ruN /Applications/Xcode_27.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputePipeline.h /Applications/Xcode_27.0.0-rc.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputePipeline.h
--- /Applications/Xcode_27.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputePipeline.h	2026-08-12 02:58:33
+++ /Applications/Xcode_27.0.0-rc.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLComputePipeline.h	2026-08-08 18:08:04
@@ -150,7 +150,11 @@
 */
 @property(readwrite, nonatomic) MTLSize requiredThreadsPerThreadgroup API_AVAILABLE(macos(26.0), ios(26.0));
 
+@property(readwrite, nonatomic) MTLForwardProgressUsage forwardProgressUsage API_AVAILABLE(macos(27.0), ios(27.0));
+@property(readwrite, nonatomic) MTLContentionRelief contentionRelief API_AVAILABLE(macos(27.0), ios(27.0));
+@property(readwrite, nonatomic) BOOL optimizeForPersistentKernel API_AVAILABLE(macos(27.0), ios(27.0));
 
+
 @end
 
 /*!
@@ -291,6 +295,8 @@
 */
 @property (readonly) MTLSize requiredThreadsPerThreadgroup API_AVAILABLE(macos(26.0), ios(26.0));
 
+- (NSUInteger)recommendedPersistentThreadgroupsPerGridForThreadsPerThreadgroup:(MTLSize)threadsPerThreadgroup API_AVAILABLE(macos(27.0), ios(27.0));
+@property(readonly) MTLForwardProgressUsage forwardProgressUsage API_AVAILABLE(macos(27.0), ios(27.0));
 
 @end
 
diff -ruN /Applications/Xcode_27.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h /Applications/Xcode_27.0.0-rc.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h
--- /Applications/Xcode_27.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h	2026-08-10 04:10:14
+++ /Applications/Xcode_27.0.0-rc.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h	2026-08-10 02:12:57
@@ -240,6 +240,7 @@
     MTLGPUFamilyApple8  = 1008,
     MTLGPUFamilyApple9  = 1009,
     MTLGPUFamilyApple10 = 1010,
+    MTLGPUFamilyApple11 = 1011,
 
     MTLGPUFamilyMac1 API_DEPRECATED_WITH_REPLACEMENT("MTLGPUFamilyApple7", macos(10.15, 13.0), ios(13.0, 16.0)) = 2001,
     MTLGPUFamilyMac2 API_DEPRECATED_WITH_REPLACEMENT("MTLGPUFamilyApple7", macos(10.15, 27.0), ios(13.0, 27.0)) = 2002,
diff -ruN /Applications/Xcode_27.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLPipeline.h /Applications/Xcode_27.0.0-rc.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLPipeline.h
--- /Applications/Xcode_27.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLPipeline.h	2026-08-10 04:10:15
+++ /Applications/Xcode_27.0.0-rc.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLPipeline.h	2026-08-10 02:12:58
@@ -30,6 +30,11 @@
     MTLShaderValidationDisabled = 2,
 } API_AVAILABLE(macos(15.0), ios(18.0));
 
+typedef NS_ENUM(NSInteger, MTLForwardProgressUsage) {
+  MTLForwardProgressUsageAutomatic = 0,
+  MTLForwardProgressUsageWeak = 1,
+  MTLForwardProgressUsageSIMDGroupParallel = 2,
+} API_AVAILABLE(macos(27.0), ios(27.0));
 
 MTL_EXPORT API_AVAILABLE(macos(10.13), ios(11.0))
 @interface MTLPipelineBufferDescriptor : NSObject <NSCopying>
diff -ruN /Applications/Xcode_27.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLPixelFormat.h /Applications/Xcode_27.0.0-rc.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLPixelFormat.h
--- /Applications/Xcode_27.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLPixelFormat.h	2026-08-10 04:10:16
+++ /Applications/Xcode_27.0.0-rc.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLPixelFormat.h	2026-08-08 18:07:15
@@ -44,7 +44,44 @@
     MTLPixelFormatABGR4Unorm  API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(8.0)) = 42,
     MTLPixelFormatBGR5A1Unorm API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(8.0)) = 43,
 
+    /* Normal 24 bit formats */
 
+    /// An ordinary format with three components of 8-bit normalized, unsigned integer values in RGB order.
+    ///
+    /// The order of the color components in this format are red, green and blue.
+    ///
+    /// You can apply this format to a texture you create only with an ``MTLTextureDescriptor`` instance with all of the following property configurations:
+    /// * The ``MTLTextureDescriptor/usage`` property can't include the ``MTLTextureUsage/MTLTextureUsageShaderWrite`` option.
+    /// * The ``MTLTextureDescriptor/textureType`` property needs to be equal to ``MTLTextureType/MTLTextureTypeTextureBuffer``.
+    MTLPixelFormatRGB8Unorm  API_AVAILABLE(macos(27.0), ios(27.0)) = 45,
+
+    /// An ordinary format with three components of 8-bit normalized, signed integer values in RGB order.
+    ///
+    /// The order of the color components in this format are red, green and blue.
+    ///
+    /// You can apply this format to a texture you create only with an ``MTLTextureDescriptor`` instance with all of the following property configurations:
+    /// * The ``MTLTextureDescriptor/usage`` property can't include the ``MTLTextureUsage/MTLTextureUsageShaderWrite`` option.
+    /// * The ``MTLTextureDescriptor/textureType`` property needs to be equal to ``MTLTextureType/MTLTextureTypeTextureBuffer``.
+    MTLPixelFormatRGB8Snorm  API_AVAILABLE(macos(27.0), ios(27.0)) = 46,
+
+    /// An ordinary format with three components of 8-bit unsigned integer values in RGB order.
+    ///
+    /// The order of the color components in this format are red, green and blue.
+    ///
+    /// You can apply this format to a texture you create only with an ``MTLTextureDescriptor`` instance with all of the following property configurations:
+    /// * The ``MTLTextureDescriptor/usage`` property can't include the ``MTLTextureUsage/MTLTextureUsageShaderWrite`` option.
+    /// * The ``MTLTextureDescriptor/textureType`` property needs to be equal to ``MTLTextureType/MTLTextureTypeTextureBuffer``.
+    MTLPixelFormatRGB8Uint   API_AVAILABLE(macos(27.0), ios(27.0)) = 47,
+
+    /// An ordinary format with three components of 8-bit signed integer values in RGB order.
+    ///
+    /// The order of the color components in this format are red, green and blue.
+    ///
+    /// You can apply this format to a texture you create only with an ``MTLTextureDescriptor`` instance with all of the following property configurations:
+    /// * The ``MTLTextureDescriptor/usage`` property can't include the ``MTLTextureUsage/MTLTextureUsageShaderWrite`` option.
+    /// * The ``MTLTextureDescriptor/textureType`` property needs to be equal to ``MTLTextureType/MTLTextureTypeTextureBuffer``.
+    MTLPixelFormatRGB8Sint   API_AVAILABLE(macos(27.0), ios(27.0)) = 48,
+
     /* Normal 32 bit formats */
 
     MTLPixelFormatR32Uint  = 53,
@@ -79,7 +116,53 @@
     MTLPixelFormatBGR10_XR      API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(10.0)) = 554,
     MTLPixelFormatBGR10_XR_sRGB API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(10.0)) = 555,
     
+    /* Normal 48 bit formats */
+    
+    /// An ordinary format with three components of 16-bit normalized, unsigned integer values in RGB order.
+    ///
+    /// The order of the color components in this format are red, green and blue.
+    ///
+    /// You can apply this format to a texture you create only with an ``MTLTextureDescriptor`` instance with all of the following property configurations:
+    /// * The ``MTLTextureDescriptor/usage`` property can't include the ``MTLTextureUsage/MTLTextureUsageShaderWrite`` option.
+    /// * The ``MTLTextureDescriptor/textureType`` property needs to be equal to ``MTLTextureType/MTLTextureTypeTextureBuffer``.
+    MTLPixelFormatRGB16Unorm  API_AVAILABLE(macos(27.0), ios(27.0)) = 95,
 
+    /// An ordinary format with three components of 16-bit normalized, signed integer values in RGB order.
+    ///
+    /// The order of the color components in this format are red, green and blue.
+    ///
+    /// You can apply this format to a texture you create only with an ``MTLTextureDescriptor`` instance with all of the following property configurations:
+    /// * The ``MTLTextureDescriptor/usage`` property can't include the ``MTLTextureUsage/MTLTextureUsageShaderWrite`` option.
+    /// * The ``MTLTextureDescriptor/textureType`` property needs to be equal to ``MTLTextureType/MTLTextureTypeTextureBuffer``.
+    MTLPixelFormatRGB16Snorm  API_AVAILABLE(macos(27.0), ios(27.0)) = 96,
+
+    /// An ordinary format with three components of 16-bit unsigned integer values in RGB order.
+    ///
+    /// The order of the color components in this format are red, green and blue.
+    ///
+    /// You can apply this format to a texture you create only with an ``MTLTextureDescriptor`` instance with all of the following property configurations:
+    /// * The ``MTLTextureDescriptor/usage`` property can't include the ``MTLTextureUsage/MTLTextureUsageShaderWrite`` option.
+    /// * The ``MTLTextureDescriptor/textureType`` property needs to be equal to ``MTLTextureType/MTLTextureTypeTextureBuffer``.
+    MTLPixelFormatRGB16Uint   API_AVAILABLE(macos(27.0), ios(27.0)) = 97,
+
+    /// An ordinary format with three components of 16-bit signed integer values in RGB order.
+    ///
+    /// The order of the color components in this format are red, green and blue.
+    ///
+    /// You can apply this format to a texture you create only with an ``MTLTextureDescriptor`` instance with all of the following property configurations:
+    /// * The ``MTLTextureDescriptor/usage`` property can't include the ``MTLTextureUsage/MTLTextureUsageShaderWrite`` option.
+    /// * The ``MTLTextureDescriptor/textureType`` property needs to be equal to ``MTLTextureType/MTLTextureTypeTextureBuffer``.
+    MTLPixelFormatRGB16Sint   API_AVAILABLE(macos(27.0), ios(27.0)) = 98,
+
+    /// An ordinary format with three components of 16-bit floating-point values in RGB order.
+    ///
+    /// The order of the color components in this format are red, green and blue.
+    ///
+    /// You can apply this format to a texture you create only with an ``MTLTextureDescriptor`` instance with all of the following property configurations:
+    /// * The ``MTLTextureDescriptor/usage`` property can't include the ``MTLTextureUsage/MTLTextureUsageShaderWrite`` option.
+    /// * The ``MTLTextureDescriptor/textureType`` property needs to be equal to ``MTLTextureType/MTLTextureTypeTextureBuffer``.
+    MTLPixelFormatRGB16Float  API_AVAILABLE(macos(27.0), ios(27.0)) = 99,
+
     /* Normal 64 bit formats */
 
     MTLPixelFormatRG32Uint  = 103,
@@ -95,6 +178,34 @@
     MTLPixelFormatBGRA10_XR      API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(10.0)) = 552,
     MTLPixelFormatBGRA10_XR_sRGB API_AVAILABLE(macos(11.0), macCatalyst(14.0), ios(10.0)) = 553,
 
+    /* Normal 96 bit formats */
+    
+    /// An ordinary format with three components of 32-bit unsigned integer values in RGB order.
+    ///
+    /// The order of the color components in this format are red, green and blue.
+    ///
+    /// You can apply this format to a texture you create only with an ``MTLTextureDescriptor`` instance with all of the following property configurations:
+    /// * The ``MTLTextureDescriptor/usage`` property can't include the ``MTLTextureUsage/MTLTextureUsageShaderWrite`` option.
+    /// * The ``MTLTextureDescriptor/textureType`` property needs to be equal to ``MTLTextureType/MTLTextureTypeTextureBuffer``.
+    MTLPixelFormatRGB32Uint  API_AVAILABLE(macos(27.0), ios(27.0)) = 120,
+
+    /// An ordinary format with three components of 32-bit signed integer values in RGB order.
+    ///
+    /// The order of the color components in this format are red, green and blue.
+    ///
+    /// You can apply this format to a texture you create only with an ``MTLTextureDescriptor`` instance with all of the following property configurations:
+    /// * The ``MTLTextureDescriptor/usage`` property can't include the ``MTLTextureUsage/MTLTextureUsageShaderWrite`` option.
+    /// * The ``MTLTextureDescriptor/textureType`` property needs to be equal to ``MTLTextureType/MTLTextureTypeTextureBuffer``.
+    MTLPixelFormatRGB32Sint  API_AVAILABLE(macos(27.0), ios(27.0)) = 121,
+
+    /// An ordinary format with three components of 32-bit floating-point values in RGB order.
+    ///
+    /// The order of the color components in this format are red, green and blue.
+    ///
+    /// You can apply this format to a texture you create only with an ``MTLTextureDescriptor`` instance with all of the following property configurations:
+    /// * The ``MTLTextureDescriptor/usage`` property can't include the ``MTLTextureUsage/MTLTextureUsageShaderWrite`` option.
+    /// * The ``MTLTextureDescriptor/textureType`` property needs to be equal to ``MTLTextureType/MTLTextureTypeTextureBuffer``.
+    MTLPixelFormatRGB32Float API_AVAILABLE(macos(27.0), ios(27.0)) = 122,
 
     /* Normal 128 bit formats */
 
diff -ruN /Applications/Xcode_27.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLTexture.h /Applications/Xcode_27.0.0-rc.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLTexture.h
--- /Applications/Xcode_27.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLTexture.h	2026-08-10 04:10:14
+++ /Applications/Xcode_27.0.0-rc.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLTexture.h	2026-08-10 02:12:57
@@ -298,6 +298,26 @@
  */
 @property (readwrite, nonatomic) MTLTextureSwizzleChannels swizzle;
  
+/// The minimum level of detail for texture views you create with the descriptor.
+///
+/// The property configures the lower limit of the level-of-detail (LOD) range that texture operations access for texture views you create with the descriptor.
+/// When the GPU calculates a mipmap level, it applies the value of this property
+/// as the final step, after clamping the sampler LOD and applying the texture view level range offsets.
+/// The default value is `0.0`.
+///
+/// Each of the following texture operations has a requirement for the `minLOD` value.
+///
+/// | Operation | Requirement |
+/// | --- | --- |
+/// | Read   | `floor(minLOD)` ≤ mip level |
+/// | Gather | `floor(minLOD)` ≤ `levelRange.location` |
+/// | Sample |        `minLOD` ≤ `levelRange.location` + `levelRange.length` |
+///
+/// Each operation returns an out-of-bounds value if a parameter doesn't meet a requirement.
+///
+/// > Note: For the specific out-of-bounds value for each operation, see the _Texture Functions_ section of the
+/// [Metal Shading Language Specification (PDF)](https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf).
+@property(readwrite, nonatomic) float minLOD API_AVAILABLE(macos(27.0), ios(27.0));
 
 @end
 
@@ -558,6 +578,25 @@
  */
 @property (readonly) MTLTextureSparseTier sparseTextureTier API_AVAILABLE(macos(26.0), ios(26.0));
 
+/// The lowest mipmap level of detail for the texture.
+///
+/// The property represents the lower limit of the level-of-detail (LOD) range that texture operations access for the texture.
+/// When the GPU calculates a mipmap level, it applies the value of this property
+/// as the final step, after clamping the sampler LOD and applying the texture view level range offsets.
+///
+/// Each of the following texture operations has a requirement for the `minLOD` value.
+///
+/// | Operation | Requirement |
+/// | --- | --- |
+/// | Read   | `floor(minLOD)` ≤ mip level |
+/// | Gather | `floor(minLOD)` ≤ `levelRange.location` |
+/// | Sample |        `minLOD` ≤ `levelRange.location` + `levelRange.length` |
+///
+/// Each operation returns an out-of-bounds value if a parameter doesn't meet a requirement.
+///
+/// > Note: For the specific out-of-bounds value for each operation, see the _Texture Functions_ section of the
+/// [Metal Shading Language Specification (PDF)](https://developer.apple.com/metal/Metal-Shading-Language-Specification.pdf).
+@property (readonly) float minLOD API_AVAILABLE(macos(27.0), ios(27.0));
 
 @end
 NS_ASSUME_NONNULL_END
diff -ruN /Applications/Xcode_27.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLTypes.h /Applications/Xcode_27.0.0-rc.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLTypes.h
--- /Applications/Xcode_27.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLTypes.h	2026-08-10 04:10:15
+++ /Applications/Xcode_27.0.0-rc.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLTypes.h	2026-08-10 02:12:58
@@ -103,6 +103,11 @@
     return result;
 } 
 
+typedef NS_ENUM(NSInteger, MTLContentionRelief) {
+  MTLContentionReliefAutomatic = 0,
+  MTLContentionReliefNone = 1,
+} API_AVAILABLE(macos(27.0), ios(27.0));
+
 
 /*!
  @typedef MTLResourceID

Clone this wiki locally