-
Notifications
You must be signed in to change notification settings - Fork 576
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